Condividi tramite


HW_INITIALIZE funzione di callback (storport.h)

La routine HwStorInitialize inizializza il driver miniport dopo un riavvio del sistema o un errore di alimentazione. Viene chiamato da StorPort dopo che HwStorFindAdapter restituisce correttamente. HwStorInitialize inizializza l'HBA e trova tutti i dispositivi che sono di interesse per il driver miniport.

Sintassi

HW_INITIALIZE HwInitialize;

BOOLEAN HwInitialize(
  PVOID DeviceExtension
)
{...}

Parametri

DeviceExtension

Puntatore all'area di archiviazione del driver miniport.

Valore restituito

Se l'inizializzazione ha esito positivo, HwStorInitialize restituisce TRUE.

Commenti

Il nome HwStorInitialize è solo un segnaposto. Il prototipo effettivo di questa routine è definito in Storport.h come segue:

typedef
BOOLEAN
HW_INITIALIZE (
  _In_ PVOID  DeviceExtension
  );

Poiché HwStorInitialize viene chiamato in DIRQL, la maggior parte del processo di inizializzazione possibile deve essere eseguita da HwStorPassiveInitializeRoutine. In tal caso, è necessario abilitare la routine di inizializzazione passiva tramite StorPortEnablePassiveInitialization.

Se gli interruzioni vengono generati dall'inizializzazione hardware, verrà chiamata la routine HwStorInterrupt . In questo caso, la routine HwStorInitialize deve configurare tutti i dati previsti da HwStorInterrupt (incluso un HwStorDpcRoutine, se usato) prima di iniziare a inizializzare l'hardware.

Le responsabilità seguenti sono condivise tra HwStorInitialize e HwStorPassiveInitializeRoutine:

  • Inizializzare l'hardware per i registri e i buffer HBA.

  • Inizializzare e allocare tutti i campi DeviceExtension .

  • Configurare e inizializzare tutti gli eventi e i DPC usati dal driver miniport.

Esempio

Per definire una funzione di callback HwStorInitialize , è prima necessario specificare una dichiarazione di funzione che identifica il tipo di funzione 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 HwStorInitialize denominata MyHwInitialize, usare il tipo di HW_INITIALIZE come illustrato in questo esempio di codice:

HW_INITIALIZE MyHwInitialize;

Implementare quindi la routine di callback come indicato di seguito:

_Use_decl_annotations_
BOOLEAN 
  MyHwInitialize( _In_ PVOID DeviceExtension )
  {
      ...
  }

Il tipo di funzione HW_INITIALIZE è definito nel file di intestazione Storport.h. Per identificare in modo più accurato gli errori durante l'esecuzione degli 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 HW_INITIALIZE 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 Storport. Per informazioni su Use_decl_annotations, vedere Annotazione del comportamento della funzione.

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Intestazione Storport.h (include Storport.h)
IRQL DIRQL (vedere sezione Osservazioni).

Vedi anche

HwStorDpcRoutine

HwStorFindAdapter

HwStorInterrupt

HwStorPassiveInitializeRoutine

StorPortEnablePassiveInitialization