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


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

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

Синтаксис

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_XXXNdisSynchronousOidReque st возвращается, но обычно это одно из следующих значений:

Возвращаемый код Описание
NDIS_STATUS_SUCCESS
Операция запроса успешно завершена.
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 содержит правильное значение для 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 для вызова NdisSynchronousOidRequest. Как предполагает его имя, синхронный запрос OID всегда завершается синхронно, поэтому асинхронный обратный вызов отсутствует.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 10 версии 1709
целевая платформа Всеобщий
заголовка ndis.h (include Ndis.h)
библиотеки Ndis.lib
IRQL <= DISPATCH_LEVEL

См. также

NDIS_OID_REQUEST

NdisOidRequest

NdisOpenAdapterEx

ProtocolDirectOidRequestComplete

ProtocolOidRequestComplete

ProtocolStatusEx