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


Функция NdisMCmOidRequest (ndis.h)

Функция NdisMCmOidRequest отправляет запрос OID от драйвера диспетчера вызовов мини-порта (MCM) клиенту CoNDIS.

Синтаксис

NDIS_STATUS NdisMCmOidRequest(
  [in]           NDIS_HANDLE       NdisAfHandle,
  [in, optional] NDIS_HANDLE       NdisVcHandle,
  [in, optional] NDIS_HANDLE       NdisPartyHandle,
                 PNDIS_OID_REQUEST NdisOidRequest
);

Параметры

[in] NdisAfHandle

Дескриптор, определяющий семейство адресов (AF) и неявно клиент, на который направляется запрос OID. Драйвер MCM первоначально получил этот дескриптор в качестве входного параметра для функции ProtocolCmOpenAf.

[in, optional] NdisVcHandle

Дескриптор, определяющий виртуальное подключение (VC), для который вызывающий запрашивает или задает сведения, если запрос относится к VC. В противном случае, если этот запрос не относится к VC, этот параметр null. Для любого запроса VC вызывающий объект изначально получил этот дескриптор при создании VC с функцией NdisMCmCreateVc или в качестве входного параметра для его функции ProtocolCoCreateVc.

[in, optional] NdisPartyHandle

Дескриптор, определяющий сторону в многоточечных VC, для которую вызывающий объект запрашивает или задает сведения, если запрос относится к стороне. В противном случае, если этот запрос не является сторонним, этот параметр null. Для любого стороннего запроса драйвер MCM первоначально получил этот дескриптор в качестве входного параметра для функции ProtocolCmAddParty.

NdisOidRequest

Указатель на выделенный вызывающим буфером, который содержит NDIS_OID_REQUEST структуру.

Возвращаемое значение

NdisMCmOidRequest возвращает одно из следующих значений:

Возвращаемый код Описание
NDIS_STATUS_SUCCESS
Операция запроса успешно завершена.
NDIS_STATUS_PENDING
Запрос обрабатывается асинхронно, и NDIS вызовет вызывающий объект функция ProtocolCoOidRequestComplete при завершении запроса.
NDIS_STATUS_INVALID_OID
Код OID_XXX, указанный в элементе Oid структуры NDIS_OID_REQUEST в параметре OidRequest, является недопустимым или неподдерживаемым базовым драйвером.
NDIS_STATUS_INVALID_LENGTH или NDIS_STATUS_BUFFER_TOO_SHORT
Значение, указанное в элементе InformationBufferLength структуры NDIS_OID_REQUEST в OidRequest, не соответствует требованиям для заданного кода OID_XXX. Если буфер информации слишком мал, элемент BytesNeeded NDIS_OID_REQUEST содержит правильное значение для InformationBufferLength, когда возвращается NdisMCmOidReque st.
NDIS_STATUS_INVALID_DATA
Данные, предоставленные в InformationBuffer в данной структуре NDIS_OID_REQUEST, недопустимы для заданного кода OID_XXX.
NDIS_STATUS_NOT_SUPPORTED или NDIS_STATUS_NOT_RECOGNIZED
Драйвер клиента не поддерживает запрошенную операцию.
NDIS_STATUS_RESOURCES
Запрос не может быть удовлетворен из-за нехватки ресурсов. Обычно это возвращаемое значение указывает, что попытка выделения памяти была неудачной, но не обязательно указывает, что тот же запрос, если отправлен позже, завершится ошибкой по той же причине.
NDIS_STATUS_FAILURE
Обычно это значение является нетипичным значением по умолчанию, которое возвращается, когда ни один из более конкретных NDIS_STATUS_XXX коды состояния применяется.
NDIS_STATUS_REQUEST_ABORTED
Целевой драйвер перестал обрабатывать запрос.

Замечания

Чтобы инициировать запросы OID к клиентам CoNDIS, драйверы MCM вызывают функцию NdisMCmOidRequest. Прежде чем драйвер MCM вызывает NdisMCmOidRequest, драйвер выделяет память для запроса и инициализирует структуру NDIS_OID_REQUEST. MCM задает элемент Oid структуры NDIS_OID_REQUEST с кодом CoNDIS OID.

Драйвер MCM может вызывать NdisMCmOidRequest для обмена данными, ориентированными на подключение, например изменение адресов клиенту, которое определяет параметр NdisAfHandle.

После вызова MCM NdisMCmOidRequest, NDIS вызывает функцию ProtocolCoOidRequest клиента.

Если запрос драйвера MCM относится к VC или стороне, драйвер MCM также передает значение, отличное отNULL, в NdisVcHandle или параметр NdisPartyHandle соответственно.

Если NdisMCmOidReque st возвращает NDIS_STATUS_PENDING, запрос обрабатывается асинхронно, а NDIS вызовет MCM функция ProtocolCoOidRequestComplete при завершении запроса. Если NdisMCmOidRequest возвращает любое другое состояние, запрос завершается, когда возвращается NdisMCmOidRequest, а NDIS не вызывает ProtocolCoOidRequestComplete.

Дополнительные сведения об OID, которые определены для использования с NdisMCmOidRequest, см. в NDIS OIDs.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Поддерживается в NDIS 6.0 и более поздних версиях.
целевая платформа Настольный
заголовка ndis.h (include Ndis.h)
библиотеки Ndis.lib
IRQL <= DISPATCH_LEVEL
правил соответствия DDI Irql_MCM_Function(ndis)

См. также

NDIS_OID_REQUEST

NdisMCmCreateVc

ProtocolCmAddParty

ProtocolCmOpenAf

ProtocolCoCreateVc

ProtocolCoOidRequest

ProtocolCoOidRequestComplete