структура 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)

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

NDIS_OBJECT_HEADER

NdisRegisterDeviceEx

UNICODE_STRING