Поделиться через


Функция 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. Выделенное хранилище автоматически освобождается диспетчером ввода-вывода при удалении объекта драйвера.

Вызывающие функции этой подпрограммы должны предоставить уникальный идентификатор для ClientIdentificationAddress. Чтобы получить указатель на область контекста, вызывающий объект передает ClientIdentificationAddress в IoGetDriverObjectExtension.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно начиная с Windows 2000.
целевая платформа Всеобщий
заголовка wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
библиотеки NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

См. также

IoGetDriverObjectExtension