Функция 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. Выделенное хранилище автоматически освобождается диспетчером ввода-вывода при удалении объекта драйвера.
Вызывающие компоненты этой подпрограммы должны предоставлять уникальный идентификатор clientIdentificationAddress. Чтобы получить указатель на область контекста, вызывающий объект передает ClientIdentificationAddress в IoGetDriverObjectExtension.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно начиная с Windows 2000. |
Целевая платформа | Универсальное |
Верхняя часть | wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h) |
Библиотека | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |