IoAllocateDriverObjectExtension 函数 (wdm.h)

IoAllocateDriverObjectExtension 例程分配每个驱动程序上下文区域,称为 驱动程序对象扩展,并为其分配唯一标识符。

语法

NTSTATUS IoAllocateDriverObjectExtension(
  [in]  PDRIVER_OBJECT DriverObject,
  [in]  PVOID          ClientIdentificationAddress,
  [in]  ULONG          DriverObjectExtensionSize,
  [out] PVOID          *DriverObjectExtension
);

参数

[in] DriverObject

指向将关联上下文区域的驱动程序对象的指针。

[in] ClientIdentificationAddress

指定要分配的上下文区域的唯一标识符。

[in] DriverObjectExtensionSize

指定要分配的上下文区域的长度(以字节为单位)。

[out] DriverObjectExtension

指向在完成时分配的上下文区域的指针。

返回值

IoAllocateDriverObjectExtension 返回以下 NTSTATUS 代码之一:

返回代码 描述
STATUS_SUCCESS
指示例程分配了请求大小的扩展。
STATUS_INSUFFICIENT_RESOURCES
指示无法为驱动程序对象扩展分配内存。
STATUS_OBJECT_NAME_COLLISION
指示已存在具有给定 ClientIdentificationAddress 的驱动程序对象扩展。

言论

系统为驱动程序对象扩展分配的内存是驻留存储,可从任何 IRQL 访问。 删除驱动程序对象时,I/O 管理器会自动释放分配的存储。

此例程的调用方必须为 ClientIdentificationAddress提供唯一标识符。 若要检索指向上下文区域的指针,调用方将 ClientIdentificationAddress 传递给 IoGetDriverObjectExtension

要求

要求 价值
最低支持的客户端 从 Windows 2000 开始可用。
目标平台 普遍
标头 wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h)
NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

另请参阅

IoGetDriverObjectExtension