Функция 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 возвращается, но обычно это одно из следующих значений:
Возвращаемый код | Описание |
---|---|
|
Операция запроса успешно завершена. |
|
Код OID_Xxx, указанный в элементе Oid элемента NDIS_OID_REQUEST-структурированного буфера в OidRequest, был недопустимым или неподдерживаемым базовым драйвером. |
|
Значение, указанное в элементе InformationBufferLength буфера NDIS_OID_REQUEST в OidRequest, не соответствовало требованиям для заданного кода OID_Xxx. Если буфер информации был слишком мал, элемент BytesNeeded содержит правильное значение для InformationBufferLength при возврате из NdisSynchronousOidRequest. |
|
Данные, предоставленные в InformationBuffer в данной структуре NDIS_OID_REQUEST, недопустимы для заданного кода OID_Xxx. |
|
Базовый драйвер не поддерживает запрошенную операцию. |
|
Запрос не может быть удовлетворен из-за нехватки ресурсов. Как правило, это возвращаемое значение указывает, что попытка выделения памяти была неудачной, но не обязательно указывает, что тот же запрос, отправленный позже, завершится ошибкой по той же причине. |
|
Базовый драйвер попытался выполнить запрошенную операцию, как правило, набор на сетевом адаптере, но произошел сбой. Например, попытка задать слишком много адресов многоадресной рассылки может привести к возврату этого значения. |
|
Базовый драйвер завершился ошибкой запрошенной операции, так как выполняется закрытая операция. |
|
Базовый минипорт-драйвер не может удовлетворить запрос в настоящее время, так как он в настоящее время сбрасывает затронутый сетевой адаптер. Функция ProtocolStatusEx вызываемой вызывающей стороны или вызовется с NDIS_STATUS_RESET_START, чтобы указать, что сброс выполняется. Это возвращаемое значение не обязательно указывает, что тот же запрос, отправленный позже, завершится ошибкой по той же причине. |
|
Обычно это значение является неконкретным значением по умолчанию, возвращаемым, когда ни одно из более конкретных 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 |