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


Функция 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 .

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

Никакой

Замечания

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

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

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

Вызов NdisCmDispatchIncomingCloseC all вызывает NDIS для вызова клиента функция ProtocolClIncomingCloseCall.

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

Требования

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

См. также

NdisCloseCall

NdisCmDispatchIncomingDropParty

NdisCoDeleteVc

NdisMCmDispatchIncomingCloseCall

ProtocolClIncomingCloseCall

ProtocolCoReceiveNetBufferLists

ProtocolCoStatusEx