Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Per scaricare un modulo client, il sistema operativo chiama la funzione di scarica del modulo client. Per ulteriori informazioni su come specificare la funzione Unload di un modulo client durante l'inizializzazione, consultare Inizializzazione e registrazione di un modulo client.
La funzione di scaricamento di un modulo client garantisce che il modulo client venga deregistrato dal Modulo di Registrazione di Rete prima di essere scaricato dalla memoria di sistema. Un modulo client avvia la deregistrazione dall'NMR chiamando la funzione NmrDeregisterClient, che in genere chiama dalla sua funzione Scaricamento. Un modulo client non deve uscire dalla relativa funzione Scarica fino a quando non è completata completamente la registrazione dall'NMR. Se la chiamata a NmrDeregisterClient restituisce STATUS_PENDING, il modulo client deve chiamare la funzione NmrWaitForClientDeregisterComplete per attendere il completamento della deregistrazione prima di restituire dalla sua funzione Unload.
Per esempio:
// Variable containing the handle for the registration
HANDLE ClientHandle;
// Unload function
VOID
Unload(
IN PDRIVER_OBJECT DriverObject
)
{
NTSTATUS Status;
// Deregister the client module from the NMR
Status =
NmrDeregisterClient(
ClientHandle
);
// Check if pending
if (Status == STATUS_PENDING)
{
// Wait for the deregistration to be completed
NmrWaitForClientDeregisterComplete(
ClientHandle
);
}
// An error occurred
else
{
// Handle error
...
}
}
Se un modulo client viene registrato come client di più NPI (Network Programming Interfaces), deve chiamare NmrDeregisterClient per ogni NPI che supporta. Se un modulo di rete viene registrato sia come modulo client che come modulo provider ( ovvero è un client di un server dei criteri di rete e un provider di un altro server dei criteri di rete), deve chiamare sia NmrDeregisterClient che NmrDeregisterProvider.
Un modulo di rete deve attendere il completamento di tutte le deregistrazioni prima di tornare dalla relativa funzione di Scarica.
Non è necessario un modulo client per chiamare NmrDeregisterClient dall'interno della funzione di scaricamento . Ad esempio, nella situazione in cui un modulo client è un sottocomponente di un driver complesso, la cancellazione della registrazione del modulo client potrebbe verificarsi quando il sottocomponente del modulo client viene disattivato. Tuttavia, in tale situazione il driver deve comunque assicurarsi che il modulo client sia stato completamente deregisterato dal NMR prima di tornare dalla relativa funzione Scarica.