Condividi tramite


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
STATUS_SUCCESS
Il modulo del provider è stato collegato correttamente al modulo client.
STATUS_NOINTERFACE
Il modulo del provider non è stato collegato al modulo client.
Altri codici di stato
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:
    1. Salvare i puntatori passati nei parametri ClientBindingContext e ClientDispatch in modo che il modulo provider possa effettuare chiamate alle funzioni del modulo client.
    2. Salvare l'handle passato nel parametro nmrBindingHandle. Il modulo provider passa questo handle come parametro a Funzione NmrProviderDetachClientComplete quando si disconnette dal modulo client.
    3. 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.
    4. Impostare il parametro ProviderDispatch in modo che punti a una struttura contenente la tabella dispatch del modulo provider di funzioni NPI.
    5. 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.
Se il modulo del provider si collega al modulo client e alloca in modo dinamico la memoria per il contesto di associazione, deve liberare tale memoria allocata quando nmR chiama il modulo del provider ProviderCleanupBindingContext funzione di callback dopo che il modulo client e il modulo provider vengono scollegati l'uno dall'altro.

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

Vedere anche

NPI_PROVIDER_CHARACTERISTICS

NPI_REGISTRATION_INSTANCE

NmrClientAttachProvider

NmrProviderDetachClientComplete

NmrRegisterProvider

ProviderCleanupBindingContext

ProviderDetachClient