AtaPortGetUnCachedExtension 函数 (irb.h)

AtaPortGetUncachedExtension 例程分配 CPU 和设备共享的未缓存公共缓冲区。

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

语法

PVOID AtaPortGetUnCachedExtension(
  [in] PVOID ChannelExtension,
  [in] ULONG UncachedExtensionSize,
  [in] ULONG IrbExtensionSize
);

参数

[in] ChannelExtension

指向通道扩展的指针。

[in] UncachedExtensionSize

指定未缓存的公共缓冲区的长度(以字节为单位)。 如果微型端口驱动程序不需要未缓存的扩展,请将此参数设置为 0。

[in] IrbExtensionSize

指定微型端口驱动程序为其每个请求存储(如果有)所需的大小(以字节为单位)。

如果微型端口驱动程序不维护其需要存储的每个 IRB 信息,请将此参数设置为 0。

返回值

AtaPortGetUncachedExtension 返回指向未缓存扩展的虚拟地址指针。 如果无法分配请求的内存,或者以前分配的内存,则返回 NULL

注解

微型端口驱动程序可以使用 IRB 扩展作为驱动程序确定的特定于请求的信息的存储,例如处理特定请求所需的数据。

端口驱动程序不会初始化 IRB 扩展,而是设置指向它发送到微型端口驱动程序的每个 IRB 中的扩展的指针。

HBA 硬件可以安全地访问 IRB 扩展。

微型端口驱动程序不得从其 IdeHwControl 例程以外的任何例程调用 AtaPortGetUncachedExtension,并且仅当它正在处理 StartChannel 的控制操作时。 从其他微型端口驱动程序例程调用 AtaPortGetUncachedExtension 会导致不正确的操作甚至系统故障。 端口驱动程序使用 StopChannel 控件操作调用 IdeHwControl 后,会自动释放未缓存的扩展。

要求

要求
目标平台 桌面
标头 irb.h (包括 Ata.h、Irb.h)
Library Ataport.lib;Pciidex.lib

另请参阅

IdeHwControl