AtaPortRegistryControllerKeyWriteDeferred 函数 (irb.h)

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

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

语法

BOOLEAN AtaPortRegistryControllerKeyWriteDeferred(
  [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 指向的位置将更新为已成功复制到注册表的数据长度。

返回值

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

言论

如果值名称不存在,AtaPortRegistryControllerKeyWriteDeferred 例程会为值名称创建一个条目,并将输入数据存储在新创建的值名称下。

微型端口驱动程序可以从通道接口中定义的任何例程调用 AtaPortRegistryControllerKeyWriteDeferred 例程。

Buffer 指向的缓冲区必须使用 AtaPortRegistryAllocateBuffer进行分配。 微型端口驱动程序在调用 AtaPortRegistryControllerKeyWriteDeferred 后,不得重复使用此缓冲区,因为端口驱动程序延迟写入密钥数据。 如果微型端口驱动程序重用缓冲区,则它可能会覆盖缓冲区中的数据,然后端口驱动程序有机会将其存储在注册表项中。 当微型端口驱动程序调用 AtaPortRegistryFreeBuffer 释放缓冲区时,端口驱动程序将刷新缓冲区。

要求

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

另请参阅

AtaPortRegistryAllocateBuffer

AtaPortRegistryFreeBuffer