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)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

另请参阅

IoGetDriverObjectExtension