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 代码之一:
返回代码 | 说明 |
---|---|
|
指示例程分配了所请求大小的扩展。 |
|
指示无法为驱动程序对象扩展分配内存。 |
|
指示具有给定 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 |