仮想接続の違い
コール マネージャーは、シグナリング VC を使用して、スイッチなどのネットワーク エンティティとの間で信号 メッセージを送受信します。 呼び出しマネージャーのシグナリング VC は NDIS に表示されます。 コールマネージャーは、NDIS へ呼び出しをするVC をすべて作成し、有効化、無効化、削除しなければなりません。 ただし、MCM ドライバーのシグナリング VC は NDIS には不透明です。 MCM ドライバーはNDIS への呼び出しをするシグナル通知の VC の作成、有効化、無効化、削除を行いません。 代わりに、MCM ドライバーは内部でこのような操作を行います。 MCM ドライバーは、クライアント データの送受信に使用するVC に対する操作を実行するために NDIS を呼び出さなければなりません。 これは、NDIS がクライアントの VC の追跡をしなければならないためです。
MCM ドライバーはコールマネージャーとミニポート ドライバーの両方なので、特定のコネクション指向関数は余剰なのです。 具体的には、 MiniportCoCreateVc と MiniportCoDeleteVc は余剰なので、MCM ドライバーは提供しません。 VC 操作は次の方法で処理します。
クライアントが VC の作成または削除を要求すると、MCM ドライバーの ProtocolCoCreateVc と ProtocolCoDeleteVc が機能します。
MCM ドライバーのVC作成または削除時の、NdisMCmCreateVc と NdisMCmDeleteVc。
MCM ドライバーが VC を有効化または無効化する場合の、NdisMCmActivateVc と NdisCmDeactivateVc 。
MCM ドライバーは、ミニポート ドライバー情報の照会や設定に使用するクライアントのMiniportCoOidRequest 関数と、クライアントからの送信操作を処理する MiniportCoSendNetBufferLists 関数を提供する必要があります。