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


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

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

Синтаксис

void NdisCmDispatchIncomingCloseCall(
  [in]           NDIS_STATUS CloseStatus,
  [in]           NDIS_HANDLE NdisVcHandle,
  [in, optional] PVOID       Buffer,
  [in]           UINT        Size
);

Параметры

[in] CloseStatus

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

[in] NdisVcHandle

Указывает дескриптор для VC отключаемого вызова. Этот дескриптор был предоставлен NDIS при первоначальном создании VC, будь то диспетчером вызовов или клиентом, с помощью NdisCoCreateVc.

[in, optional] Buffer

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

[in] Size

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

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

None

Remarks

В ходе обычных сетевых операций автономная cm вызывает NdisCmDispatchIncomingCloseCall с параметром CloseStatus , для которого задано значение NDIS_STATUS_SUCCESS, так как соответствующий клиент на удаленном узле вызвал NdisCloseCall.

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

  • Диспетчер звонков уведомил клиента о предложении о входящем вызове. Когда cm's Функция ProtocolCmIncomingCallComplete вызывается с принятием клиентом, она проверяет параметры входного вызова, измененные этим клиентом. ProtocolCmIncomingCallComplete определяет, что клиент предлагает неподдерживаемые параметры вызова для подключения, поэтому вызывает NdisCmDispatchIncomingCloseCall.
  • Аномальные сетевые условия заставляют диспетчер звонков удалять активные вызовы. Например, если диспетчер вызовов получает уведомление о выходе из строя какой-либо связи между этим клиентом и удаленной стороной, CM вызовет NdisCmDispatchIncomingCloseCall , чтобы предотвратить попытку (или ожидание) дальнейшей передачи данных в таком нарушенном соединении.
После удаления любого вызова исходный создатель VC отвечает за вызов NdisCoDeleteVc после выпуска всех дополнительных ресурсов, связанных с VC.

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

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

Требования

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

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

NdisClCloseCall

NdisCmDispatchIncomingDropParty

NdisCoDeleteVc

NdisMCmDispatchIncomingCloseCall

ProtocolClIncomingCloseCall

ProtocolCoReceiveNetBufferLists

ProtocolCoStatusEx