Freigeben über


PROTOCOL_CL_INCOMING_DROP_PARTY Rückruffunktion (ndis.h)

Die ProtocolClIncomingDropParty-Funktion wird von verbindungsorientierten NDIS-Clients verwendet, die Mehrpunktverbindungen einrichten. Solche Clients müssen über ProtocolClIncomingDropParty-Funktionen verfügen. Andernfalls kann die registrierte ProtocolClIncomingDropParty-Funktion eines solchen Protokolltreibers einfach die Steuerung zurückgeben.

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

Syntax

PROTOCOL_CL_INCOMING_DROP_PARTY ProtocolClIncomingDropParty;

void ProtocolClIncomingDropParty(
  [in] NDIS_STATUS DropStatus,
  [in] NDIS_HANDLE ProtocolPartyContext,
  [in] PVOID CloseData,
  [in] UINT Size
)
{...}

Parameter

[in] DropStatus

Gibt den Grund an, aus dem die Partei gelöscht werden soll. In der Regel ist dies NDIS_STATUS_SUCCESS, wenn die Partei auf der Remotenotiz eine Verbindungsschließung initiiert hat, aber es kann sich um eine beliebige CM-bestimmte status sein, wenn der Anrufmanager diesen Drop-Party-Vorgang aufgrund von erkannten Netzwerkproblemen initiiert hat.

[in] ProtocolPartyContext

Gibt das Handle für den clientspezifischen Kontextbereich an, für den die Partei gelöscht werden soll. Der Client hat dieses Handle ursprünglich für NDIS bereitgestellt, als er NdisClAddParty oder NdisClMakeCall aufgerufen hat.

[in] CloseData

Zeiger auf einen Puffer mit einer protokollspezifischen Close-Nachricht, die möglicherweise vom Remoteclient bereitgestellt wird, den der Anruf-Manager über das Netzwerk empfangen hat, oder dieser Parameter kann NULL sein.

Wenn DropStatus NDIS_STATUS_SUCCESS ist, ist dieser Parameter NULL , wenn das zugrunde liegende Netzwerkmedium beim Schließen einer Verbindung keine Datenübertragungen unterstützt. Jeder bestimmte Anruf-Manager kann jedoch eine Struktur definieren, um zusätzliche Diagnoseinformationen an seine Clients bei Drop-Party-Vorgängen zu übergeben, die durch Probleme im Netzwerk verursacht werden.

[in] Size

Gibt die Länge des Puffers bei CloseData in Bytes an, null, wenn CloseDataNULL ist.

Rückgabewert

Keine

Bemerkungen

Ein Aufruf von ProtocolClIncomingDropParty gibt an, dass folgendes aufgetreten ist:

  • Der Anruf-Manager hat über das Netzwerk eine Anforderung zum Schließen einer eingerichteten Verbindung erhalten, die durch das NdisPartyHandle identifiziert wurde, das der Client in seinem jeweiligen Kontextbereich unter ProtocolPartyContext gespeichert hat.
  • Der Anruf-Manager hat erkannt, dass Netzwerkprobleme weitere Datenübertragungen bei der eingerichteten Verbindung verhindern.
In beiden Fällen sollte ProtocolClIncomingDropParty alle protokollbestimmten Vorgänge ausführen, um die Partei aus der Multipoint-VC des Clients zu löschen. ProtocolClIncomingDropParty muss NdisClDropParty oder NdisClCloseCall aufrufen, wenn dies die letzte verbleibende Partei auf der Multipoint-VC des Clients ist.

ProtocolClIncomingDropParty sollte die NdisPartyHandle , die der Client von NdisClAddParty oder NdisClMakeCall abgerufen hat, als ungültig betrachten. ProtocolClIncomingDropParty kann entweder den kontextspezifischen Bereich des Clients freigeben oder ihn für die Wiederverwendung in einem nachfolgenden Aufruf von NdisClAddParty vorbereiten.

Beispiele

Um eine ProtocolClIncomingDropParty-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 ProtocolClIncomingDropParty-Funktion mit dem Namen "MyClIncomingDropParty" zu definieren, verwenden Sie den PROTOCOL_CL_INCOMING_DROP_PARTY-Typ , wie in diesem Codebeispiel gezeigt:

PROTOCOL_CL_INCOMING_DROP_PARTY MyClIncomingDropParty;

Implementieren Sie dann Ihre Funktion wie folgt:

_Use_decl_annotations_
VOID
 MyClIncomingDropParty(
    NDIS_STATUS  DropStatus,
    NDIS_HANDLE  ProtocolPartyContext,
    PVOID  CloseData,
    UINT  Size
    )
  {...}

Der PROTOCOL_CL_INCOMING_DROP_PARTY Funktionstyp wird 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_INCOMING_DROP_PARTY 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 ProtocolClIncomingDropParty (NDIS 5.1)) in Windows Vista. Unterstützt für NDIS 5.1-Treiber (siehe ProtocolClIncomingDropParty (NDIS 5.1)) in Windows XP.
Zielplattform Windows
Kopfzeile ndis.h (einschließlich Ndis.h)
IRQL <= DISPATCH_LEVEL

Weitere Informationen

NdisClAddParty

NdisClCloseCall

NdisClDropParty

NdisClMakeCall

NdisCmDispatchIncomingDropParty

NdisFreeMemory

NdisFreeToNPagedLookasideList NdisMCmDispatchIncomingDropParty