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


функция обратного вызова PROTOCOL_CM_ACTIVATE_VC_COMPLETE (ndis.h)

Требуется функция ProtocolCmActivateVcComplete . Эта функция указывает диспетчеру вызовов, что предыдущий вызов NdisCoActivateVc был завершен драйвером мини-порта.

Примечание Функцию необходимо объявить с помощью типа PROTOCOL_CM_ACTIVATE_VC_COMPLETE . Дополнительные сведения см. в следующем разделе Примеры.
 

Синтаксис

PROTOCOL_CM_ACTIVATE_VC_COMPLETE ProtocolCmActivateVcComplete;

void ProtocolCmActivateVcComplete(
  [in] NDIS_STATUS Status,
  [in] NDIS_HANDLE CallMgrVcContext,
  [in] PCO_CALL_PARAMETERS CallParameters
)
{...}

Параметры

[in] Status

Указывает окончательное состояние запроса диспетчера вызовов на активацию VC, как указано драйвером мини-порта.

[in] CallMgrVcContext

Указывает дескриптор для области контекста, выделенной диспетчером вызовов, в которой диспетчер вызовов сохраняет свое состояние для каждого VC. Диспетчер вызовов предоставил этот дескриптор из функции ProtocolCoCreateVc .

[in] CallParameters

Указатель на параметры вызова, указанные диспетчером вызовов в вызове NdisCmActivateVc.

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

None

Remarks

Когда другие сетевые компоненты завершают свои операции по активации виртуального подключения, инициируемые при диспетчере вызовов NdisCmActivateVc, NDIS уведомляет диспетчера вызовов о том, что VC активирован, вызвав его функцию ProtocolCmActivateVcComplete . Состояние активации находится в разделе Состояние . Возможные значения состояния включают, но не ограничиваются следующими:

ProtocolCmActivateVcComplete должен проверка состояние, возвращаемое в поле Состояние, чтобы убедиться, что виртуальное подключение успешно активировано. Диспетчер звонков не должен пытаться обмениваться данными через виртуальное подключение, если состояние не NDIS_STATUS_SUCCESS.

Диспетчеры звонков должны завершить обработку, необходимую для сетевого носителя, чтобы убедиться, что виртуальное подключение готово к передаче данных, прежде чем возвращать управление в NDIS.

Если диспетчер вызовов указал ROUND_UP_FLOW или ROUND_DOWN_FLOW в CallParameters :>
MediaParameters->Флаги, параметры вызова, возвращаемые в CallParameters , могут быть изменены драйвером мини-порта. Диспетчеры звонков должны проверить параметры вызова, которые были возвращены, чтобы обеспечить правильную работу. Если новые параметры вызова неудовлетворительны, диспетчер вызовов должен либо вызвать NdisCmActivateVc с новыми параметрами вызова, либо деактивировать VC с помощью NdisCmDeactivateVc.

Примеры

Чтобы определить функцию ProtocolCmActivateVcComplete , необходимо сначала предоставить объявление функции, определяющее тип определяемой функции. Windows предоставляет набор типов функций для драйверов. Объявление функции с помощью типов функций помогает анализу кода для драйверов, средству проверки статических драйверов (SDV) и другим средствам проверки находить ошибки, и это требование для написания драйверов для операционной системы Windows.

Например, чтобы определить функцию ProtocolCmActivateVcComplete с именем MyCmActivateVcComplete, используйте тип PROTOCOL_CM_ACTIVATE_VC_COMPLETE , как показано в следующем примере кода:

PROTOCOL_CM_ACTIVATE_VC_COMPLETE MyCmActivateVcComplete;

Затем реализуйте функцию следующим образом:

_Use_decl_annotations_
VOID
 MyCmActivateVcComplete(
    NDIS_STATUS  Status,
    NDIS_HANDLE  CallMgrVcContext,
    PCO_CALL_PARAMETERS  CallParameters
    )
  {...}

Тип функции PROTOCOL_CM_ACTIVATE_VC_COMPLETE определен в файле заголовка Ndis.h. Чтобы более точно определить ошибки при запуске средств анализа кода, не забудьте добавить заметку Use_decl_annotations в определение функции. Заметка Use_decl_annotations гарантирует использование заметок, которые применяются к типу функции PROTOCOL_CM_ACTIVATE_VC_COMPLETE в файле заголовка. Дополнительные сведения о требованиях к объявлениям функций см. в статье Объявление функций с помощью типов ролей функций для драйверов NDIS.

Сведения о Use_decl_annotations см. в статье Поведение функции с заметками.

Требования

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

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

NdisCmActivateVc

NdisCmDeactivateVc

ProtocolCmMakeCall