PROTOCOL_CM_ADD_PARTY Rückruffunktion (ndis.h)

Die ProtocolCmAddParty-Funktion ist eine erforderliche Funktion. ProtocolCmAddParty richtet die medienspezifischen Parameter ein, um einem vorhandenen Mehrpunktaufruf eine Partei hinzuzufügen, speichert Zustandsdaten für die neue Partei und bewirkt, dass die Partei dem Aufruf hinzugefügt wird.

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

Syntax

PROTOCOL_CM_ADD_PARTY ProtocolCmAddParty;

NDIS_STATUS ProtocolCmAddParty(
  [in]      NDIS_HANDLE CallMgrVcContext,
  [in, out] PCO_CALL_PARAMETERS CallParameters,
  [in]      NDIS_HANDLE NdisPartyHandle,
  [out]     PNDIS_HANDLE CallMgrPartyContext
)
{...}

Parameter

[in] CallMgrVcContext

Gibt das Handle für einen vom Anruf-Manager zugeordneten Kontextbereich an, in dem der Anruf-Manager seinen Status pro Vc verwaltet. Der Aufruf-Manager hat dieses Handle über seine ProtocolCoCreateVc-Funktion für NDIS bereitgestellt.

[in, out] CallParameters

Zeiger auf eine CO_CALL_PARAMETERS-Struktur , die die parameter enthält, die von einem verbindungsorientierten Client für die Partei angegeben werden, die einem vorhandenen Aufruf hinzugefügt wird.

[in] NdisPartyHandle

Gibt ein von NDIS bereitgestelltes Handle an, das eine Mehrpunktpartei eindeutig identifiziert, die einer vorhandenen virtuellen Verbindung hinzugefügt werden soll. Dieses Handle ist für den Anruf-Manager undurchsichtig und für die Verwendung der NDIS-Bibliothek reserviert.

[out] CallMgrPartyContext

Gibt bei der Rückgabe ein Handle für einen vom Anruf-Manager bereitgestellten Kontextbereich an, in dem der Anruf-Manager den Zustand über diese Partei für den Mehrpunktanruf verwaltet.

Rückgabewert

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

Rückgabecode Beschreibung
NDIS_STATUS_SUCCESS
Gibt an, dass der Anruf-Manager erfolgreich die erforderlichen Ressourcen zugeordnet hat, um den Zustand über die Partei aufrechtzuerhalten, und die Partei erfolgreich dem Anruf hinzugefügt hat.
NDIS_STATUS_PENDING
Gibt an, dass der Anruf-Manager die Anforderung zum asynchronen Hinzufügen einer Partei abschließt. Wenn der Anruf-Manager alle Vorgänge zum Hinzufügen der Partei abgeschlossen hat, muss er NdisCmAddPartyComplete aufrufen, um NDIS zu signalisieren, dass dieser Vorgang abgeschlossen wurde.
NDIS_STATUS_RESOURCES
Gibt an, dass der Anruf-Manager seine Ressourcen zum Hinzufügen einer Partei zur Verbindung nicht zuordnen und/oder initialisieren konnte.
NDIS_STATUS_NOT_SUPPORTED
Gibt an, dass der Anruf-Manager die Partei nicht zum Mehrpunktaufruf hinzufügen konnte, weil der Aufrufer ungültige oder nicht verfügbare Features in den Aufrufparametern unter CallParameters angefordert hat, oder dass der von diesem Anruf-Manager unterstützte Medientyp keine Mehrpunktaufrufe unterstützt.

Hinweise

ProtocolCmAddParty führt alle erforderlichen Zuordnungen dynamischer Ressourcen und Strukturen durch, die der Aufruf-Manager benötigt, um Zustandsinformationen über die Partei zu verwalten, die von NdisPartyHandle angegeben werden, um einem Multipoint-Aufruf hinzugefügt zu werden. Solche Ressourcen können Speicherpuffer, Datenstrukturen, Ereignisse und ähnliche Ressourcen umfassen, sind aber nicht darauf beschränkt. Aufrufmanager sollten auch relevante parteienspezifische Strukturen in dieser Funktion initialisieren.

In dem vom Anruf-Manager zugewiesenen Statusbereich pro Partei muss der Anrufmanager das von NdisPartyHandle angegebene Handle speichern, um in zukünftigen Anrufen darauf zu verweisen. Nachdem der Aufruf-Manager den parteispezifischen Zustandsbereich zugeordnet und initialisiert hat, sollte die Adresse des Zustandspuffers als CallMgrPartyContext-Handle festgelegt werden, bevor die Steuerung an NDIS zurückgegeben wird. Hierzu dereferenzieren Sie das Handle, und speichern Sie einen Zeiger auf den Zustandspuffer als Wert des Handles. Beispiel:

*CallMgrPartyContext = SomeBuffer;

Anrufmanager führen bei Bedarf jede erforderliche Kommunikation mit ihrer Netzwerkhardware oder anderen medienspezifischen Akteuren durch, um die durch die Aufrufparameter unter CallParameters angegebene Partei zu einem vorhandenen Mehrpunktaufruf hinzuzufügen.

Beispiele

Um eine ProtocolCmAddParty-Funktion zu definieren, müssen Sie zunächst eine Funktionsdeklaration bereitstellen, die den Typ der von Ihnen definierten Funktion identifiziert. 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 ProtocolCmAddParty-Funktion mit dem Namen "MyCmAddParty" zu definieren, verwenden Sie den typ PROTOCOL_CM_ADD_PARTY , wie in diesem Codebeispiel gezeigt:

MINIPORT_ADD_DEVICE MyCmAddParty;

Implementieren Sie dann Ihre Funktion wie folgt:

_Use_decl_annotations_
NDIS_STATUS
 MyCmAddParty(
    NDIS_HANDLE  CallMgrVcContext,
    PCO_CALL_PARAMETERS  CallParameters,
    NDIS_HANDLE  NdisPartyHandle,
    PNDIS_HANDLE  CallMgrPartyContext
    )
  {...}

Der PROTOCOL_CM_ADD_PARTY 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_ADD_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 ProtocolCmAddParty (NDIS 5.1)) in Windows Vista. Unterstützt für NDIS 5.1-Treiber (siehe ProtocolCmAddParty (NDIS 5.1)) in Windows XP.
Zielplattform Windows
Kopfzeile ndis.h (include Ndis.h)
IRQL <= DISPATCH_LEVEL

Weitere Informationen

NdisClAddParty

ProtocolClAddPartyComplete