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


OID_GEN_CO_SUPPORTED_GUIDS

OID OID_GEN_CO_SUPPORTED_GUIDS запрашивает у драйвера мини-порта массив структур типа 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, то параметр Size имеет значение -1. В противном случае значение Size задает размер элемента данных, который представляет GUID, в байтах.

Flags
Следующие флаги могут быть ORed вместе, чтобы указать, сопоставляется ли 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
Если задано значение , указывает, что для GUID предоставляется строка ANSI, завершающаяся null.

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

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

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

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

Комментарии

Примечание

По умолчанию пользовательские идентификаторы 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 регистрирует пользовательские GUID драйвера мини-порта с помощью WMI.

Требования

Версия: Windows Vista и более поздние заголовок: Ntddndis.h (включая Ndis.h)