PROTOCOL_CL_INCOMING_CALL Rückruffunktion (ndis.h)

Die ProtocolClIncomingCall-Funktion wird von verbindungsorientierten Clients verwendet, die eingehende Anrufe annehmen. Solche Clients müssen über ProtocolClIncomingCall-Funktionen verfügen. Andernfalls kann die registrierte ProtocolClIncomingCall-Funktion eines solchen Protokolltreibers einfach NDIS_STATUS_NOT_SUPPORTED zurückgeben.

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

Syntax

PROTOCOL_CL_INCOMING_CALL ProtocolClIncomingCall;

NDIS_STATUS ProtocolClIncomingCall(
  [in]      NDIS_HANDLE ProtocolSapContext,
  [in]      NDIS_HANDLE ProtocolVcContext,
  [in, out] PCO_CALL_PARAMETERS CallParameters
)
{...}

Parameter

[in] ProtocolSapContext

Gibt das Handle an, das der Client ursprünglich bei der Registrierung von SAP bereitgestellt hat, das der Anruf-Manager mit diesem eingehenden Anrufangebot abgeglichen hat.

[in] ProtocolVcContext

Gibt das Handle für den Pro-VC-Kontextbereich des Clients an, der zuvor von der ProtocolCoCreateVc-Funktion an NDIS zurückgegeben wurde.

[in, out] CallParameters

Zeiger auf einen Puffer, der als CO_CALL_PARAMETERS-Struktur formatiert ist und die Aufrufparameter für diesen angebotenen Aufruf enthält.

Rückgabewert

ProtocolClIncomingCall kann einen der folgenden status-Codes zurückgeben:

Rückgabecode Beschreibung
NDIS_STATUS_SUCCESS
Der Client hat das angebot für eingehende Anrufe akzeptiert.
NDIS_STATUS_PENDING
Der Client verarbeitet diese Anforderung asynchron und ruft die NdisClIncomingCallComplete-Funktion , wenn der Schließenvorgang abgeschlossen ist.
NDIS_STATUS_XXX
Der Client lehnte das angebot für eingehende Anrufe aus einem treiberbestimmten Grund ab.

Hinweise

Ein Aufruf von ProtocolClIncomingCall gibt an, dass der Anruf-Manager eine Anforderung über das Netzwerk von einem Signalpeer erhalten hat, um eine Verbindung mit diesem Client herzustellen. Das heißt, die Anforderung zum Einrichten einer solchen Verbindung wurde an eine SAP weitergeleitet, die zuvor von diesem Client beim Anrufmanager registriert wurde.

Abhängig vom vom Anruf-Manager unterstützten Signalisierungsprotokoll kann ProtocolClIncomingCall die Datenverkehrsparameter im Rahmen des Verhandlungsprozesses für die Annahme eines eingehenden Anrufangebots und/oder, wenn der Anrufmanager QoS unterstützt, die Servicespezifikation bei CallParameters ändern. Der Client sollte alle Informationen, die er später benötigt, aus dieser gepufferten Struktur kopieren, wenn er den angebotenen Aufruf akzeptiert.

Wenn der Anruf-Manager die Änderungen des Clients für akzeptabel hält, ruft NDIS als nächstes die ProtocolClIncomingCallConnected-Funktion des Clients auf, wenn Übertragungen auf der aktiven VC möglich werden, die die Verbindung mit dem Client auf dem Remoteknoten darstellt, der das Anrufangebot ursprünglich initiiert hat. Wenn der Client geänderte Aufrufparameter zurückgibt, die inakzeptabel sind, kann der Anruf-Manager die für dieses Angebot erstellte VC abreißen, wodurch Aufrufe des Clients verursacht werden. ProtocolClIncomingCloseCall und dann ProtocolCoDeleteVc-Funktionen stattdessen.

Beispiele

Um eine ProtocolClIncomingCall-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 ProtocolClIncomingCall-Funktion mit dem Namen "MyClIncomingCall" zu definieren, verwenden Sie den PROTOCOL_CL_INCOMING_CALL-Typ , wie in diesem Codebeispiel gezeigt:

PROTOCOL_CL_INCOMING_CALL MyClIncomingCall;

Implementieren Sie dann Ihre Funktion wie folgt:

_Use_decl_annotations_
NDIS_STATUS
 MyClIncomingCall(
    NDIS_HANDLE  ProtocolSapContext,
    NDIS_HANDLE  ProtocolVcContext,
    PCO_CALL_PARAMETERS  CallParameters
    )
  {...}

Der PROTOCOL_CL_INCOMING_CALL 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_CL_INCOMING_CALL 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 ProtocolClIncomingCall (NDIS 5.1)) in Windows Vista. Unterstützt für NDIS 5.1-Treiber (siehe ProtocolClIncomingCall (NDIS 5.1)) in Windows XP.
Zielplattform Windows
Kopfzeile ndis.h (einschließlich Ndis.h)
IRQL <= DISPATCH_LEVEL

Weitere Informationen

CO_CALL_PARAMETERS

NdisClIncomingCallComplete

NdisClRegisterSap

NdisCmDispatchIncomingCall

NdisMCmDispatchIncomingCall

ProtocolClCallConnected

ProtocolClIncomingCloseCall

ProtocolCoCreateVc

ProtocolCoDeleteVc