Функция 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 успешно создал VC. |
|
NDIS не удалось выделить достаточный объем памяти для настройки VC. |
|
Указан недопустимый объект NdisAfHandle . |
|
Клиенту по какой-то причине не удалось создать 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) |