Макрос NdisMCmDispatchIncomingCloseCall (ndis.h)

NdisMCmDispatchIncomingCloseCall сообщает клиенту об удалении активного или предлагаемого вызова, как правило, из-за того, что драйвер MCM получил запрос из сети на закрытие подключения.

Синтаксис

void NdisMCmDispatchIncomingCloseCall(
   _S_,
   _H_,
   _B_,
   _Z_
);

Параметры

_S_

Задает определяемую вызывающим элементом NDIS_STATUS_XXX, указывающую причину запроса на отключение. Во время обычных сетевых операций драйвер MCM передает NDIS_STATUS_SUCCESS, чтобы указать, что он получил запрос, инициированный удаленной стороной, на закрытие активного вызова.

_H_

Указывает дескриптор для VC отключаемого вызова. Этот дескриптор был предоставлен NDIS при первоначальном создании VC, будь то драйвер MCM с NdisMCmCreateVc или в качестве входного параметра для функции ProtocolCoCreateVc .

_B_

Указатель на выделенный вызывающим абонентом резидентный буфер, содержащий дополнительные данные об отключении, относящиеся к определенному протоколу, если таковые есть. В зависимости от базового носителя этот указатель может иметь значение NULL.

_Z_

Указывает размер буфера в байтах, если буфер имеет значение NULL.

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

None

Remarks

В ходе обычных сетевых операций драйвер MCM вызывает NdisMCmDispatchIncomingCloseCall с параметром CloseStatus , равным NDIS_STATUS_SUCCESS так как соответствующий клиент на удаленном узле вызвал NdisClCloseCall.

Однако драйвер MCM также может вызывать NdisMCmDispatchIncomingCloseCall , если происходит одно из следующих действий:

  • Драйвер MCM уведомил клиента о входящем предложении вызова. Когда у водителя мини-порта Функция ProtocolCmIncomingCallComplete вызывается с принятием клиентом, она проверяет параметры входного вызова, измененные этим клиентом. ProtocolCmIncomingCallComplete определяет, что клиент предлагает неподдерживаемые параметры вызова для соединения, поэтому вызывает NdisMCmDispatchIncomingCloseCall.
  • Аномальные сетевые условия заставляют драйвер MCM удалять активные вызовы. Например, если драйвер MCM получает уведомление о том, что какая-либо связь между этим клиентом и удаленной стороной подключения выходит из строя, драйвер мини-порта вызовет NdisCmDispatchIncomingCloseCall , чтобы предотвратить клиент от попытки (или ожидания) дальнейшей передачи данных в таком нарушенном подключении.
После того как клиент вызывает NdisClCloseCall , вызывая тем самым деактивацию VC, исходный создатель VC отвечает за уничтожение VC. Либо клиент вызывает NdisCoDeleteVc, что приводит к вызову NDIS функции ProtocolCoDeleteVc драйвера MCM, либо драйвер MCM вызывает NdisMCmDeleteVc после вызова NdisMCmDeactivateVc и освобождения всех дополнительных ресурсов, связанных с созданным VC.

Вызов NdisMCmDispatchIncomingCloseCall вызывает NDIS для вызова клиента Функция ProtocolClIncomingCloseCall .

NdisMCmDispatchIncomingCall могут вызывать только драйверы мини-портов, ориентированные на подключение, которые обеспечивают поддержку управления звонками. Автономные диспетчеры вызовов, которые регистрируют себя в NDIS в качестве драйверов протокола, вызывают вместо этого NdisCmDispatchIncomingCloseCall .

Требования

Требование Значение
Минимальная версия клиента Поддерживается для драйверов NDIS 6.0 и NDIS 5.1 (см. раздел NdisMCmDispatchIncomingCloseCall (NDIS 5.1)) в Windows Vista. Поддерживается для драйверов NDIS 5.1 (см. раздел NdisMCmDispatchIncomingCloseCall (NDIS 5.1)) в Windows XP.
Целевая платформа Персональный компьютер
Верхняя часть ndis.h (включая Ndis.h)
IRQL <= DISPATCH_LEVEL
Правила соответствия DDI Irql_MCM_Function(ndis)

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

MiniportInterruptDPC

NdisClCloseCall

NdisMCmDeactivateVc

NdisMCmDeleteVc

NdisMCmDispatchIncomingCall

NdisMCmDispatchIncomingDropParty

ProtocolClIncomingCloseCall

ProtocolCoDeleteVc