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:
- Beim Empfang eines eingehenden Anrufs in einem registrierten SAP ruft der Anruf-Manager zuerst NdisCoCreateVc auf, wodurch NDIS die ProtocolCoCreateVc-Funktion des Clients aufruft .
- Wenn die VC eingerichtet und aktiviert wurde, ruft der Anruf-Manager NdisCmDispatchIncomingCall auf, wodurch NDIS den Client aufruft. ProtocolClIncomingCall-Funktion .
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) |