Partager via


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.

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

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

Voir aussi

IdeHwControl