PROTOCOL_CM_INCOMING_CALL_COMPLETE Rückruffunktion (ndis.h)
Die ProtocolCmIncomingCallComplete-Funktion ist erforderlich. Wenn NDIS diese Funktion aufruft, gibt ProtocolCmIncomingCallComplete dem Anruf-Manager an, dass der verbindungsorientierte Client die Verarbeitung eines eingehenden Anrufangebots abgeschlossen hat, das der Anrufmanager zuvor über NdisCmDispatchIncomingCall.
Syntax
PROTOCOL_CM_INCOMING_CALL_COMPLETE ProtocolCmIncomingCallComplete;
void ProtocolCmIncomingCallComplete(
[in] NDIS_STATUS Status,
[in] NDIS_HANDLE CallMgrVcContext,
[in] PCO_CALL_PARAMETERS CallParameters
)
{...}
Parameter
[in] Status
Gibt die endgültige status des Vorgangs an, um einen eingehenden Aufruf an einen verbindungsorientierten Client zu senden.
[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 bereitgestellt.
[in] CallParameters
Zeiger auf die Aufrufparameter, wie vom Anruf-Manager im Aufruf von NdisCmDispatchIncomingCall angegeben. Das Signalisierungsprotokoll bestimmt, welche Aufrufparameter der Anruf-Manager ändern kann, falls vorhanden.
Rückgabewert
Keine
Bemerkungen
Wenn der verbindungsorientierte Client die Verarbeitung eines eingehenden Verbindungsangebots abgeschlossen hat, das der Anruf-Manager an ihn weitergeleitet hat, wird diese Routine aufgerufen, wenn NdisCmDispatchIncomingCall NDIS_STATUS_PENDING zurückgegeben hat. Die endgültige status des eingehenden Anrufs finden Sie unter Status. Mögliche Werte für Status umfassen, sind jedoch nicht beschränkt auf:
Wenn der Client den eingehenden Anruf akzeptiert, sollte der Anrufmanager Signalnachrichten senden, um der aufrufenden Entität mitzuteilen, dass der Anruf akzeptiert wurde. Wenn der Client den Anruf nicht annimmt, sollte der Anruf-Manager Signalnachrichten senden, um anzugeben, dass der Anruf abgelehnt wurde.
Beispiele
Um eine ProtocolCmIncomingCallComplete-Funktion zu definieren, müssen Sie zunächst eine Funktionsdeklaration bereitstellen, die den Typ der zu definierenden 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 ProtocolCmIncomingCallComplete-Funktion mit dem Namen "MyCmIncomingCallComplete" zu definieren, verwenden Sie den typ PROTOCOL_CM_INCOMING_CALL_COMPLETE , wie in diesem Codebeispiel gezeigt:
PROTOCOL_CM_INCOMING_CALL_COMPLETE MyCmIncomingCallComplete;
Implementieren Sie dann Ihre Funktion wie folgt:
_Use_decl_annotations_
VOID
MyCmIncomingCallComplete(
NDIS_STATUS Status,
NDIS_HANDLE CallMgrVcContext,
PCO_CALL_PARAMETERS CallParameters
)
{...}
Der PROTOCOL_CM_INCOMING_CALL_COMPLETE 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_INCOMING_CALL_COMPLETE 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 ProtocolCmIncomingCallComplete (NDIS 5.1)) in Windows Vista. Unterstützt für NDIS 5.1-Treiber (siehe ProtocolCmIncomingCallComplete (NDIS 5.1)) in Windows XP. |
Zielplattform | Windows |
Kopfzeile | ndis.h (include Ndis.h) |
IRQL | <= DISPATCH_LEVEL |