Unterschiede bei der Initialisierung
Ein Anruf-Manager ist ein NDIS-Protokoll. Daher folgt sie der Initialisierungssequenz für ein verbindungsorientiertes Protokoll, jedoch mit einem zusätzlichen Schritt. In seinem ProtocolBindAdapterEx-Handler muss ein Anruf-Manager unmittelbar nach Abschluss der Initialisierungsschritte für ein verbindungsorientiertes Protokoll eine Adressfamilie registrieren, indem er NdisCmRegisterAddressFamilyEx aufruft. Der Aufruf von NdisCmRegisterAddressFamilyEx, in dem ein Anruf-Manager seine Anruf-Manager-Funktionen registriert, identifiziert das Protokoll als Anruf-Manager. Der Anrufmanager muss eine Adressfamilie für jede NIC registrieren, an die er sich bindet.
Ein MCM-Treiber ist ein Miniporttreiber. Daher folgt sie der Initialisierungssequenz für einen verbindungsorientierten Miniporttreiber mit dem folgenden Schritt: Ein MCM-Treiber muss eine Adressfamilie registrieren, indem er NdisMCmRegisterAddressFamilyEx in seiner MiniportInitializeEx-Funktion aufruft, unmittelbar nach Abschluss der Initialisierungssequenz des Miniporttreibers . Der Aufruf von NdisMCmRegisterAddressFamilyEx, in dem ein MCM-Treiber seine Anruf-Manager-Funktionen registriert, unterscheidet den MCM-Treiber von einem regulären verbindungsorientierten Miniporttreiber. Obwohl ein MCM-Treiber seine Miniporttreiberhandler während der Initialisierung nur einmal registriert, indem er NdisMRegisterMiniportDriver aufruft, muss er NdisMCmRegisterAddressFamilyEx einmal für jede NIC aufrufen, die er steuert.