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 |
---|---|
|
Il modulo client è stato collegato correttamente al modulo del provider. |
|
Il modulo provider non è stato collegato al modulo client. |
|
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 |