Функция 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 , но обычно это одно из следующих значений:
Код возврата | Описание |
---|---|
|
Операция запроса успешно завершена. |
|
Код OID_Xxx, указанный в элементе OidNDIS_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 для вызова NdisSynchronousOidRequestRequest. Как следует из названия, синхронный запрос OID всегда выполняется синхронно, поэтому асинхронный обратный вызов отсутствует.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 10 версии 1709 |
Целевая платформа | Универсальное |
Верхняя часть | ndis.h (включая Ndis.h) |
Библиотека | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |