Функция 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 вызовет вызывающий объект функция ProtocolCoOidRequestComplete при завершении запроса. |
|
Код OID_XXX, указанный в элементе Oid структуры NDIS_OID_REQUEST в параметре OidRequest, является недопустимым или неподдерживаемым базовым драйвером. |
|
Значение, указанное в элементе InformationBufferLength структуры NDIS_OID_REQUEST в OidRequest, не соответствует требованиям для заданного кода OID_XXX. Если буфер информации слишком мал, элемент BytesNeeded NDIS_OID_REQUEST содержит правильное значение для InformationBufferLength, когда возвращается NdisMCmOidReque st. |
|
Данные, предоставленные в InformationBuffer в данной структуре NDIS_OID_REQUEST, недопустимы для заданного кода OID_XXX. |
|
Драйвер клиента не поддерживает запрошенную операцию. |
|
Запрос не может быть удовлетворен из-за нехватки ресурсов. Обычно это возвращаемое значение указывает, что попытка выделения памяти была неудачной, но не обязательно указывает, что тот же запрос, если отправлен позже, завершится ошибкой по той же причине. |
|
Обычно это значение является нетипичным значением по умолчанию, которое возвращается, когда ни один из более конкретных NDIS_STATUS_XXX коды состояния применяется. |
|
Целевой драйвер перестал обрабатывать запрос. |
Замечания
Чтобы инициировать запросы 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) |