Freigeben über


PROTOCOL_CM_DEREGISTER_SAP Rückruffunktion (ndis.h)

Die ProtocolCmDeregisterSap-Funktion ist erforderlich. Diese Funktion wird von NDIS aufgerufen, um anzufordern, dass ein Aufruf-Manager die Registrierung einer SAP im Namen eines verbindungsorientierten Clients auflöst.

Hinweis Sie müssen die Funktion mit dem typ PROTOCOL_CM_DEREGISTER_SAP deklarieren. Weitere Informationen finden Sie im folgenden Abschnitt Beispiele.
 

Syntax

PROTOCOL_CM_DEREGISTER_SAP ProtocolCmDeregisterSap;

NDIS_STATUS ProtocolCmDeregisterSap(
  [in] NDIS_HANDLE CallMgrSapContext
)
{...}

Parameter

[in] CallMgrSapContext

Gibt das Handle für einen vom Anruf-Manager zugeordneten Kontextbereich an, in dem der Anruf-Manager seine SAP-Statusinformationen verwaltet. Der Anruf-Manager hat dieses Handle für NDIS von seinem ProtocolCmRegisterSap-Funktion .

Rückgabewert

ProtocolCmDeregisterSap gibt den status seiner Vorgänge als einen der folgenden zurück:

Rückgabecode Beschreibung
NDIS_STATUS_SUCCESS
Gibt an, dass der Aufruf-Manager die SAP-Registrierung erfolgreich entfernt und alle Ressourcen freigegeben hat, die zur Verwaltung von SAP-Informationen pro SAP zugeordnet sind.
NDIS_STATUS_PENDING
Gibt an, dass der Aufruf-Manager die Anforderung zum asynchronen Aufheben der SAP-Registrierung abschließt. Der Anruf-Manager muss anrufen. NdisCmDeregisterSapComplete , um NDIS zu signalisieren, wenn der Vorgang abgeschlossen ist.

Hinweise

ProtocolCmDeregisterSap kommuniziert bei Bedarf mit Netzwerksteuerungsgeräten oder anderen medienspezifischen Agents, um die Registrierung von SAP im Netzwerk aufzuheben. Solche Aktionen können Folgendes umfassen, sind aber nicht beschränkt auf:

  • Kommunikation mit einer Switchhardware
  • Kommunikation mit einer Netzwerkleitstelle
  • Kommunikation mit anderen medienspezifischen Netzwerk-Agents
Wenn ein Anruf-Manager mit Netzwerksteuerungs-Agents kommunizieren muss, z. B. mit einem Netzwerkswitch, sollte er eine virtuelle Verbindung mit dem Netzwerksteuerungs-Agent verwenden, den er in seiner ProtocolBindAdapterEx-Funktion eingerichtet hat. Eigenständige Anrufmanager kommunizieren über den zugrunde liegenden Miniporttreiber, indem sie NdisCoSendNetBufferLists aufrufen. Miniport-Treiber, die integrierte Unterstützung für die Anrufverwaltung bieten, rufen niemals NdisCoSendNetBufferLists auf. Stattdessen übertragen sie die Daten direkt über das Netzwerk.

Darüber hinaus muss ProtocolCmDeregisterSap alle dynamisch zugeordneten Ressourcen in seinem PRO-SAP-Bereich freigeben( bereitgestellt unter CallMgrSapContext) sowie den Zustandsbereich selbst freigeben, bevor die Steuerung an NDIS zurückgegeben wird.

Beispiele

Um eine ProtocolCmDeregisterSap-Funktion zu definieren, müssen Sie zunächst eine Funktionsdeklaration bereitstellen, die den Typ der funktion identifiziert, die Sie definieren. Windows bietet eine Reihe von Funktionstypen für Treiber. Das Deklarieren einer Funktion mithilfe der Funktionstypen hilft der Codeanalyse für Treiber, der statischen Treiberüberprüfung (Static Driver Verifier , SDV) und anderen Überprüfungstools, Fehler zu finden, und es ist eine Voraussetzung für das Schreiben von Treibern für das Windows-Betriebssystem.

Um beispielsweise eine ProtocolCmDeregisterSap-Funktion mit dem Namen "MyCmDeregisterSap" zu definieren, verwenden Sie den typ PROTOCOL_CM_DEREGISTER_SAP , wie in diesem Codebeispiel gezeigt:

PROTOCOL_CM_DEREGISTER_SAP MyCmDeregisterSap;

Implementieren Sie dann Ihre Funktion wie folgt:

_Use_decl_annotations_
NDIS_STATUS
 MyCmDeregisterSap(
    NDIS_HANDLE  CallMgrSapContext
    )
  {...}

Der PROTOCOL_CM_DEREGISTER_SAP Funktionstyp ist in der Headerdatei Ndis.h definiert. Um Fehler beim Ausführen der Codeanalysetools genauer zu identifizieren, müssen Sie der Funktionsdefinition die anmerkung Use_decl_annotations hinzufügen. Die Use_decl_annotations-Anmerkung stellt sicher, dass die Anmerkungen verwendet werden, die auf den PROTOCOL_CM_DEREGISTER_SAP Funktionstyp in der Headerdatei angewendet werden. Weitere Informationen zu den Anforderungen für Funktionsdeklarationen finden Sie unter Deklarieren von Funktionen mithilfe von Funktionsrollentypen für NDIS-Treiber.

Informationen zu Use_decl_annotations finden Sie unter Verhalten von Funktionen mit Anmerkungen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt für NDIS 6.0- und NDIS 5.1-Treiber (siehe ProtocolCmDeregisterSap (NDIS 5.1)) in Windows Vista. Unterstützt für NDIS 5.1-Treiber (siehe ProtocolCmDeregisterSap (NDIS 5.1)) in Windows XP.
Zielplattform Windows
Kopfzeile ndis.h (include Ndis.h)
IRQL <= DISPATCH_LEVEL

Weitere Informationen

NdisCmDeregisterSapComplete

NdisCoSendNetBufferLists

ProtocolBindAdapterEx

ProtocolCmRegisterSap