Partager via


IDE_HW_BUILDIO fonction de rappel (irb.h)

La routine de pilote miniport IdeHwBuildIo est appelée une fois pour chaque requête d’E/S entrante.

Remarque Le pilote de port ATA et les modèles de pilotes miniport ATA peuvent être modifiés ou indisponibles à l’avenir. Au lieu de cela, nous vous recommandons d’utiliser le du pilote Storport et modèles de pilotes Storport miniport.
 

Syntaxe

IDE_HW_BUILDIO IdeHwBuildio;

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

Paramètres

[in] ChannelExtension

Pointeur vers l’extension de canal du pilote miniport.

[in] Irb

Pointeur vers une structure de type IDE_REQUEST_BLOCK qui définit le bloc de demande d’entrée/sortie (IRB) integrated Device Electronics (IDE) à traiter.

Valeur de retour

IdeHwBuildIo retourne TRUE pour accuser réception de la structure IDE_REQUEST_BLOCK. Le pilote de port ignore une valeur de retour de FALSE.

Remarques

Les pilotes miniport fournissent une routine AtaHwBuildlo qui effectue un traitement d’E/S non synchronisé avec des interruptions activées. Une fois IdeHwBuildIo a terminé tout traitement non synchronisé d’une requête, il retourne au pilote de port et le pilote de port transmet la requête à la routine ideHwStartIo ideHwStartIo du pilote miniport, qui effectue les tâches qui nécessitent la synchronisation.

Le pilote miniport doit observer certaines restrictions pendant qu’il exécute la routine IdeHwBuildIo. Le pilote miniport appelle IdeHwBuildIo sans contenir de verrous. En particulier, le pilote miniport ne doit toucher aucune donnée partagée dans son extension de canal, ni appeler les routines exportées par le pilote de port ATA.

Si le pilote miniport doit effectuer une requête pendant qu’il exécute la routine IdeHwBuildIo, il doit affecter la valeur d’état d’achèvement appropriée au membre IrbStatus de la structure IDE_REQUEST_BLOCK pointée par le paramètre Irb. Le pilote miniport ne doit pas définir IrbStatus sur une valeur de IRB_STATUS_PENDING.

Le pilote miniport peut utiliser la routine IdeHwBuildIo pour indiquer au pilote de port comment un IRB doit être géré. Par exemple, le pilote miniport peut demander que le pilote de port mappe la mémoire tampon à DataBuffer en définissant le IrbFlags membre de l’IRB sur la valeur appropriée. Le pilote miniport ne doit pas demander que la mémoire tampon associée à une requête soit mappée, sauf si la demande est un type de transfert de données.

La routineIdeHwBuildIode Storport ressemble à la routine HwStorBuildIo dans les fonctionnalités. Pour plus d’informations sur la routine HwStorBuildIo, consultez routine HwStorBuildIo non synchronisée.

ideHwBuildIo est une routine facultative.

Exigences

Exigence Valeur
plateforme cible Bureau
d’en-tête irb.h (include Irb.h)

Voir aussi

IDE_REQUEST_BLOCK

IdeHwStartIo