IoAllocateDriverObjectExtension function (wdm.h)
The IoAllocateDriverObjectExtension routine allocates a per-driver context area, called a driver object extension, and assigns a unique identifier to it.
Syntax
NTSTATUS IoAllocateDriverObjectExtension(
[in] PDRIVER_OBJECT DriverObject,
[in] PVOID ClientIdentificationAddress,
[in] ULONG DriverObjectExtensionSize,
[out] PVOID *DriverObjectExtension
);
Parameters
[in] DriverObject
Pointer to a driver object to which the context area will be associated.
[in] ClientIdentificationAddress
Specifies a unique identifier for the context area to be allocated.
[in] DriverObjectExtensionSize
Specifies the length, in bytes, of the context area to be allocated.
[out] DriverObjectExtension
Pointer to, on completion, the allocated context area.
Return value
IoAllocateDriverObjectExtension returns one of the following NTSTATUS codes:
Return code | Description |
---|---|
|
Indicates that the routine allocated an extension of the requested size. |
|
Indicates that the memory could not be allocated for the driver object extension. |
|
Indicates that a driver object extension with the given ClientIdentificationAddress already exists. |
Remarks
Memory allocated by the system for the driver object extension is resident storage and is accessible from any IRQL. The allocated storage is automatically freed by the I/O manager when the driver object is deleted.
Callers of this routine must provide a unique identifier for ClientIdentificationAddress. To retrieve a pointer to the context area, a caller passes the ClientIdentificationAddress to IoGetDriverObjectExtension.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Available starting with Windows 2000. |
Target Platform | Universal |
Header | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |