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)