PROTOCOL_CM_DROP_PARTY Rückruffunktion (ndis.h)

Die ProtocolCmDropParty-Funktion ist erforderlich. NDIS ruft ProtocolCmDropParty auf, um den Anruf-Manager aufzufordern, eine Partei aus einem vorhandenen Mehrpunktaufruf zu entfernen.

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

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 das Handle für einen vom Anruf-Manager zugewiesenen Kontextbereich an, in dem der Anruf-Manager seinen parteispezifischen Zustand beibehält. Dieses Handle wurde NDIS in der Protokoll-Manager-Funktion ProtocolCmAddParty bereitgestellt.

[in, optional] CloseData

Zeiger auf einen Puffer mit verbindungsorientierten clientspezifischen Daten, die über die Verbindung gesendet werden sollen, bevor die Partei gelöscht wird. Dieser Parameter ist NULL , wenn das zugrunde liegende Netzwerkmedium beim Schließen einer Verbindung keine Datenübertragungen unterstützt.

[in, optional] Size

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

Rückgabewert

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

Rückgabecode Beschreibung
NDIS_STATUS_SUCCESS
Gibt an, dass der Anruf-Manager die Seite erfolgreich gelöscht, alle engen Daten gesendet und die Ressourcen freigibt, die für den Kontextbereich zugewiesen wurden.
NDIS_STATUS_PENDING
Gibt an, dass der Anruf-Manager die Anforderung zum asynchronen Löschen der Partei abschließt. Der Anruf-Manager muss NdisCmDropPartyComplete aufrufen, wenn die gesamte Verarbeitung abgeschlossen ist, um NDIS und den anfordernden Akteur darüber zu informieren, dass die Partei gelöscht wurde.
NDIS_STATUS_INVALID_DATA
Gibt an, dass CloseData für den Anruf-Manager angegeben wurde, aber der Medientyp unterstützt nicht das gleichzeitige Senden von Daten mit der Verbindungsbeendigung.

Hinweise

ProtocolCmDropParty kommuniziert mit Netzwerksteuerungsgeräten oder anderen medienspezifischen Agents, wenn dies für die Medien erforderlich ist, um eine Partei aus einem vorhandenen Mehrpunktaufruf zu löschen. Wenn der Anruf-Manager mit Netzwerksteuerungs-Agents (z. B. einem Netzwerkschalter) kommunizieren muss, sollte er eine virtuelle Verbindung mit den Netzwerksteuerungs-Agents verwenden, die er in seiner ProtocolBindAdapterEx-Funktion .

Wenn CloseData nicht NULL ist und das Senden von Daten beim Verbindungsabschluss vom Medientyp unterstützt wird, sollte der Anruf-Manager die unter CloseData angegebenen Daten vor Abschluss der Beendigung übertragen. Wenn das gleichzeitige Senden von Daten mit Verbindungsabschluss vom Medientyp nicht unterstützt wird, sollte der Anruf-Manager die Steuerung mit NDIS_STATUS_INVALID_DATA zurückgeben.

Anrufmanager müssen auch alle parteispezifischen Ressourcen freigeben, die sie bei CallMgrPartyContext zugewiesen und gespeichert haben. Darüber hinaus muss der Anruf-Manager den puffergespeicherten CallMgrPartyContext selbst freigeben. Wenn dies nicht geschieht, führt dies zu einem Speicherverlust.

Beispiele

Um eine ProtocolCmDropParty-Funktion zu definieren, müssen Sie zunächst eine Funktionsdeklaration bereitstellen, die den Typ der von Ihnen definierten 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 ProtocolCmDropParty-Funktion mit dem Namen "MyCmDropParty" zu definieren, verwenden Sie den typ PROTOCOL_CM_DROP_PARTY , 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 ist 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_CM_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 ProtocolCmDropParty (NDIS 5.1)) in Windows Vista. Unterstützt für NDIS 5.1-Treiber (siehe ProtocolCmDropParty (NDIS 5.1)) in Windows XP.
Zielplattform Windows
Kopfzeile ndis.h (einschließlich Ndis.h)
IRQL <= DISPATCH_LEVEL

Weitere Informationen

NdisCmDropPartyComplete

ProtocolCmAddParty