NPI_PROVIDER_ATTACH_CLIENT_FN Rückruffunktion (netioddk.h)
Die ProviderAttachClient Callbackfunktion eines Anbietermoduls fügt das Anbietermodul an ein Clientmodul an.
Syntax
NPI_PROVIDER_ATTACH_CLIENT_FN NpiProviderAttachClientFn;
NTSTATUS NpiProviderAttachClientFn(
[in] HANDLE NmrBindingHandle,
[in] PVOID ProviderContext,
[in] PNPI_REGISTRATION_INSTANCE ClientRegistrationInstance,
[in] PVOID ClientBindingContext,
[in] const VOID *ClientDispatch,
[out] PVOID *ProviderBindingContext,
[out] const VOID **ProviderDispatch
)
{...}
Parameter
[in] NmrBindingHandle
Ein Handle, das vom NMR verwendet wird, um die Bindung zwischen dem Clientmodul und dem Anbietermodul darzustellen.
[in] ProviderContext
Ein Zeiger auf den Registrierungskontext des Anbietermoduls. Das Anbietermodul übergibt diesen Zeiger an den NMR, wenn er die NmrRegisterProvider--Funktion aufruft, um sich bei nmR zu registrieren.
[in] ClientRegistrationInstance
Ein Zeiger auf einen NPI_REGISTRATION_INSTANCE Struktur. Diese Struktur enthält die Registrierungsdaten des Clientmoduls.
[in] ClientBindingContext
Ein Zeiger auf den Clientmodulkontext für die Bindung zwischen dem Clientmodul und dem Anbietermodul. Das Clientmodul verwendet diesen Kontext, um den Status der Bindung nachzuverfolgen. Der Inhalt des Bindungskontexts des Clientmoduls ist für das Anbietermodul nicht transparent. Das Anbietermodul übergibt diesen Zeiger an das Clientmodul, wenn er einen der NPI- Rückruffunktionen des Clientmoduls aufruft, die den Bindungskontext des Clientmoduls erfordern.
[in] ClientDispatch
Ein Zeiger auf eine Konstante, die die Verteilertabelle NPI- Rückruffunktionen für das Clientmodul enthält. Der Inhalt der Struktur ist NPI-spezifisch. Wenn der NPI keine Clientteiltabellenstruktur definiert, ist dieser Zeiger NULL-.
[out] ProviderBindingContext
Ein Zeiger auf eine Variable, in der das Anbietermodul einen Zeiger für die Bindung zwischen dem Clientmodul und dem Anbietermodul speichert. Das Anbietermodul verwendet diesen Kontext, um den Status der Bindung nachzuverfolgen. Der Inhalt des Bindungskontexts des Anbietermoduls ist für das Clientmodul nicht transparent. Das Clientmodul übergibt diesen Zeiger an das Anbietermodul, wenn es eines der NPI- Funktionen des Anbietermoduls aufruft, die den Bindungskontext des Anbietermoduls erfordern. Das Anbietermodul muss sicherstellen, dass dieser Kontext gültig bleibt und sich im Arbeitsspeicher befindet, solange das Clientmodul an das Anbietermodul angefügt ist.
[out] ProviderDispatch
Ein Zeiger auf eine Variable, in der das Anbietermodul einen Zeiger auf eine Konstantenstruktur speichert, die die Verteilertabelle NPI--Funktionen für das Anbietermodul enthält. Das Anbietermodul muss sicherstellen, dass diese Struktur gültig bleibt und sich im Arbeitsspeicher befindet, solange das Clientmodul an das Anbietermodul angefügt ist. Der Inhalt der Struktur ist NPI-spezifisch.
Rückgabewert
Die ProviderAttachClient- Rückruffunktion eines Anbietermoduls gibt einen der folgenden NTSTATUS-Codes zurück:
Rückgabecode | Beschreibung |
---|---|
|
Das Anbietermodul wurde erfolgreich an das Clientmodul angefügt. |
|
Das Anbietermodul wurde nicht an das Clientmodul angefügt. |
|
Fehler. |
Bemerkungen
Die NMR ruft die ProviderAttachClient Rückruffunktion eines Anbietermoduls auf, wenn ein Clientmodul den NmrClientAttachProvider-Funktion mit einem Handle aufruft, das eine Bindung zwischen dem Clientmodul und dem Anbietermodul darstellt.
Ein Anbietermodul kann die Registrierungsdaten des Clientmoduls untersuchen. Diese Daten befinden sich in der Struktur, auf die der ClientRegistrationInstance Parameter verweist. Das Anbietermodul verwendet diese Daten, um zu bestimmen, ob es an das Clientmodul angefügt wird:
- Wenn das Anbietermodul feststellt, dass es an das Clientmodul angefügt wird, muss die ProviderAttachClient- Rückruffunktion Folgendes ausführen:
- Speichern Sie die im ClientBindingContext übergebenen Zeiger und Parameter "ClientDispatch", sodass das Anbietermodul Aufrufe an die NPI--Funktionen des Clientmoduls ausführen kann.
- Speichern Sie das handle, das im NmrBindingHandle Parameter übergeben wird. Das Anbietermodul übergibt dieses Handle als Parameter an die NmrProviderDetachClientComplete Funktion, wenn sie vom Clientmodul getrennt wird.
- Legen Sie den parameter ProviderBindingContext so fest, dass er auf die Bindungskontextstruktur des Anbietermoduls für die Bindung zwischen dem Clientmodul und dem Anbietermodul verweist.
- Legen Sie den parameter ProviderDispatch so fest, dass er auf eine Struktur verweist, die die Verteilertabelle des Anbietermoduls NPI--Funktionen enthält.
- Gibt STATUS_SUCCESS zurück.
- Wenn das Anbietermodul feststellt, dass es nicht an das Clientmodul angefügt wird, muss die ProviderAttachClient- Rückruffunktion STATUS_NOINTERFACE zurückgeben.
Die NMR ruft die ProviderAttachClient Rückruffunktion eines Anbietermoduls bei IRQL = PASSIVE_LEVEL auf.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Verfügbar in Windows Vista und höheren Versionen der Windows-Betriebssysteme. |
Zielplattform- | Fenster |
Header- | netioddk.h (include Wsk.h) |
IRQL- | PASSIVE_LEVEL |