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


OID_GEN_CO_SUPPORTED_GUIDS

OID_GEN_CO_SUPPORTED_GUIDS OID запрашивает минипорт-драйвер для возврата массива структур типа NDIS_GUID. Каждая структура в массиве указывает сопоставление пользовательского GUID (глобально уникального идентификатора) с пользовательским OID или с NDIS_STATUS, который драйвер мини-порта отправляет через NdisMCoIndicateStatusEx.

Структура NDIS_GUID определяется следующим образом:

typedef struct _NDIS_GUID {
    GUID    Guid;
    union {
        NDIS_OID    Oid;
        NDIS_STATUS Status;
    };
    ULONG   Size;
    ULONG   Flags;
} NDIS_GUID, *PNDIS_GUID;

Члены этой структуры содержат следующие сведения:

Guid
Настраиваемый GUID, определенный для мини-драйвера.

Oid
Пользовательский OID, с которым guid сопоставляется.

состояния
NDIS_STATUS, с которым guid сопоставляется.

размера
При установке флага fNDIS_GUID_ARRAY Size указывает размер каждого элемента данных в массиве, возвращаемого драйвером мини-порта. Если установлен флаг fNDIS_GUID_ANSI_STRING или fNDIS_GUID_NDIS_STRING, размер имеет значение -1. В противном случае размер указывает размер в байтах элемента данных, который представляет GUID.

флаги
Следующие флаги могут быть объединены вместе, чтобы указать, сопоставляется ли GUID с OID или строкой NDIS_STATUS и указывает тип данных, предоставленных для GUID:

fNDIS_GUID_TO_OID
При установке указывает, что структура NDIS_GUID сопоставляет GUID с OID.

fNDIS_GUID_TO_STATUS
При установке указывает, что структура NDIS_GUID сопоставляет GUID с строкой NDIS_STATUS.

fNDIS_GUID_ANSI_STRING
Если задано значение, указывает, что строка ANSI, завершаемая null, предоставляется для GUID.

fNDIS_GUID_UNICODE_STRING
При установке указывает, что строка Юникода предоставляется для GUID.

fNDIS_GUID_ARRAY
При установке указывает, что массив элементов данных предоставляется для GUID. Указанный размер указывает длину каждого элемента данных в массиве.

fNDIS_GUID_ALLOW_READ
Если задано, указывает, что все пользователи могут запрашивать этот GUID.

fNDIS_GUID_ALLOW_WRITE
При установке указывает, что всем пользователям разрешено задать этот GUID.

Замечания

Заметка

По умолчанию пользовательские графические идентификаторы WMI, предоставляемые мини-драйвером, доступны только пользователям с правами администратора. Пользователь с правами администратора всегда может читать или записывать в пользовательский GUID, если драйвер минипорта поддерживает операцию чтения или записи для этого GUID. Задайте флаги fNDIS_GUID_ALLOW_READ и fNDIS_GUID_ALLOW_WRITE, чтобы разрешить всем пользователям получать доступ к пользовательскому GUID.

Обратите внимание, что все пользовательские идентификаторы GUID, зарегистрированные драйвером мини-порта, должны задавать либо fNDIS_GUID_TO_OID, либо fNDIS_GUID_TO_STATUS (никогда не задавать оба). Все остальные флаги могут быть объединены с помощью оператора OR в соответствии с применимым.

В следующем примере структура NDIS_GUID сопоставляет GUID с OID_GEN_CO_RCV_PDUS_NO_BUFFER:

NDIS_GUID NdisGuid =  {{0x0a214809, 0xe35f, 0x11d0, 0x96, 0x92, 0x00,
 0xc0, 0x4f, 0xc3, 0x35, 0x8c},
 GUID_NDIS_GEN_CO_RCV_PDUS_NO_BUFFER,
 OID_GEN_CO_RCV_PDUS_NO_BUFFER,
 4,
 fNDIS_GUID_TO_OID};

GUID — это идентификатор, используемый инструментарием управления Windows (WMI) для получения или задания сведений. NDIS перехватывает GUID, отправленный WMI драйверу NDIS, сопоставляет GUID с OID и отправляет идентификатор OID драйверу. Драйвер возвращает элементы данных в NDIS, которые затем возвращают данные в WMI.

NDIS также преобразует изменения состояния сетевого адаптера в идентификаторы GUID, распознаваемые WMI. Когда драйвер минипорта сообщает об изменении состояния сетевого адаптера с NdisMCoIndicateStatusEx, NDIS преобразует NDIS_STATUS, указанные драйвером мини-порта, в GUID, который NDIS отправляет в WMI.

Если драйвер минипорта, ориентированный на подключение, поддерживает пользовательские идентификаторы GUID, он должен поддерживать OID_GEN_CO_SUPPORTED_GUIDS, который возвращает NDIS сопоставление пользовательских идентификаторов GUID с пользовательскими идентификаторами OID или строками NDIS_STATUS. После запроса мини-драйвера с OID_GEN_CO_SUPPORTED_GUIDS NDIS регистрирует пользовательские графические идентификаторы драйвера мини-порта с помощью WMI.

Требования

версии: Windows Vista и более поздних версий заголовка: Ntddndis.h (include Ndis.h)