AtaPortRegistryControllerKeyWriteDeferred 函数 (irb.h)
AtaPortRegistryControllerKeyWriteDeferred 例程将数据异步写入注册表项HKLM\CurrentControlSet\Services\<service name>\ControllerN
下的指示值名称,其中 N 是控制器的编号。
语法
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) |