PROTOCOL_CL_CLOSE_CALL_COMPLETE Rückruffunktion (ndis.h)

Die ProtocolClCloseCallComplete-Funktion wird von verbindungsorientierten NDIS-Clients verwendet. Alle verbindungsorientierten NDIS-Clients müssen über ProtocolClCloseCallComplete-Funktionen verfügen, um die asynchronen Vorgänge abzuschließen, mit denen sie initiieren.

NdisClCloseCall.

Hinweis Sie müssen die Funktion mit dem PROTOCOL_CL_CLOSE_CALL_COMPLETE-Typ deklarieren. Weitere Informationen finden Sie im folgenden Abschnitt Beispiele.
 

Syntax

PROTOCOL_CL_CLOSE_CALL_COMPLETE ProtocolClCloseCallComplete;

void ProtocolClCloseCallComplete(
  [in]           NDIS_STATUS Status,
  [in]           NDIS_HANDLE ProtocolVcContext,
  [in, optional] NDIS_HANDLE ProtocolPartyContext
)
{...}

Parameter

[in] Status

Gibt den endgültigen status der Anforderung des Clients an, diesen Aufruf zu schließen. Dies kann eine der folgenden Sein:

NDIS_STATUS_SUCCESS

Der Anruf-Manager hat den Aufruf, der auf der angegebenen VC vorhanden war, erfolgreich geschlossen und die VC deaktiviert.

NDIS_STATUS_XXX

Der Anruf-Manager konnte die Anforderung zum Schließen des Aufrufs aus einem CM-bestimmten Grund nicht ausführen, und NDIS hat die von seiner ProtocolCmCloseCall-Funktion zurückgegebene status an den Client weitergegeben.

[in] ProtocolVcContext

Gibt das Handle für den Pro-VC-Kontextbereich des Clients an. Hierbei handelt es sich um das Handle, das der Client ursprünglich mit NdisCoCreateVc an NDIS übergeben oder von seiner ProtocolCoCreateVc-Funktion an NDIS zurückgegeben wurde.

[in, optional] ProtocolPartyContext

Gibt das Handle für den Pro-Parteien-Kontextbereich des Clients für die letzte verbleibende Partei auf der vom Client erstellten VC an, die eine Mehrpunktverbindung darstellt. Andernfalls ist dieser Parameter NULL.

Rückgabewert

Keine

Bemerkungen

Wenn die angegebene VC vom Client erstellt wurde und der Status NDIS_STATUS_SUCCESS ist, kann der Client nun eine der folgenden Aktionen ausführen:

  • Reißen Sie die VC mit NdisCoDeleteVc herunter, und lassen Sie die zugewiesenen Kontextbereiche frei, oder bereiten Sie sich auf die Wiederverwendung vor.
  • Reitialisieren Sie den pro VC-Kontextbereich, und verwenden Sie seine VC wieder, um eine weitere Verbindung mit NdisClMakeCall herzustellen.
Wenn die VC vom Anruf-Manager erstellt wurde, sollte der Client NdisVcHandle als ungültig betrachten, wenn ProtocolClCloseCallComplete aufgerufen wird. Der Client darf keine weiteren NdisCl/CoXxx-Aufrufe mit diesem NdisVcHandle tätigen. Nachdem ProtocolClCloseCallComplete die Steuerung zurückgegeben hat, kann der Aufruf-Manager seine VC löschen, wodurch ein Aufruf der ProtocolCoDeleteVc-Funktion des Clients verursacht wird. Der Anruf-Manager kann sogar einen weiteren eingehenden Anruf auf der vc senden, die er erstellt hat, wodurch ein Aufruf des Clients verursacht wird. ProtocolClIncomingCall-Funktion .

Beispiele

Um eine ProtocolClCloseCallComplete-Funktion zu definieren, müssen Sie zunächst eine Funktionsdeklaration bereitstellen, die den Typ der zu definierenden Funktion identifiziert. Windows stellt eine Reihe von Funktionstypen für Treiber bereit. 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 Anforderung zum Schreiben von Treibern für das Windows-Betriebssystem.

Um beispielsweise eine ProtocolClCloseCallComplete-Funktion mit dem Namen "MyClCloseCallComplete" zu definieren, verwenden Sie den typ PROTOCOL_CL_CLOSE_CALL_COMPLETE , wie in diesem Codebeispiel gezeigt:

PROTOCOL_CL_CLOSE_CALL_COMPLETE MyClCloseCallComplete;

Implementieren Sie dann Ihre Funktion wie folgt:

_Use_decl_annotations_
VOID
 MyClCloseCallComplete(
    NDIS_STATUS  Status,
    NDIS_HANDLE  ProtocolVcContext,
    NDIS_HANDLE  ProtocolPartyContext
    )
  {...}

Der PROTOCOL_CL_CLOSE_CALL_COMPLETE Funktionstyp ist in der Headerdatei Ndis.h definiert. Um Fehler beim Ausführen der Codeanalysetools genauer zu identifizieren, fügen Sie der Funktionsdefinition die Use_decl_annotations Anmerkung hinzu. Die Use_decl_annotations Anmerkung stellt sicher, dass die Anmerkungen verwendet werden, die auf den PROTOCOL_CL_CLOSE_CALL_COMPLETE 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 ProtocolClCloseCallComplete (NDIS 5.1)) in Windows Vista. Unterstützt für NDIS 5.1-Treiber (siehe ProtocolClCloseCallComplete (NDIS 5.1)) in Windows XP.
Zielplattform Windows
Kopfzeile ndis.h (einschließlich Ndis.h)
IRQL <= DISPATCH_LEVEL

Weitere Informationen

NdisClCloseCall

NdisClMakeCall

NdisCmCloseCallComplete

NdisCoDeleteVc

NdisMCmCloseCallComplete

ProtocolClIncomingCall

ProtocolCmCloseCall

ProtocolCoDeleteVc