DRIVER_UNLOAD funzione di callback (wdm.h)

La routine Di scaricamento esegue tutte le operazioni necessarie prima che il sistema scarica il driver.

Sintassi

DRIVER_UNLOAD DriverUnload;

void DriverUnload(
  [in] _DRIVER_OBJECT *DriverObject
)
{...}

Parametri

[in] DriverObject

Puntatore fornito dal chiamante a una struttura DRIVER_OBJECT . Si tratta dell'oggetto driver del driver.

Valore restituito

nessuno

Osservazioni

La routine di scaricamento di un driver viene eseguita in un contesto di thread di sistema in IRQL = PASSIVE_LEVEL.

La routine Di scaricamento è necessaria per i driver WDM e facoltativa per i driver non WDM. La routine di scaricamento di un driver, se fornita, deve essere denominata XxxUnload, dove Xxx è un prefisso specifico del driver. La routine DriverEntry del driver deve archiviare l'indirizzo della routine di scaricamento in DriverObject-DriverUnload>. Se non viene fornita alcuna routine, questo puntatore deve essere NULL.

Per informazioni dettagliate sull'implementazione della routine di scaricamento di un driver, vedere Scrittura di una routine di scaricamento.

Esempio

Per definire una routine di callback di scaricamento , è prima necessario specificare una dichiarazione di funzione che identifica il tipo di routine di callback che si sta definendo. Windows fornisce un set di tipi di funzione di callback per i driver. La dichiarazione di una funzione usando i tipi di funzione callback consente l'analisi del codice per i driver, il verifica driver statico (SDV) e altri strumenti di verifica trovano errori ed è un requisito per la scrittura di driver per il sistema operativo Windows.

Ad esempio, per definire una routine di callback di scaricamento denominata MyUnload, usare il tipo di DRIVER_UNLOAD, come illustrato in questo esempio di codice:

DRIVER_UNLOAD MyUnload;

Implementare quindi la routine di callback come indicato di seguito:

_Use_decl_annotations_
VOID 
  MyUnload(
    struct _DRIVER_OBJECT  *DriverObject
    )
  {
      // Function body
  }

Il tipo di funzione DRIVER_UNLOAD è definito nel file di intestazione Wdm.h. Per identificare in modo più accurato gli errori quando si eseguono gli strumenti di analisi del codice, assicurarsi di aggiungere l'annotazione _Use_decl_annotations_ alla definizione della funzione. L'annotazione _Use_decl_annotations_ garantisce che vengano usate le annotazioni applicate al tipo di funzione DRIVER_UNLOAD nel file di intestazione. Per altre informazioni sui requisiti per le dichiarazioni di funzione, vedere Dichiarazione di funzioni tramite tipi di ruolo per i driver WDM. Per informazioni su _Use_decl_annotations_, vedere Annotazione del comportamento della funzione.

Requisiti

Requisito Valore
Piattaforma di destinazione Desktop
Intestazione wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
IRQL Chiamato in PASSIVE_LEVEL.