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 例程。

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

要求

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

另请参阅

AtaPortRegistryAllocateBuffer

AtaPortRegistryFreeBuffer