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


Функция NdisAllocateGenericObject (ndis.h)

Компоненты, не имеющие дескриптора NDIS, используют функцию NdisAllocateGenericObject для выделения универсального объекта NDIS.

Синтаксис

PNDIS_GENERIC_OBJECT NdisAllocateGenericObject(
  [optional] PDRIVER_OBJECT DriverObject,
             ULONG          Tag,
             USHORT         Size
);

Параметры

[optional] DriverObject

Объект драйвера, который необходимо связать с универсальным объектом. Этот параметр может принимать значение NULL.

Tag

Тег памяти ядра, который NDIS должен использовать для выделения памяти для универсального объекта.

Size

Объем памяти в байтах для резервирования для вызывающего объекта. Сюда не входит размер структуры NDIS_GENERIC_OBJECT . Используйте дополнительное пространство памяти для собственных целей. Чтобы получить доступ к дополнительной памяти, используйте sizeof(NDIS_GENERIC_OBJECT), чтобы пропустить структуру универсального объекта.

Возвращаемое значение

NdisAllocateGenericObject возвращает указатель на выделенный NDIS_GENERIC_OBJECT. Если NDIS не удалось создать объект, возвращаемое значение равно NULL.

Комментарии

NDIS использует универсальный объект для управления ресурсами, выделенными компонентом, который не имеет дескриптора NDIS. Такой компонент использует возвращаемый указатель универсального объекта в качестве дескриптора NDIS в некоторых API выделения ресурсов NDIS, которым требуется дескриптор NDIS.

Драйверы NDIS должны вызывать функцию NdisFreeGenericObject , чтобы освободить универсальный объект, созданный с помощью NdisAllocateGenericObject.

Требования

Требование Значение
Минимальная версия клиента Поддерживается в NDIS 6.0 и более поздних версиях.
Целевая платформа Универсальное
Верхняя часть ndis.h (включая Ndis.h)
Библиотека Ndis.lib
IRQL <= DISPATCH_LEVEL
Правила соответствия DDI Irql_Miscellaneous_Function(ndis), NdisAllocateGenericObject(ndis)

См. также раздел

NDIS_GENERIC_OBJECT

NdisFreeGenericObject