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


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

Драйверы протокола вызывают функцию NdisSynchronousOidRequest , чтобы создать новый запрос Синхронного идентификатора идентификатора и отправить его базовым драйверам.

Синтаксис

NDIS_STATUS NdisSynchronousOidRequest(
  [in] NDIS_HANDLE      NdisBindingHandle,
  [in] NDIS_OID_REQUEST *OidRequest
);

Параметры

[in] NdisBindingHandle

Дескриптор, возвращаемый функцией NdisOpenAdapterEx , идентифицирующий целевой адаптер мини-порта в привязке.

[in] OidRequest

Указатель на структуру NDIS_OID_REQUEST , указывающую операцию, запрашиваемую с заданным кодом OID_Xxx . Структура может указывать запрос OID, набор или запрос метода.

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

Базовый драйвер определяет, какой код NDIS_STATUS_XXX возвращает NdisSynchronousOidRequest , но обычно это одно из следующих значений:

Код возврата Описание
NDIS_STATUS_SUCCESS
Операция запроса успешно завершена.
NDIS_STATUS_INVALID_OID
Код OID_Xxx, указанный в элементе OidNDIS_OID_REQUEST структурированного буфера в OidRequest , был недопустим или не поддерживается базовым драйвером.
NDIS_STATUS_INVALID_LENGTH или NDIS_STATUS_BUFFER_TOO_SHORT
Значение, указанное в элементе InformationBufferLength NDIS_OID_REQUEST структурированного буфера в OidRequest , не соответствовало требованиям для заданного кода OID_Xxx . Если информационный буфер был слишком мал, член BytesNeeded содержит правильное значение InformationBufferLength при возврате из NdisSynchronousOidRequest.
NDIS_STATUS_INVALID_DATA
Данные, предоставленные в InformationBuffer в заданной структуре NDIS_OID_REQUEST, были недопустимыми для заданного кода OID_Xxx .
NDIS_STATUS_NOT_SUPPORTED или NDIS_STATUS_NOT_RECOGNIZED
Базовый драйвер не поддерживает запрошенную операцию.
NDIS_STATUS_RESOURCES
Запрос не может быть удовлетворен из-за нехватки ресурсов. Как правило, это возвращаемое значение указывает, что попытка выделить память была неудачной, но это не обязательно означает, что тот же запрос, отправленный позже, будет неудачен по той же причине.
NDIS_STATUS_NOT_ACCEPTED
Базовый драйвер попытался выполнить запрошенную операцию, обычно заданную на сетевом адаптере, но она завершилась сбоем. Например, попытка задать слишком много адресов многоадресной рассылки может привести к возврату этого значения.
NDIS_STATUS_CLOSING или NDIS_STATUS_CLOSING_INDICATING
Базовый драйвер не выполнил запрошенную операцию, так как выполняется операция закрытия.
NDIS_STATUS_RESET_IN_PROGRESS
Базовый драйвер мини-порта в настоящее время не может удовлетворить запрос, так как он в настоящее время сбрасывает затронутый сетевой адаптер. Функция ProtocolStatusEx вызываемого абонента была или будет вызвана с NDIS_STATUS_RESET_START, чтобы указать, что выполняется сброс. Это возвращаемое значение не обязательно указывает на то, что тот же запрос, отправленный позже, не будет выполнен по той же причине.
NDIS_STATUS_FAILURE
Это значение обычно является неспецифичным значением по умолчанию, которое возвращается, если ни одно из более конкретных значений NDIS_STATUS_Xxx не привело к сбою запроса базового драйвера.

Комментарии

Функцию NdisSynchronousOidRequest нельзя использовать для общих запросов OID. Для общих запросов OID используйте вместо него функцию NdisOidRequest . NdisSynchronousOidRequest можно использовать только для идентификаторов OID, поддерживаемых NDIS для использования с интерфейсом Синхронного идентификатора OID. Большинству драйверов протоколов не требуется вызывать NdisSynchronousOidRequest

Драйверы протоколов не должны закрывать привязку адаптера до тех пор, пока не будут завершены все синхронные запросы OID, созданные драйвером протокола.

Драйверы протокола не требуются для реализации ProtocolOidRequestComplete или ProtocolDirectOidRequestComplete для вызова NdisSynchronousOidRequestRequest. Как следует из названия, синхронный запрос OID всегда выполняется синхронно, поэтому асинхронный обратный вызов отсутствует.

Требования

Требование Значение
Минимальная версия клиента Windows 10 версии 1709
Целевая платформа Универсальное
Верхняя часть ndis.h (включая Ndis.h)
Библиотека Ndis.lib
IRQL <= DISPATCH_LEVEL

См. также раздел

NDIS_OID_REQUEST

NdisOidRequest

NdisOpenAdapterEx

ProtocolDirectOidRequestComplete

ProtocolOidRequestComplete

ProtocolStatusEx