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
指定最初输入到 MiniportInitializeEx的 NDIS 提供的句柄。
[in] NdisAfHandle
指定标识作为传入调用目标的客户端的句柄。 MCM 驱动程序获取此句柄作为其 ProtocolCmOpenAf 函数的输入参数。
[in] MiniportVcContext
指定调用方提供的驻地上下文区域的句柄,其中 MCM 驱动程序维护此 VC 的状态。 如果调用 NdisMCmCreateVc 成功,NDIS 会在有关此 VC 的所有后续调用中将此句柄传回 MCM 驱动程序。
[out] NdisVcHandle
指向调用方提供的变量的指针,该变量必须在调用 NdisMCmCreateVc 之前初始化为 NULL。 成功调用后,此变量已设置为新创建的 VC 的 NDIS 提供的句柄。 调用方必须保存此句柄,以便后续调用面向连接的 NdisXxx 有关此 VC 的函数。
返回值
NdisMCmCreateVc 可以返回以下项之一:
返回代码 | 描述 |
---|---|
|
NDIS 已成功创建 VC。 |
|
NDIS 无法分配足够的内存来设置 VC。 |
|
给定 NdisAfHandle 无效。 |
|
由于某种原因,客户端无法创建 VC,NDIS 将其 ProtocolCoCreateVc 函数返回的错误状态传播到 MCM 驱动程序。 |
言论
MCM 驱动程序创建一个具有 NdisMCmCreateVc 的 VC,用于表示从定向到已向 MCM 驱动程序注册的 SAP 的远程节点的连接传入产品/服务。
在创建 VC 的过程中,NDIS 向客户端和 MCM 驱动程序提供 NdisVcHandle。 此句柄标识客户端和微型端口驱动程序的虚拟连接,随后将针对给定 VC 的请求定向到该连接。 每个驱动程序必须将此 VC 句柄视为不透明变量,并在后续调用中将其传递给某些面向连接的 NDIS 库函数,并将其传递为未修改和未解释。
通常,NdisMCmCreateVc 的调用方 将返回的 NdisVcHandle 存储在 MiniportVcContext 调用方分配的状态区域中。 每当 MCM 驱动程序创建 VC 时,NDIS 会将 NdisVcHandle 作为输入参数传递给相应客户端的 ProtocolCoCreateVc 函数。
当 MCM 驱动程序处理定向到其中一个已注册的 SAP 的传入呼叫时,必须先调用 NdisMCmCreateVc。 作为同步作,NDIS 在 NdisMCmCreateVc 返回控件之前调用客户端的 ProtocolCoCreateVc 函数。 如果调用 NdisMCmCreateVc 成功,MCM 驱动程序可以继续通知相应的客户端,并将返回的值传递到 NdisVcHandle NdisMCmDispatchIncomingCall。
驱动程序编写器确定 MCM 驱动程序是否有一个(内部)MiniportCoCreateVc 函数,驱动程序在设置传出和传入呼叫的连接上下文中调用。
只有提供集成呼叫管理支持的面向连接的微型端口驱动程序才能调用 NdisMCmCreateVc。 独立调用管理器和客户端,将其注册为协议驱动程序的 NDIS,请改为调用 NdisCoCreateVc。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows Vista 中支持 NDIS 6.0 和 NDIS 5.1 驱动程序(请参阅 NdisMCmCreateVc(NDIS 5.1)。 在 Windows XP 中支持 NDIS 5.1 驱动程序(请参阅 NdisMCmCreateVc(NDIS 5.1)。 |
目标平台 | 桌面 |
标头 | ndis.h (包括 Ndis.h) |
库 | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
DDI 符合性规则 | Irql_MCM_Function(ndis) |