Freigeben über


PROTOCOL_CL_ADD_PARTY_COMPLETE Rückruffunktion (ndis.h)

Die ProtocolClAddPartyComplete--Funktion ist für verbindungsorientierte NDIS-Clients erforderlich, die Multipointverbindungen einrichten. Solche Clients müssen über ProtocolClAddPartyComplete- Funktionen verfügen, um die asynchronen Vorgänge auszuführen, die sie mit NdisClAddPartyinitiieren. Andernfalls kann ein solcher protokolltreiber registrierter ProtocolClAddPartyComplete- Funktion einfach die Steuerung zurückgeben.

Note You must declare the function by using the PROTOCOL_CL_ADD_PARTY_COMPLETE type. Weitere Informationen finden Sie im folgenden Abschnitt "Beispiele".
 

Syntax

PROTOCOL_CL_ADD_PARTY_COMPLETE ProtocolClAddPartyComplete;

void ProtocolClAddPartyComplete(
  [in] NDIS_STATUS Status,
  [in] NDIS_HANDLE ProtocolPartyContext,
  [in] NDIS_HANDLE NdisPartyHandle,
  [in] PCO_CALL_PARAMETERS CallParameters
)
{...}

Parameter

[in] Status

Gibt den endgültigen Status des vom Client initiierten Add-Party-Vorgangs an, der eine der folgenden Sein kann:

NDIS_STATUS_SUCCESS

Die angegebene Partei wurde auf dem aktiven Multipoint VC des Clients hinzugefügt.

NDIS_STATUS_RESOURCES

NDIS konnte keine ausreichenden Ressourcen zuordnen, um die neue Partei nachzuverfolgen.

NDIS_STATUS_FAILURE

Der Client hat eine ungültige NdisVcHandle- an NdisClAddPartyübergeben.

NDIS_STATUS_XXX

Die ProtocolCmAddParty-Funktion des Anrufmanagers hat einen CM-ermittelten Wert zurückgegeben, um anzugeben, warum die Partei dem VC nicht hinzugefügt werden konnte.

[in] ProtocolPartyContext

Gibt das vom Client bereitgestellte Handle an, das ursprünglich an NdisClAddPartyübergeben wurde.

[in] NdisPartyHandle

Wenn Status- NDIS_STATUS_SUCCESS ist, stellt dieses von NDIS bereitgestellte Handle die Zuordnung zwischen dem Anrufmanager und dem Client in Bezug auf diese Partei dar. Andernfalls ist der Versuch, eine Partei hinzuzufügen, fehlgeschlagen, und der Client sollte diesen Parameter als ungültiges Handle betrachten.

[in] CallParameters

Zeiger auf eine Struktur vom Typ CO_CALL_PARAMETERS, die ursprünglich vom Client für seinen Aufruf an NdisClAddParty, aber möglicherweise später vom Anrufmanager geändert wurde.

Rückgabewert

Nichts

Bemerkungen

Ein Aufruf von ProtocolClAddPartyComplete gibt den Abschluss des asynchronen Vorgangs an, der initiiert wird, wenn der Client NdisClAddPartyaufgerufen wird. Wenn die Eingabe Status- auf alles andere als NDIS_STATUS_SUCCESS festgelegt ist, können ProtocolClAddPartyComplete- die vom Client zugewiesenen Puffer bei ProtocolPartyContext- und bei CallParameters freigeben oder wiederverwenden.

Wenn der Versuch, eine Partei hinzuzufügen, erfolgreich war, sollte ProtocolClAddPartyComplete- die Eingabe NdisPartyHandle- für nachfolgende Aufrufe von NDIS-Bibliotheksfunktionen für diese Partei im ProtocolPartyContext Bereich des Clients speichern. Beispielsweise muss der Client dieses Handle in einem nachfolgenden Aufruf von NdisClDropParty schließlich übergeben, es sei denn, die Remotepartei, die sie darstellt, schließt zuerst die Verbindung.

Die Struktur bei CallParameters wurde ursprünglich vom Client zugewiesen und initialisiert, die diesen Zeiger an
NdisClAddParty. Der Anrufmanager hat jedoch möglicherweise die vom Client bereitgestellten Werte geändert, um die Ergebnisse der CM-Aushandlung mit dem Netzwerk oder mit einem signalierenden Peer bei der Verarbeitung der Add-Party-Anforderung des Clients widerzuspiegeln. Um festzustellen, ob der Anruf-Manager Änderungen vorgenommen hat, kann ProtocolClAddPartyComplete- das Flags Mitglied dieser Struktur überprüfen, ob CALL_PARAMETERS_CHANGED festgelegt ist. In diesem Fall muss ProtocolClAddPartyComplete den Status pro Partei aktualisieren, den der Client für diesen Aufruf unter ProtocolPartyContext verwaltet, es sei denn, er findet die Änderungen des CM inakzeptabel. Das spezielle Signalprotokoll bestimmt, was der Client in diesem Fall tun kann. In der Regel ruft ein Client NdisClDropParty auf, wenn die CM-geänderten Aufrufparameter inakzeptabel gefunden werden.

Je nach Signalisierungsprotokoll des Anruf-Managers können die Verkehrsparameter bei CallParameters für alle Parteien bei jeder bestimmten Multipointverbindung identisch sein. Das heißt, da der Client eines solchen Anrufmanagers Parteien zu einer Multipoint-Verbindung hinzufügt, die der Client ursprünglich mit NdisClMakeCalleingerichtet hat, kann er nur die Zieladresse jeder Partei bereitstellen und die Datenverkehrsparameter als ursprünglich für den Multipoint-VC eingerichtet lassen, wenn er NdisClAddPartyaufruft.

beispiele für

Um eine ProtocolClAddPartyComplete--Funktion zu definieren, müssen Sie zuerst eine Funktionsdeklaration bereitstellen, die den Typ der Funktion identifiziert, die Sie definieren. Windows stellt eine Reihe von Funktionstypen für Treiber bereit. Durch das Deklarieren einer Funktion mithilfe der Funktionstypen können Codeanalyse für Treiber, statische Treiberüberprüfung (SDV) und andere Überprüfungstools Fehler finden, und es ist eine Anforderung zum Schreiben von Treibern für das Windows-Betriebssystem.

Um beispielsweise eine ProtocolClAddPartyComplete--Funktion zu definieren, die den Namen "MyClAddPartyComplete" hat, verwenden Sie den PROTOCOL_CL_ADD_PARTY_COMPLETE Typ, wie in diesem Codebeispiel gezeigt:

PROTOCOL_CL_ADD_PARTY_COMPLETE MyClAddPartyComplete;

Implementieren Sie dann Ihre Funktion wie folgt:

_Use_decl_annotations_
VOID
 MyClAddPartyComplete(
    NDIS_STATUS  Status,
    NDIS_HANDLE  ProtocolPartyContext,
    NDIS_HANDLE  NdisPartyHandle,
    PCO_CALL_PARAMETERS  CallParameters
    )
  {...}

Der PROTOCOL_CL_ADD_PARTY_COMPLETE Funktionstyp wird in der Ndis.h-Headerdatei definiert. Um Fehler genauer zu identifizieren, wenn Sie die Codeanalysetools ausführen, müssen Sie der Funktionsdefinition die Use_decl_annotations Anmerkung hinzufügen. Die Use_decl_annotations Anmerkung stellt sicher, dass die Anmerkungen, die auf den Funktionstyp PROTOCOL_CL_ADD_PARTY_COMPLETE in der Headerdatei angewendet werden, verwendet 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_annotationsfinden Sie unter Annotating Function Behavior.

Anforderungen

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

Siehe auch

CO_CALL_PARAMETERS

NdisClAddParty

NdisClDropParty

NdisClMakeCall

NdisCmAddPartyComplete-

NdisMCmAddPartyComplete

ProtocolClIncomingDropParty

ProtocolCmAddParty-