AtaPortRegistryChannelSubkeyWrite function (irb.h)

The AtaPortRegistryChannelSubKeyWrite routine writes data to the indicated value name under the registry key HKLM\CurrentControlSet\Services\<service name>\ControllerN\ChannelM, where N is the number of the controller and M is the number of the channel.

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.
 

Syntax

BOOLEAN AtaPortRegistryChannelSubkeyWrite(
  [in] PVOID  ChannelExtension,
  [in] UCHAR  ControllerNumber,
  [in] PCHAR  ValueName,
  [in] UCHAR  ValueType,
  [in] PUCHAR Buffer,
       PULONG BufferLength
);

Parameters

[in] ChannelExtension

A pointer to the channel extension.

[in] ControllerNumber

Contains the controller number.

[in] ValueName

Contains the name of the registry value to write to.

[in] ValueType

Indicates the type of data that is contained in the registry value. This member should be assigned one of 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.

[in] Buffer

A pointer to the source buffer that contains the data to be written to the registry.

BufferLength

A pointer to the number of bytes of data to copy. If the operation fails, the location that is pointed to by Length will update to the length of data that was successfully written to the registry.

Return value

AtaPortRegistryChannelSubKeyWrite 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.

Remarks

If the value name is not present, AtaPortRegistryChannelSubKeyWrite creates an entry for the value and the data is stored in the newly created value.

The buffer that is pointed to by Buffer must be allocated by using AtaPortRegistryAllocateBuffer.

The miniport driver must call AtaPortRegistryChannelSubKeyWrite either during the AtaChannelInitRoutine routine or the IdeHwControl routine The miniport driver cannot call AtaPortRegistryChannelSubKeyWrite from any other routine without returning FALSE. Additionally, the miniport driver can only call AtaPortRegistryChannelSubKeyWrite from its IdeHwControl routine if its IdeHwControl routine was called and had a value of either StartChannel or StopChannel in its ControlAction parameter.

Requirements

Requirement Value
Target Platform Desktop
Header irb.h (include Ata.h, Irb.h)

See also

AtaChannelInitRoutine

AtaPortRegistryChannelSubKeyRead

AtaPortRegistryChannelSubKeyWriteDeferred

IdeHwControl