Freigeben über


NmrClientAttachProvider-Funktion (netioddk.h)

Die NmrClientAttachProvider-Funktion fügt ein Clientmodul an ein Anbietermodul an.

Syntax

NTSTATUS NmrClientAttachProvider(
  [in]  HANDLE                 NmrBindingHandle,
  [in]  __drv_aliasesMem 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. Der NMR übergibt dieses Handle an das Clientmodul, wenn es die ClientAttachProvider-Rückruffunktion des Clientmoduls aufruft.

[in] ClientBindingContext

Ein Zeiger auf einen vom Aufrufer bereitgestellten Kontext 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 undurchsichtig. Das Anbietermodul übergibt diesen Zeiger an das Clientmodul, wenn es eine der NPI-Rückruffunktionen des Clientmoduls aufruft, die den Bindungskontext des Clientmoduls erfordern. Das Clientmodul muss sicherstellen, dass dieser Kontext gültig bleibt und sich im Arbeitsspeicher befindet, solange das Anbietermodul an das Clientmodul angefügt ist.

[in] ClientDispatch

Ein Zeiger auf eine konstante Struktur, die die Dispatchtabelle der NPI-Rückruffunktionen für das Clientmodul enthält. Das Clientmodul muss sicherstellen, dass diese Struktur gültig bleibt und sich im Arbeitsspeicher befindet, solange das Anbietermodul an das Clientmodul angefügt ist. Der Inhalt der Struktur ist NPI-spezifisch. Wenn die NPI keine Struktur der Clientverteilungstabelle definiert, muss das Clientmodul diesen Parameter auf NULL festlegen.

[out] ProviderBindingContext

Ein Zeiger auf eine Variable, die einen Zeiger auf den Kontext des Anbietermoduls für die Bindung zwischen dem Clientmodul und dem Anbietermodul empfängt. Das Anbietermodul verwendet diesen Kontext, um den Status der Bindung nachzuverfolgen. Der Inhalt des Bindungskontexts des Anbietermoduls ist für das Clientmodul undurchsichtig. Das Clientmodul übergibt diesen Zeiger an das Anbietermodul, wenn es eine der NPI-Funktionen des Anbietermoduls aufruft, die den Bindungskontext des Anbietermoduls erfordern.

[out] ProviderDispatch

Ein Zeiger auf eine Variable, die einen Zeiger auf eine Struktur empfängt, die die Dispatchtabelle von enthält.
NPI-Funktionen für das Anbietermodul. Der Inhalt der Struktur ist NPI-spezifisch.

Rückgabewert

Die NmrClientAttachProvider-Funktion gibt einen der folgenden NTSTATUS-Codes zurück:

Rückgabecode Beschreibung
STATUS_SUCCESS
Das Clientmodul wurde erfolgreich an das Anbietermodul angefügt.
STATUS_NOINTERFACE
Das Anbietermodul wurde nicht an das Clientmodul angefügt.
Andere status Codes
Ein Fehler ist aufgetreten.

Hinweise

Ein Clientmodul ruft die NmrClientAttachProvider-Funktion aus seiner ClientAttachProvider-Rückruffunktion auf, um sich selbst an ein Anbietermodul anzufügen.

Wenn ein Clientmodul die NmrClientAttachProvider-Funktion aufruft, ruft der NMR die ProviderAttachClient-Rückruffunktion des Anbietermoduls auf, um den Anlageprozess abzuschließen. Die NmrClientAttachProvider-Funktion gibt den status Code zurück, der von der ProviderAttachClient-Rückruffunktion des Anbietermoduls zurückgegeben wird.

Wenn die NmrClientAttachProvider-Funktion nicht STATUS_SUCCESS zurückgibt, sollte das Clientmodul eine erforderliche Bereinigung der in seiner Bindungskontextstruktur enthaltenen Daten durchführen. Das Clientmodul sollte dann den Arbeitsspeicher für seine Bindungskontextstruktur freigeben, wenn es den Arbeitsspeicher für die Struktur dynamisch zugeordnet hat.

Wenn die NmrClientAttachProvider-Funktion STATUS_SUCCESS zurückgibt und das Clientmodul den Speicher für seinen Bindungskontext dynamisch zugeordnet hat, sollte das Clientmodul diesen zugeordneten Arbeitsspeicher freigeben, wenn der NMR den des Clientmoduls aufruft. ClientCleanupBindingContext-Rückruffunktion , nachdem das Clientmodul und das Anbietermodul voneinander getrennt wurden.

Wenn die NmrClientAttachProvider-Funktion STATUS_SUCCESS zurückgibt, muss das Clientmodul die in den Parametern ProviderBindingContext und ProviderDispatch zurückgegebenen Zeiger speichern, damit die NPI-Funktionen des Anbietermoduls aufgerufen werden können.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar in Windows Vista und höheren Versionen der Windows-Betriebssysteme.
Zielplattform Desktop
Kopfzeile netioddk.h (include Wsk.h)
Bibliothek Netio.lib
IRQL PASSIVE_LEVEL

Weitere Informationen

ClientAttachProvider

ClientCleanupBindingContext

ProviderAttachClient