Share via


Funzione NmrClientAttachProvider (netioddk.h)

La funzione NmrClientAttachProvider collega un modulo client a un modulo provider.

Sintassi

NTSTATUS NmrClientAttachProvider(
  [in]  HANDLE                 NmrBindingHandle,
  [in]  __drv_aliasesMem PVOID ClientBindingContext,
  [in]  const VOID             *ClientDispatch,
  [out] PVOID                  *ProviderBindingContext,
  [out] const VOID             **ProviderDispatch
);

Parametri

[in] NmrBindingHandle

Handle usato da NMR per rappresentare l'associazione tra il modulo client e il modulo provider. NmR passa questo handle al modulo client quando chiama la funzione di callback client del modulo clientAttachProvider .

[in] ClientBindingContext

Puntatore a un contesto fornito dal chiamante per l'associazione tra il modulo client e il modulo del provider. Il modulo client usa questo contesto per tenere traccia dello stato dell'associazione. Il contenuto del contesto di associazione del modulo client è opaco al modulo provider. Il modulo provider passa questo puntatore al modulo client ogni volta che chiama una delle funzioni di callback del modulo client che richiedono il contesto di associazione del modulo client. Il modulo client deve assicurarsi che questo contesto rimanga valido e residente in memoria, purché il modulo provider sia collegato al modulo client.

[in] ClientDispatch

Puntatore a una struttura costante che contiene la tabella di invio delle funzioni di callback npI per il modulo client. Il modulo client deve assicurarsi che questa struttura rimanga valida e residente in memoria, purché il modulo provider sia collegato al modulo client. Il contenuto della struttura è specifico dell'npI. Se l'npI non definisce una struttura di tabella di invio client, il modulo client deve impostare questo parametro su NULL.

[out] ProviderBindingContext

Puntatore a una variabile che riceve un puntatore al contesto del modulo del provider per l'associazione tra il modulo client e il modulo provider. Il modulo provider usa questo contesto per tenere traccia dello stato dell'associazione. Il contenuto del contesto di associazione del modulo del provider è opaco al modulo client. Il modulo client passa questo puntatore al modulo provider ogni volta che chiama una delle funzioni npI del modulo del provider che richiedono il contesto di associazione del modulo del provider.

[out] ProviderDispatch

Puntatore a una variabile che riceve un puntatore a una struttura contenente la tabella di invio di
Funzioni NPI per il modulo provider. Il contenuto della struttura è specifico dell'npI.

Valore restituito

La funzione NmrClientAttachProvider restituisce uno dei codici NTSTATUS seguenti:

Codice restituito Descrizione
STATUS_SUCCESS
Il modulo client è stato collegato correttamente al modulo del provider.
STATUS_NOINTERFACE
Il modulo provider non è stato collegato al modulo client.
Altri codici di stato
Si è verificato un errore.

Commenti

Un modulo client chiama la funzione NmrClientAttachProvider dalla funzione di callback ClientAttachProvider per collegarsi a un modulo provider.

Quando un modulo client chiama la funzione NmrClientAttachProvider , nmR chiama la funzione di callback providerAttachClient del modulo provider per completare il processo di allegato. La funzione NmrClientAttachProvider restituisce il codice di stato restituito dalla funzione di callback ProviderAttachClient del modulo provider.

Se la funzione NmrClientAttachProvider non restituisce STATUS_SUCCESS, il modulo client deve eseguire qualsiasi pulizia necessaria dei dati contenuti nella struttura del contesto di associazione. Il modulo client deve quindi liberare la memoria per la struttura del contesto di associazione se alloca dinamicamente la memoria per la struttura.

Se la funzione NmrClientAttachProvider restituisce STATUS_SUCCESS e il modulo client alloca dinamicamente la memoria per il contesto di associazione, il modulo client deve liberare tale memoria allocata quando il nmR chiama il modulo clientFunzione di callback clientCleanupBindingContext dopo che il modulo client e il modulo provider vengono scollegati tra loro.

Se la funzione NmrClientAttachProvider restituisce STATUS_SUCCESS, il modulo client deve salvare i puntatori restituiti nei parametri ProviderBindingContext e ProviderDispatch in modo che possa chiamare le funzioni NPI del modulo del provider.

Requisiti

Requisito Valore
Client minimo supportato Disponibile in Windows Vista e versioni successive dei sistemi operativi Windows.
Piattaforma di destinazione Desktop
Intestazione netioddk.h (include Wsk.h)
Libreria Netio.lib
IRQL PASSIVE_LEVEL

Vedi anche

ClientAttachProvider

ClientCleanupBindingContext

ProviderAttachClient