PROTOCOL_CM_CLOSE_AF Rückruffunktion (ndis.h)
Die ProtocolCmCloseAf-Funktion ist eine erforderliche Funktion, die pro geöffnete Ressourcen für eine Adressfamilie freigibt, die von einem Anruf-Manager unterstützt wird.
Syntax
PROTOCOL_CM_CLOSE_AF ProtocolCmCloseAf;
NDIS_STATUS ProtocolCmCloseAf(
[in] NDIS_HANDLE CallMgrAfContext
)
{...}
Parameter
[in] CallMgrAfContext
Gibt das Handle für den Pro-AF-Kontextbereich des Anruf-Managers an, der ursprünglich von der ProtocolCmOpenAf-Funktion des Aufruf-Managers für NDIS bereitgestellt wurde.
Rückgabewert
ProtocolCmCloseAf gibt den status seiner Vorgänge wie folgt zurück:
Rückgabecode | Beschreibung |
---|---|
|
Gibt an, dass der Anruf-Manager alle Ressourcen erfolgreich freigegeben oder deaktiviert hat, die im Auftrag des verbindungsorientierten Clients zugewiesen werden, der diese instance der Adressfamilie geöffnet hat. |
|
Gibt an, dass die Anforderung zum Schließen des geöffneten instance der Adressfamilie asynchron abgeschlossen wird. Der Anruf-Manager muss aufrufen NdisCmCloseAddressFamilyComplete , wenn alle derartigen Vorgänge abgeschlossen wurden. |
Hinweise
ProtocolCmCloseAf gibt alle Ressourcen frei und/oder deaktiviert, die vom Aufruf-Manager in seiner ProtocolCmOpenAf-Funktion zugewiesen wurden. Der Anruf-Manager sollte auch alle anderen Aktionen rückgängig machen, die er im Namen des verbindungsorientierten Clients ausgeführt hat, als die Adressfamilie von diesem Client geöffnet wurde.
Wenn noch offene Anforderungen oder Verbindungen für eine Adressfamilie vorhanden sind, die in CallMgrAfContext gespeichert ist, kann ein Anrufmanager auf die Anforderung eines Clients zum Schließen der Adressfamilie auf eine der folgenden Arten reagieren:
- Der Anruf-Manager kann die Anforderung mit NDIS_STATUS_NOT_ACCEPTED fehlschlagen.
- Der Anrufmanager kann NDIS_STATUS_PENDING zurückgeben. Nachdem der Client alle Aufrufe geschlossen und die Registrierung aller SAPs aufgehoben hat, kann der Anruf-Manager die Adressfamilie schließen und NdisCmCloseAddressFamilyComplete oder aufrufen. NdisMCmCloseAddressFamilyComplete , um den Client zu benachrichtigen. Dies ist die bevorzugte Antwort.
Beispiele
Um eine ProtocolCmCloseAf-Funktion zu definieren, müssen Sie zunächst eine Funktionsdeklaration bereitstellen, die den Typ der zu definierenden 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 ProtocolCmCloseAf-Funktion mit dem Namen "MyCmCloseAf" zu definieren, verwenden Sie den typ PROTOCOL_CM_CLOSE_AF , wie in diesem Codebeispiel gezeigt:
PROTOCOL_CM_CLOSE_AF MyCmCloseAf;
Implementieren Sie dann Ihre Funktion wie folgt:
_Use_decl_annotations_
NDIS_STATUS
MyCmCloseAf(
NDIS_HANDLE CallMgrAfContext
)
{...}
Der PROTOCOL_CM_CLOSE_AF 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_CLOSE_AF 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 ProtocolCmCloseAf (NDIS 5.1)) in Windows Vista. Unterstützt für NDIS 5.1-Treiber (siehe ProtocolCmCloseAf (NDIS 5.1)) in Windows XP. |
Zielplattform | Windows |
Kopfzeile | ndis.h (einschließlich Ndis.h) |
IRQL | <= DISPATCH_LEVEL |