Функция 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, когда возвращается значение NdisMCmOidRequest . |
|
Данные, предоставленные в InformationBuffer в указанной NDIS_OID_REQUEST структуре, были недопустимыми для заданного кода OID_XXX . |
|
Драйвер клиента не поддерживает запрошенную операцию. |
|
Не удалось выполнить запрос из-за нехватки ресурсов. Обычно это возвращаемое значение указывает, что попытка выделить память была неудачной, но это не обязательно указывает на то, что тот же запрос, если он будет отправлен позже, завершится ошибкой по той же причине. |
|
Это значение обычно является неспецифической по умолчанию, которое возвращается, если не применяется ни один из более конкретных кодов состояния NDIS_STATUS_XXX . |
|
Целевой драйвер прекратил обработку запроса. |
Комментарии
Чтобы инициировать запросы OID к клиентам CoNDIS, драйверы MCM вызывают функцию NdisMCmOidRequest . Прежде чем драйвер MCM вызовет NdisMCmOidRequest, драйвер выделяет память для своего запроса и инициализирует структуру NDIS_OID_REQUEST . MCM задает элемент Oid структуры NDIS_OID_REQUEST с помощью кода OID CoNDIS.
Драйвер MCM может вызывать NdisMCmOidRequest для передачи информации, ориентированной на подключение, например об изменении адресов клиенту, определяемой параметром NdisAfHandle .
После вызова MCM NdisMCmOidRequest NDIS вызывает функцию ProtocolCoOidRequest клиента.
Если запрос драйвера MCM зависит от VC или сторон, драйвер MCM также передает значение, отличное от NULL , в параметре NdisVcHandle или NdisPartyHandle соответственно.
Если NdisMCmOidRequest возвращает NDIS_STATUS_PENDING, запрос обрабатывается асинхронно и NDIS вызовет MCM Функция ProtocolCoOidRequestComplete при выполнении запроса. Если NdisMCmOidRequest возвращает любое другое состояние, запрос завершается, когда возвращается NdisMCmOidRequest , а NDIS не вызывает ProtocolCoOidRequestComplete.
Дополнительные сведения о идентификаторах OID, определенных для использования с NdisMCmOidRequest, см. в разделе OID NDIS.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Поддерживается в NDIS 6.0 и более поздних версиях. |
Целевая платформа | Персональный компьютер |
Верхняя часть | ndis.h (включая Ndis.h) |
Библиотека | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
Правила соответствия DDI | Irql_MCM_Function(ndis) |