// irb.h
BOOLEAN AtaPortRegistryControllerKeyWrite(
[in] PVOID ChannelExtension,
[in] UCHAR ControllerNumber,
[in] PCHAR ValueName,
[in] UCHAR ValueType,
[in] PUCHAR Buffer,
PULONG BufferLength
);
View the official Windows Driver Kit DDI referenceNo description available.
The AtaPortRegistryControllerKeyWrite routine writes the data to the indicated value name under the registry key HKLM\CurrentControlSet\Services\<service name>\ControllerN, where N is the number of the controller.
Note The ATA port driver and ATA miniport driver models may be altered or unavailable in the future. Instead, we recommend using the Storport driver and Storport miniport driver models.
ChannelExtension [in]A pointer to the channel extension.
ControllerNumber [in]Contains the controller number.
ValueName [in]Contains the name of the registry value to write to.
ValueType [in]Indicates the type of data that is contained in the registry value. This member should be assigned one of the values indicated in the following table.
| Value | Meaning |
|---|---|
| IDE_REG_DWORD | A 4-byte numeric value. |
| IDE_REG_BINARY | Binary data. |
| IDE_REG_SZ | A null-terminated, Unicode string. |
Buffer [in]A pointer to the source buffer that contains the data to write to the registry value.
BufferLengthA pointer to the number of bytes of data to copy. If the operation fails, the location that is pointed to by Length will update the length of data that was successfully copied to the registry.
AtaPortRegistryControllerKeyWrite returns TRUE if the operation succeeds. Otherwise, it returns FALSE. The routine also returns FALSE if the miniport driver does not call it from the correct routine.
The buffer should be allocated by using AtaPortRegistryAllocateBuffer.
The miniport driver must call AtaPortRegistryControllerKeyWrite during the AtaChannelInitRoutine routine or the IdeHwControl routine.; The miniport driver cannot call AtaPortRegistryControllerKeyWrite from any other routine or it will return FALSE. Additionally, the miniport driver can only call AtaPortRegistryControllerKeyWrite from its IdeHwControl routine if its IdeHwControl routine was called and had a value of either StartChannel or StopChannel in its ControlAction parameter.