Condividi tramite


IDE_HW_BUILDIO funzione di callback (irb.h)

La routine del driver miniport IdeHwBuildIo viene chiamata una sola volta per ogni richiesta di I/O in ingresso.

Nota I modelli di driver di porta ATA e ATA miniport possono essere modificati o non disponibili in futuro. È invece consigliabile usare i modelli di driver Storport e Miniport Storport.
 

Sintassi

IDE_HW_BUILDIO IdeHwBuildio;

BOOLEAN IdeHwBuildio(
  [in] PVOID ChannelExtension,
  [in] PIDE_REQUEST_BLOCK Irb
)
{...}

Parametri

[in] ChannelExtension

Puntatore all'estensione del canale del driver miniport.

[in] Irb

Puntatore a una struttura di tipo IDE_REQUEST_BLOCK che definisce il blocco di input/output IRB (Integrated Device Electronics) da elaborare.

Valore restituito

IdeHwBuildIo restituisce TRUE per confermare la ricezione della struttura IDE_REQUEST_BLOCK . Il driver di porta ignora un valore restituito di FALSE.

Commenti

I driver Miniport forniscono una routine AtaHwBuildlo che esegue l'elaborazione I/O non sincronizzata con interruzioni abilitate. Dopo aver completato l'elaborazione non sincronizzata di una richiesta, IdeHwBuildIo viene completata e il driver di porta passa la richiesta alla routine IdeHwStartIo del driver miniport, che esegue le attività che richiedono la sincronizzazione.

Il driver miniport deve osservare determinate restrizioni mentre esegue la routine IdeHwBuildIo . Il driver miniport chiama IdeHwBuildIo senza contenere blocchi. In particolare, il driver miniport non deve toccare dati condivisi nella sua estensione del canale, né può chiamare una delle routine esportate dal driver di porta ATA.

Se il driver miniport deve completare una richiesta mentre esegue la routine IdeHwBuildIo , deve assegnare il valore di stato di completamento appropriato al membro IrbStatus della struttura IDE_REQUEST_BLOCK puntato dal parametro Irb . Il driver miniport non deve impostare IrbStatus su un valore di IRB_STATUS_PENDING.

Il driver miniport può usare la routine IdeHwBuildIo per indicare al driver della porta come deve essere gestito un IRB. Ad esempio, il driver miniport può richiedere che il driver della porta mappa il buffer in DataBuffer impostando il membro IrbFlags dell'IRB sul valore appropriato. Il driver miniport non deve richiedere che il buffer associato a una richiesta venga mappato a meno che la richiesta non sia un tipo di trasferimento dati.

La routine IdeHwBuildIo è simile alla routine HwStorBuildIo di Storport nella funzionalità. Per altre informazioni sulla routine HwStorBuildIo , vedere Unsynchronized HwStorBuildIo Routine.

IdeHwBuildIo è una routine facoltativa.

Requisiti

Requisito Valore
Piattaforma di destinazione Desktop
Intestazione irb.h (includere Irb.h)

Vedi anche

IDE_REQUEST_BLOCK

IdeHwStartIo