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

NdisMCmCreateVc настраивает конечную точку подключения, в которой драйвер MCM может отправлять клиенту предложение для входящих вызовов.

Синтаксис

NDIS_STATUS NdisMCmCreateVc(
  [in]  NDIS_HANDLE  MiniportAdapterHandle,
  [in]  NDIS_HANDLE  NdisAfHandle,
  [in]  NDIS_HANDLE  MiniportVcContext,
  [out] PNDIS_HANDLE NdisVcHandle
);

Параметры

[in] MiniportAdapterHandle

Указывает предоставленный NDIS-дескриптор, который изначально был введен в MiniportInitializeEx.

[in] NdisAfHandle

Указывает дескриптор, идентифицирующий клиента, который является целевым объектом входящего вызова. Драйвер MCM получил этот дескриптор в качестве входного параметра для функции ProtocolCmOpenAf .

[in] MiniportVcContext

Указывает дескриптор области контекста, предоставляемой вызывающим абонентом, в которой драйвер MCM поддерживает состояние для этого VC. NDIS передает этот дескриптор обратно драйверу MCM во всех последующих вызовах, относящихся к этому VC, если вызов NdisMCmCreateVc завершается успешно.

[out] NdisVcHandle

Указатель на переменную, предоставленную вызывающим лицом, которая должна быть инициализирована значением NULL перед вызовом NdisMCmCreateVc . При возвращении из успешного вызова для этой переменной задан дескриптор, предоставленный NDIS для только что созданного VC. Вызывающий объект должен сохранить этот дескриптор для последующих вызовов функций NdisXxx, ориентированных на подключение, относительно этого VC.

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

NdisMCmCreateVc может возвращать одно из следующих элементов:

Код возврата Описание
NDIS_STATUS_SUCCESS
NDIS успешно создал VC.
NDIS_STATUS_RESOURCES
NDIS не удалось выделить достаточный объем памяти для настройки VC.
NDIS_STATUS_FAILURE
Указан недопустимый объект NdisAfHandle .
NDIS_STATUS_XXX
Клиенту по какой-то причине не удалось создать VC, и NDIS распространил состояние ошибки, возвращенное его функцией ProtocolCoCreateVc , в драйвер MCM.

Комментарии

Драйвер MCM создает VC с NdisMCmCreateVc для представления входящего предложения подключения от удаленного узла к SAP, который уже зарегистрирован в драйвере MCM.

В процессе создания VC NDIS предоставляет клиенту и драйверу MCM NdisVcHandle . Этот дескриптор идентифицирует виртуальное подключение для клиента и драйвера мини-порта, к которому направляются последующие запросы, касающиеся заданного VC. Каждый драйвер должен рассматривать этот дескриптор VC как непрозрачную переменную, передавая его без изменений и не интерпретированных в последующих вызовах определенных функций библиотеки NDIS, ориентированных на подключение.

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

Когда драйвер MCM обрабатывает предложение входящего вызова, направленного в один из зарегистрированных поставщиков параметров безопасности, он должен сначала вызвать NdisMCmCreateVc . В качестве синхронной операции NDIS вызывает функцию ProtocolCoCreateVc клиента до того, как NdisMCmCreateVc вернет управление. Если вызов NdisMCmCreateVc завершается успешно, драйвер MCM может уведомить соответствующего клиента, передав возвращаемое значение в NdisVcHandle в NdisMCmDispatchIncomingCall.

Модуль записи драйвера определяет, имеет ли драйвер MCM (внутреннюю) функцию MiniportCoCreateVc , которую драйвер вызывает в контексте настройки подключений для исходящих и входящих вызовов.

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

Требования

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

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

MiniportCoCreateVc

NdisAllocateFromNPagedLookasideList

NdisClMakeCall

NdisCoCreateVc

NdisMCmDeleteVc

NdisMCmDispatchIncomingCall

ProtocolCmRegisterSap

ProtocolCoCreateVc