Freigeben über


NdisClRegisterSap-Funktion (ndis.h)

NdisClRegisterSap registriert eine SAP, auf der der Client eingehende Anrufe von einem Remoteknoten empfangen kann.

Syntax

NDIS_STATUS NdisClRegisterSap(
  [in]  NDIS_HANDLE  NdisAfHandle,
  [in]  NDIS_HANDLE  ProtocolSapContext,
  [in]  PCO_SAP      Sap,
  [out] PNDIS_HANDLE NdisSapHandle
);

Parameter

[in] NdisAfHandle

Gibt den von NdisClOpenAddressFamilyEx zurückgegebenen Handle an, der implizit den Anruf-Manager identifiziert, bei dem sap registriert werden soll.

[in] ProtocolSapContext

Gibt das Handle für einen vom Aufrufer bereitgestellten residenten Kontextbereich an, in dem der Client den Zustand für diese SAP verwaltet, nachdem er geöffnet wurde. NDIS übergibt dieses Handle in allen nachfolgenden Aufrufen dieses SAP an den Client zurück, wenn der Aufruf von NdisClRegisterSap erfolgreich ist.

[in] Sap

Zeiger auf eine vom Client bereitgestellte Spezifikation für das zu öffnende SAP, formatiert als Struktur vom Typ CO_SAP.

[out] NdisSapHandle

Zeiger auf eine Variable, in der ein Handle auf die neu registrierte SAP zurückgegeben wird, wenn dieser Aufruf erfolgreich ist.

Rückgabewert

Wenn NdisClRegisterSap etwas anderes als NDIS_STATUS_PENDING zurückgibt, sollte der Client einen internen Aufruf an seine ProtocolClRegisterSapComplete-Funktion . Andernfalls ruft NDIS die ProtocolClRegisterSapComplete-Funktion des Clients auf, wenn dieser Vorgang abgeschlossen ist.

Hinweise

Mit einem Aufruf von NdisClRegisterSap fordert ein Client Benachrichtigungen über eingehende Anrufe für eine bestimmte SAP an. NDIS leitet die angegebenen SAP-Informationen zur Überprüfung an die ProtocolCmRegisterSap-Funktion des Aufrufmanagers weiter. Wenn das angegebene SAP bereits verwendet wird oder der Anrufmanager die vom Client bereitgestellte Spezifikation bei Sap nicht erkennt, schlägt der Anruf-Manager diese Anforderung fehl.

DAS SAP-Format ist mittelabhängig und spezifisch für die Adressfamilie, die vom Anruf-Manager unterstützt wird, der anschließend registrierte SAPs verwendet, um eingehende Anrufe an den entsprechenden Client weiterzuleiten. Ein Anrufmanager kann je nach zugrunde liegendem Medium SAPs für etablierte PVCs registrieren, ohne andere Netzwerkkomponenten zu kontaktieren.

Wenn der Aufruf von NdisClRegisterSap erfolgreich ist, muss der Client das bei NdisSapHandle zurückgegebene Handle speichern, da es ein erforderlicher Parameter für NdisClDeregisterSap ist. Aufrufer von NdisClRegisterSap übergeben normalerweise einen Zeiger auf eine Variable im clientseitig zugewiesenen Zustandsbereich unter ProtocolSapContext , sodass NDIS ihn auf NdisSapHandle festlegen kann, wenn dieser Aufruf erfolgreich ist. NDIS übergibt den angegebenen ProtocolSapContext an die registrierten ProtocolCl/CoXxx-Funktionen des Clients in allen nachfolgenden Aufrufen dieses SAP, bis der Client NdisClDeregisterSap aufruft.

Normalerweise ruft ein Client NdisClRegisterSap über seine ProtocolAfRegisterNotify-Funktion auf, nachdem er NdisClOpenAddressFamilyEx erfolgreich aufgerufen hat. Durch die Registrierung eines oder mehrerer SAPs kann der Client seine eingehenden Anrufe empfangen, sobald der Anrufmanager sie über das Netzwerk empfängt.

Im Gegensatz zu vom Client initiierten ausgehenden Anrufen ruft ein Client NdisCoCreateVc nicht auf, bevor er NdisClRegisterSap aufruft. Bei eingehenden Anrufen initiiert der Anruf-Manager die Erstellung der VC wie folgt:

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt für NDIS 6.0- und NDIS 5.1-Treiber (siehe NdisClRegisterSap (NDIS 5.1)) in Windows Vista. Unterstützt für NDIS 5.1-Treiber (siehe NdisClRegisterSap (NDIS 5.1)) in Windows XP.
Zielplattform Desktop
Kopfzeile ndis.h (einschließlich Ndis.h)
Bibliothek Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI-Complianceregeln Irql_Protocol_Driver_Function(ndis)

Weitere Informationen

CO_SAP

NdisClDeregisterSap

NdisClMakeCall

NdisCmDispatchIncomingCall

NdisCoCreateVc

ProtocolClIncomingCall

ProtocolClRegisterSapComplete

ProtocolCmRegisterSap

ProtocolCoAfRegisterNotify

ProtocolCoCreateVc