AtaPortGetUnCachedExtension, fonction (irb.h)
La routine AtaPortGetUncachedExtension alloue une mémoire tampon commune non mise en cache partagée par l’UC et l’appareil.
Syntaxe
PVOID AtaPortGetUnCachedExtension(
[in] PVOID ChannelExtension,
[in] ULONG UncachedExtensionSize,
[in] ULONG IrbExtensionSize
);
Paramètres
[in] ChannelExtension
Pointeur vers l’extension de canal.
[in] UncachedExtensionSize
Spécifie la longueur, en octets, de la mémoire tampon commune non mise en cache. Définissez ce paramètre sur 0 si le pilote miniport ne nécessite pas d’extension non mise en cache.
[in] IrbExtensionSize
Spécifie la taille, en octets, requise par le pilote miniport pour son stockage par requête, le cas échéant.
Définissez ce paramètre sur 0 si le pilote miniport ne gère pas les informations DRB pour lesquelles il nécessite un stockage.
Valeur de retour
AtaPortGetUncachedExtension retourne un pointeur d’adresse virtuelle vers l’extension non mise en cache. S’il ne peut pas allouer la mémoire demandée ou si la mémoire a été précédemment allouée, elle retourne NULL.
Remarques
Le pilote miniport peut utiliser des extensions IRB comme stockage pour des informations spécifiques au pilote, telles que des données nécessaires pour traiter une demande particulière.
Le pilote de port n’initialise pas les extensions IRB, mais définit un pointeur vers une extension dans chaque IRB qu’il envoie au pilote miniport.
Le matériel HBA peut accéder en toute sécurité à une extension IRB.
Le pilote miniport ne doit pas appeler AtaPortGetUncachedExtension de n’importe quelle routine autre que sa routine ideHwControl, et uniquement lorsqu’il traite une action de contrôle de StartChannel. Les appels de AtaPortGetUncachedExtension à partir d’autres routines de pilotes miniports entraînent une opération incorrecte ou même une défaillance système. Le pilote de port libère automatiquement l’extension non mise en cache une fois qu’elle appelle ideHwControl avec l’action de contrôle StopChannel.
Exigences
Exigence | Valeur |
---|---|
plateforme cible | Bureau |
d’en-tête | irb.h (include Ata.h, Irb.h) |
bibliothèque | Ataport.lib ; Pciidex.lib |