Fonction AtaPortGetUnCachedExtension (irb.h)
La routine AtaPortGetUncachedExtension alloue une mémoire tampon commune non mise en cache partagée par le processeur 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 conserve pas les informations par IRB pour lesquelles il nécessite un stockage.
Valeur retournée
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 les informations spécifiques aux requêtes déterminées par le pilote, telles que les 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 à partir d’une routine autre que sa routine IdeHwControl , et uniquement lorsqu’il traite une action de contrôle de StartChannel. Les appels d’AtaPortGetUncachedExtension à partir d’autres routines de pilotes miniport entraînent une opération incorrecte ou même une défaillance du système. Le pilote de port libère automatiquement l’extension non mise en cache après avoir appelé IdeHwControl avec l’action de contrôle StopChannel .
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | irb.h (inclure Ata.h, Irb.h) |
Bibliothèque | Ataport.lib ; Pciidex.lib |