PROTOCOL_CM_DROP_PARTY Rückruffunktion (ndis.h)
Die ProtocolCmDropParty--Funktion ist erforderlich. NDIS ruft ProtocolCmDropParty- auf, um anzufordern, dass der Anrufmanager eine Partei aus einem vorhandenen Multipoint-Aufruf entfernt.
Syntax
PROTOCOL_CM_DROP_PARTY ProtocolCmDropParty;
NDIS_STATUS ProtocolCmDropParty(
[in] NDIS_HANDLE CallMgrPartyContext,
[in, optional] PVOID CloseData,
[in, optional] UINT Size
)
{...}
Parameter
[in] CallMgrPartyContext
Gibt den Handle für einen kontextbezogenen Kontextbereich eines Anrufmanagers an, in dem der Anrufmanager seinen Status pro Partei verwaltet. Dieses Handle wurde NDIS in den Anrufmanagern ProtocolCmAddParty-Funktion bereitgestellt.
[in, optional] CloseData
Zeigen Sie auf einen Puffer, der verbindungsorientierte clientspezifische Daten enthält, die über die Verbindung gesendet werden sollen, bevor die Partei abgelegt wird. Dieser Parameter ist NULL-, wenn das zugrunde liegende Netzwerkmedium beim Schließen einer Verbindung keine Übertragung von Daten unterstützt.
[in, optional] Size
Gibt die Länge des Puffers bei CloseData-in Byte an, null, wenn CloseData-NULL-ist.
Rückgabewert
ProtocolCmDropParty den Status seiner Vorgänge als einen der folgenden Werte zurück:
Rückgabecode | Beschreibung |
---|---|
|
Gibt an, dass der Anrufmanager die Partei erfolgreich verworfen, alle engen Daten gesendet und die Ressourcen freigibt, die für den Kontextbereich zugeordnet wurden. |
|
Gibt an, dass der Anrufmanager die Anforderung zum asynchronen Ablegen der Partei abschließt. Der Anrufmanager muss NdisCmDropPartyComplete- aufrufen, wenn die gesamte Verarbeitung abgeschlossen ist, um NDIS und den anfordernden Akteur zu benachrichtigen, dass die Partei verworfen wurde. |
|
Gibt an, dass CloseData- für den Anruf-Manager angegeben wurde, der Medientyp unterstützt jedoch nicht das gleichzeitige Senden von Daten mit verbindungsendem Beenden. |
Bemerkungen
ProtocolCmDropParty kommuniziert bei Bedarf mit Netzwerksteuerungsgeräten oder anderen medienspezifischen Agents, um eine Partei von einem vorhandenen Multipoint-Aufruf abzulegen. Wenn der Anrufmanager für die Kommunikation mit Netzwerksteuerungs-Agents (z. B. einem Netzwerkswitch) erforderlich ist, sollte er eine virtuelle Verbindung mit den Netzwerksteuerungs-Agents verwenden, die er in seinem Netzwerk eingerichtet hat. ProtocolBindAdapterEx Funktion.
Wenn CloseData- nichtNULL- ist und das Senden von Daten bei verbindungsendem Medientyp unterstützt wird, sollte der Anrufmanager die unter CloseData- angegebenen Daten vor Abschluss der Beendigung übertragen. Wenn das Gleichzeitige Senden von Daten mit verbindungsendem Verbindungsende vom Medientyp nicht unterstützt wird, sollte der Anrufmanager die Steuerung mit NDIS_STATUS_INVALID_DATA zurückgeben.
Anrufmanager müssen auch Ressourcen pro Seite freigeben, die sie zugeordnet und unter CallMgrPartyContext gespeichert haben. Darüber hinaus muss der Anrufmanager den puffer freigeben, der CallMgrPartyContext selbst gespeichert ist. Wenn dies nicht geschieht, führt dies zu einer Speicherleckbedingung.
beispiele für
Um eine ProtocolCmDropParty--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 ProtocolCmDropParty--Funktion zu definieren, die den Namen "MyCmDropParty" hat, verwenden Sie den PROTOCOL_CM_DROP_PARTY Typ, wie in diesem Codebeispiel gezeigt:
PROTOCOL_CM_DROP_PARTY MyCmDropParty;
Implementieren Sie dann Ihre Funktion wie folgt:
_Use_decl_annotations_
NDIS_STATUS
MyCmDropParty(
NDIS_HANDLE CallMgrPartyContext,
PVOID CloseData,
UINT Size
)
{...}
Der PROTOCOL_CM_DROP_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_DROP_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 ProtocolCmDropParty (NDIS 5.1)) in Windows Vista. Unterstützt für NDIS 5.1-Treiber (siehe ProtocolCmDropParty (NDIS 5.1)) in Windows XP. |
Zielplattform- | Fenster |
Header- | ndis.h (include Ndis.h) |
IRQL- | <= DISPATCH_LEVEL |