структура NDIS_DEVICE_OBJECT_ATTRIBUTES (ndis.h)
Структура NDIS_DEVICE_OBJECT_ATTRIBUTES определяет атрибуты устройства, которые фильтр NDIS или драйвер мини-порта может передать функции NdisRegisterDeviceEx .
Синтаксис
typedef struct _NDIS_DEVICE_OBJECT_ATTRIBUTES {
NDIS_OBJECT_HEADER Header;
PNDIS_STRING DeviceName;
PNDIS_STRING SymbolicName;
PDRIVER_DISPATCH *MajorFunctions;
ULONG ExtensionSize;
PCUNICODE_STRING DefaultSDDLString;
LPCGUID DeviceClassGuid;
} NDIS_DEVICE_OBJECT_ATTRIBUTES, *PNDIS_DEVICE_OBJECT_ATTRIBUTES;
Члены
Header
Структура NDIS_OBJECT_HEADER для структуры NDIS_DEVICE_OBJECT_ATTRIBUTES. Задайте для элемента Type структуры, указанной в заголовке , значение NDIS_OBJECT_TYPE_DEVICE_OBJECT_ATTRIBUTES, для элемента Revision — NDIS_DEVICE_OBJECT_ATTRIBUTES_REVISION_1, а для элемента Size — значение NDIS_SIZEOF_DEVICE_OBJECT_ATTRIBUTES_REVISION_1.
DeviceName
Указатель на переменную типа NDIS_STRING, которая содержит строку Юникода, завершающуюся null, с именем объекта устройства. Строка должна быть полным именем пути, например \Device\DeviceName. Для Microsoft Windows 2000 и более поздних версий NDIS определяет тип NDIS_STRING как тип UNICODE_STRING .
SymbolicName
Указатель на переменную типа NDIS_STRING, содержащую строку Юникода, которая является видимым в Win32 именем регистрируемого устройства. Как правило, Символическое имя имеет следующий формат: \DosDevices\SymbolicName.
MajorFunctions
Указатель на массив из одной или нескольких точек входа для подпрограмм диспетчеризации драйвера устройства. Драйвер должен задать то же количество отдельных точек входа диспетчеризации, что и число кодов IRP_MJ_XXX, обрабатываемых драйвером для объекта устройства. Каждая подпрограмма диспетчеризации объявляется следующим образом:
NTSTATUS
(*PDRIVER_DISPATCH) (
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
Подпрограмма диспетчеризации имеет следующие параметры:
DeviceObject
Объект устройства для подпрограммы отправки.
Irp
IRP для подпрограммы отправки.
Драйвер не должен предоставлять точки входа для обработчиков PnP или Управления питанием, так как созданный объект устройства не предназначен для физического устройства и поэтому не получает PnP или Power Management IRP.
ExtensionSize
Определенное драйвером число байтов, выделяемых для расширения устройства объекта устройства. Внутренняя структура расширения устройства определяется драйвером.
DefaultSDDLString
Строковое представление параметров безопасности объекта устройства по умолчанию. Безопасность, применяемая к объекту устройства, является производным от этой строки.
Параметр безопасности указывается в подмножестве языка определения дескриптора безопасности (SDDL). Также предоставляется набор предопределенных констант (SDDL_DEVOBJ_XXX). Дополнительные сведения см. в разделе Защита объектов устройств.
DeviceClassGuid
Зарезервировано для NDIS. Присвойте этому члену значение NULL.
Комментарии
Фильтр NDIS или драйвер мини-порта может вызвать функцию NdisRegisterDeviceEx для регистрации устройства. Чтобы указать атрибуты устройства, драйвер выделяет и инициализирует структуру NDIS_DEVICE_OBJECT_ATTRIBUTES и передает структуру параметру DeviceObjectAttributesобъекта NdisRegisterDeviceEx.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Поддерживается в NDIS 6.0 и более поздних версиях. |
Верхняя часть | ndis.h (включая Ndis.h) |