NPI_PROVIDER_ATTACH_CLIENT_FN funzione di callback (netioddk.h)
La ProviderAttachClient di un modulo provider funzione di callback collega il modulo provider a un modulo client.
Sintassi
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
)
{...}
Parametri
[in] NmrBindingHandle
Handle usato da NMR per rappresentare l'associazione tra il modulo client e il modulo del provider.
[in] ProviderContext
Puntatore al contesto di registrazione del modulo del provider. Il modulo provider passa questo puntatore al NMR quando chiama la funzione NmrRegisterProvider per registrarsi con NMR.
[in] ClientRegistrationInstance
Puntatore a un oggetto NPI_REGISTRATION_INSTANCE struttura. Questa struttura contiene i dati di registrazione del modulo client.
[in] ClientBindingContext
Puntatore al contesto del modulo client 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 per il modulo del provider. Il modulo provider passa questo puntatore al modulo client ogni volta che chiama uno dei NPI del modulo client funzioni di callback che richiedono il contesto di associazione del modulo client.
[in] ClientDispatch
Puntatore a una struttura costante che contiene la tabella dispatch di NPI funzioni di callback per il modulo client. Il contenuto della struttura è specifico del server dei criteri di rete. Se l'istanza dei criteri di rete non definisce una struttura di tabella dispatch client, questo puntatore è NULL.
[out] ProviderBindingContext
Puntatore a una variabile in cui il modulo del provider archivierà un puntatore al relativo contesto per l'associazione tra il modulo client e il modulo del provider. Il modulo provider usa questo contesto per tenere traccia dello stato dell'associazione. Il contenuto del contesto di associazione del modulo provider è opaco per il modulo client. Il modulo client passa questo puntatore al modulo del provider ogni volta che chiama uno dei server dei criteri di rete del modulo del provider funzioni che richiedono il contesto di associazione del modulo del provider. Il modulo provider deve assicurarsi che questo contesto rimanga valido e residente in memoria, purché il modulo client sia collegato al modulo del provider.
[out] ProviderDispatch
Puntatore a una variabile in cui il modulo provider archivierà un puntatore a una struttura costante contenente la tabella dispatch di funzioni npi per il modulo del provider. Il modulo provider deve assicurarsi che questa struttura rimanga valida e residente in memoria, purché il modulo client sia collegato al modulo del provider. Il contenuto della struttura è specifico del server dei criteri di rete.
Valore restituito
La funzione di callback del provider ProviderAttachClient restituisce uno dei codici NTSTATUS seguenti:
Codice restituito | Descrizione |
---|---|
|
Il modulo del provider è stato collegato correttamente al modulo client. |
|
Il modulo del provider non è stato collegato al modulo client. |
|
Si è verificato un errore. |
Osservazioni
NmR chiama la funzione di callback del provider ProviderAttachClient ogni volta che un modulo client chiama la funzione NmrClientAttachProvider con un handle che rappresenta un'associazione tra il modulo client e il modulo del provider.
Un modulo provider può esaminare i dati di registrazione del modulo client. Questi dati si trovano nella struttura a cui punta il parametro clientRegistrationInstance. Il modulo provider usa questi dati per determinare se verrà collegato al modulo client:
- Se il modulo provider determina che verrà collegato al modulo client, la ProviderAttachClient funzione di callback deve eseguire le operazioni seguenti:
- Salvare i puntatori passati nei parametri ClientBindingContext e ClientDispatch in modo che il modulo provider possa effettuare chiamate alle funzioni del modulo client.
- Salvare l'handle passato nel parametro nmrBindingHandle. Il modulo provider passa questo handle come parametro a Funzione NmrProviderDetachClientComplete quando si disconnette dal modulo client.
- Impostare il parametro ProviderBindingContext in modo che punti alla struttura del contesto di associazione del modulo provider per l'associazione tra il modulo client e il modulo del provider.
- Impostare il parametro ProviderDispatch in modo che punti a una struttura contenente la tabella dispatch del modulo provider di funzioni NPI.
- Restituisce STATUS_SUCCESS.
- Se il modulo provider determina che non verrà collegato al modulo client, la funzione di callback del ProviderAttachClient deve restituire STATUS_NOINTERFACE.
NmR chiama la funzione di callback del provider providerAttachClient in IRQL = PASSIVE_LEVEL.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Disponibile in Windows Vista e versioni successive dei sistemi operativi Windows. |
piattaforma di destinazione | Finestre |
intestazione | netioddk.h (include Wsk.h) |
IRQL | PASSIVE_LEVEL |