Функция 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 (include Ndis.h) |
библиотеки | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
правил соответствия DDI | Irql_Miscellaneous_Function(ndis), NdisAllocateGenericObject(ndis) |