Функция 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 (include Wdm.h, Ntddk.h, Ntifs.h) |
библиотеки | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |