AtaPortRegistryChannelSubkeyWriteDeferred 函数 (irb.h)

AtaPortRegistryChannelSubKeyWriteDeferred 例程以异步方式将数据写入注册表项 HKLM\CurrentControlSet\Services\<service name>\ControllerN\ChannelM下的指示值名称,其中 N 是控制器的数量,M 是通道数。

注意 ATA 端口驱动程序和 ATA 微型端口驱动程序模型将来可能会更改或不可用。 相反,我们建议使用 Storport 驱动程序Storport 微型端口 驱动程序模型。
 

语法

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

参数

[in] ChannelExtension

指向通道扩展的指针。

[in] ControllerNumber

包含控制器编号。

[in] ValueName

包含要写入的注册表值的名称。

[in] ValueType

指示注册表值中包含的数据类型。 应为此成员分配下表中指示的值之一。

价值 意义
IDE_REG_DWORD 4 字节数值。
IDE_REG_BINARY 二进制数据。
IDE_REG_SZ 以 null 结尾。 Unicode 字符串。

[in] Buffer

指向包含要写入注册表的数据的源缓冲区的指针。

BufferLength

指向要复制的数据字节数的指针。 如果作失败,Length 指向的位置将更新为已成功写入注册表的数据的长度。

返回值

AtaPortRegistryChannelSubKeyWriteDeferred 如果作,则返回 TRUE。 否则,它将返回 FALSE。 如果微型端口驱动程序未从正确的例程调用它,则例程还会返回 FALSE

言论

如果值名称不存在,AtaPortRegistryChannelSubKeyWriteDeferred 为该值创建一个条目,并将数据存储在新创建的值中。

Buffer 指向的缓冲区必须使用 AtaPortRegistryAllocateBuffer来分配缓冲区。

微型端口驱动程序可以从属于其通道接口的任何密钥例程调用 AtaPortRegistryChannelSubKeyWriteDeferred

微型端口驱动程序不得在初始调用 AtaPortRegistryChannelSubKeyWriteDeferred后重复使用由 Buffer 指向的缓冲区。 由于调用是异步的,因此 Buffer 可能仍指向尚未刷新到注册表的数据。 当微型端口驱动程序调用 AtaPortRegistryFreeBuffer时,端口驱动程序会将缓冲区中的数据刷新到注册表。

要求

要求 价值
目标平台 桌面
标头 irb.h (包括 Ata.h、Irb.h)

另请参阅

AtaPortRegistryAllocateBuffer

AtaPortRegistryFreeBuffer