Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die ProtocolCmAddParty--Funktion ist eine erforderliche Funktion. ProtocolCmAddParty- richtet die medienspezifischen Parameter ein, um einem vorhandenen Multipoint-Aufruf einen Party hinzuzufügen, Zustandsdaten für die neue Partei zu speichern und bewirkt, dass die Partei dem Aufruf hinzugefügt wird.
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 kontextbezogenen Kontextbereich eines Anrufmanagers an, in dem der Anrufmanager den Status pro VC verwaltet. Der Aufruf-Manager hat dieses Handle von der ProtocolCoCreateVc-Funktion an NDIS bereitgestellt.
[in, out] CallParameters
Zeigen Sie auf eine CO_CALL_PARAMETERS-Struktur, die die Parameter enthält, die durch einen verbindungsorientierten Client angegeben werden, für die Partei, die einem vorhandenen Aufruf hinzugefügt wird.
[in] NdisPartyHandle
Gibt ein Handle an, das von NDIS bereitgestellt wird und einen Multipoint-Anbieter eindeutig identifiziert, der 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 im Gegenzug ein Handle für einen vom Anrufmanager bereitgestellten Kontextbereich an, in dem der Anrufmanager den Status dieser Partei für den Multipoint-Anruf verwaltet.
Rückgabewert
ProtocolCmAddParty- gibt den Status seiner Vorgänge als eine der folgenden Zurück:
Rückgabecode | Beschreibung |
---|---|
|
Gibt an, dass der Anrufmanager die erforderlichen Ressourcen erfolgreich zugeordnet hat, um den Status der Partei aufrechtzuerhalten und die Partei dem Anruf erfolgreich hinzuzufügen. |
|
Gibt an, dass der Anrufmanager die Anforderung zum asynchronen Hinzufügen einer Partei abgeschlossen. Wenn der Anrufmanager alle Vorgänge zum Hinzufügen des Anbieters abgeschlossen hat, muss er NdisAddPartyComplete- aufrufen, um NDIS zu signalisieren, dass dieser Vorgang abgeschlossen wurde. |
|
Gibt an, dass der Anrufmanager seine Ressourcen für das Hinzufügen einer Partei zur Verbindung nicht zuordnen und/oder initialisieren konnte. |
|
Gibt an, dass der Anrufmanager die Partei nicht zum Multipoint-Aufruf hinzufügen konnte, da der Aufrufer ungültige oder nicht verfügbare Features in den Anrufparametern unter CallParameters angefordert hat oder dass der von diesem Anruf-Manager unterstützte Medientyp keine Multipoint-Anrufe unterstützt. |
Bemerkungen
ProtocolCmAddParty alle erforderlichen Zuordnungen dynamischer Ressourcen und Strukturen durchführt, die der Anrufmanager zum Verwalten von Statusinformationen über die Partei benötigt, die durch NdisPartyHandleangegeben wird, um einem Multipoint-Aufruf hinzugefügt zu werden. Solche Ressourcen können enthalten, jedoch nicht beschränkt auf Speicherpuffer, Datenstrukturen, Ereignisse und andere ähnliche Ressourcen. Anrufmanager sollten auch relevante Strukturen pro Partei in dieser Funktion initialisieren.
Im Statusbereich pro Partei, den der Anrufmanager zuweist, muss der Anrufmanager das von NdisPartyHandle angegebene Handle in zukünftigen Anrufen speichern. Nachdem der Anrufmanager den Statusbereich pro Partei zugewiesen und initialisiert hat, sollte die Adresse des Statuspuffers als CallMgrPartyContext Handle festgelegt werden, bevor die Steuerung an NDIS zurückgegeben wird. Leiten Sie dazu das Handle ab, und speichern Sie einen Zeiger auf den Zustandspuffer als Wert des Handles. Zum Beispiel:
*CallMgrPartyContext = SomeBuffer;
Anrufmanager führen bei Bedarf alle erforderlichen Kommunikationen mit ihrer Netzwerkhardware oder anderen medienspezifischen Akteuren durch, um die durch die Anrufparameter bei CallParameters angegebenen Partei zu einem vorhandenen Multipoint-Aufruf hinzuzufügen.
beispiele für
Um eine ProtocolCmAddParty--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 ProtocolCmAddParty--Funktion zu definieren, die den Namen "MyCmAddParty" hat, verwenden Sie den PROTOCOL_CM_ADD_PARTY Typ, 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 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_CM_ADD_PARTY 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 ProtocolCmAddParty (NDIS 5.1)) in Windows Vista. Unterstützt für NDIS 5.1-Treiber (siehe ProtocolCmAddParty (NDIS 5.1)) in Windows XP. |
Zielplattform- | Fenster |
Header- | ndis.h (include Ndis.h) |
IRQL- | <= DISPATCH_LEVEL |