Routines de prise en charge des pilotes de port ATA
Cette page catégorise les routines de prise en charge fournies par le pilote de port ATA fourni par le système.
Pour obtenir la liste des routines de miniport des pilotes ATA, consultez Pilotes ATA Miniport.
Routine d’initialisation
Le pilote de port ATA fournit la routine d’initialisation suivante.
Routine | Description |
---|---|
AtaPortInitializeEx | Initialise les pilotes de port et de miniport. |
Routines pour l’accès à l’espace de configuration PCI
Le pilote de port ATA fournit les routines suivantes pour vous aider à lire et à modifier le contenu de l’espace de configuration PCI de l’appareil.
Routine | Description |
---|---|
AtaPortGetBusData | Récupère des données à partir de l’emplacement spécifié dans l’espace de configuration PCI de l’appareil. |
AtaPortSetBusData | stocke les données dans l’espace de configuration PCI de l’appareil indiqué au décalage spécifié. |
Routines pour le traitement des demandes d’E/S
Le pilote de port ATA fournit les routines de prise en charge des demandes d’E/S suivantes.
Routine | Description |
---|---|
AtaPortGetScatterGatherList | Récupère la liste de points/regroupements associée à cette demande. |
AtaPortGetPhysicalAddress | Convertit la plage d’adresses virtuelle en plage d’adresses physique. |
AtaPortGetDeviceBase | Retourne une adresse de base logique mappée utilisée pour communiquer avec un adaptateur de bus hôte (HBA). |
AtaPortGetUncachedExtension | Alloue une mémoire tampon commune non mise en cache partagée par le processeur et l’appareil. |
AtaPortBuildRequestSenseIrb | Génère et retourne une IRB pour le code d’opération SCSIOP_REQUEST_SENSE. |
AtaPortReleaseRequestSenseIrb | Libère l’IRB du sens de requête alloué à l’aide d’AtaPortBuildRequestSenseIrb. |
AtaPortCompleteAllActiveRequests | Termine tous les IRB actifs pour l’appareil indiqué. |
AtaPortCompleteRequest | Termine la CISR indiquée. |
Routines de rappel
Le pilote miniport utilise plusieurs routines pour demander un rappel au pilote de port.
Routine | Description |
---|---|
AtaPortRequestWorkerRoutine | Demande une routine de travail. |
AtaPortRequestSynchronizedRoutine | Demande la synchronisation avec la routine de service d’interruption (ISR). |
AtaPortControllerSyncRoutine | Fournit un accès synchronisé aux structures de données partagées sur tous les canaux d’un contrôleur. |
AtaPortRequestTimer | Demande un rappel du minuteur. |
Routines qui signalent une modification de configuration
Les routines suivantes permettent au pilote miniport d’informer le pilote de port ATA des modifications apportées à la configuration des périphériques attachés au canal.
Routine | Description |
---|---|
AtaPortBusChangeDetected | Avertit le pilote de port des modifications apportées à la configuration de l’appareil sur le canal indiqué. |
AtaPortRequestPowerStateChange | Demande une transition d’état d’alimentation pour l’appareil indiqué. |
Routines pour contrôler les files d’attente de demandes
Le pilote de port gère une file d’attente de requêtes par numéro d’unité logique (LUN) et une file d’attente de requêtes pour chaque canal. Le pilote miniport peut utiliser les routines suivantes pour suspendre et reprendre les différentes files d’attente de requêtes.
Routine | Description |
---|---|
AtaPortDeviceBusy | Informe le pilote de port que l’appareil indiqué est occupé. |
AtaPortDeviceReady | Informe le pilote de port que l’appareil indiqué est prêt à accepter de nouvelles demandes. |
Routines de l’utilitaire
Les routines suivantes sont des fonctions générales de prise en charge des utilitaires pour les pilotes miniports.
Routine | Description |
---|---|
AtaPortCopyMemory | Copie les données d’un emplacement vers un autre. |
**Routine AtaPortMoveMemory | Copie les données d’un emplacement vers un autre. |
AtaPortConvertUlongToPhysicalAddress | Convertit une adresse ULONG donnée en valeur de type IDE_PHYSICAL_ADDRESS. |
AtaPortConvertPhysicalAddressToUlong | Tronque une adresse de type IDE_PHYSICAL_ADDRESS à un ULONG. |
AtaPortStallExecution | Se bloque dans le pilote miniport. |
AtaPortInitializeQueueTag | Initialise la liste d’étiquettes de file d’attente pour l’appareil spécifié. |
AtaPortAllocateQueueTag | Retourne une balise de file d’attente pour l’appareil spécifié. |
AtaPortReleaseQueueTag | Libère la balise de file d’attente spécifiée. |
Routines de débogage et de rapport d’erreurs
La routine suivante peut être utilisée pour le débogage et le rapport d’erreurs.
Routine | Description |
---|---|
AtaPortDebugPrint | Transmet une chaîne de message au débogueur de noyau pour que le débogueur soit imprimé. |
Routines pour le port d’appareil et l’accès au registre
Le pilote de port ATA fournit les routines de prise en charge des ports et des inscriptions suivantes.
Routine | Description |
---|---|
AtaPortReadPortBufferUchar | Transfère un nombre donné de valeurs d’octet non signées de l’adaptateur HBA vers une mémoire tampon. |
AtaPortReadPortBufferUlong | Transfère un nombre donné de valeurs ULONG de l’adaptateur HBA vers une mémoire tampon. |
AtaPortReadPortBufferUshort | Transfère un nombre donné de valeurs USHORT de l’adaptateur HBA vers une mémoire tampon. |
AtaPortReadPortUchar | Lit une valeur d’octet non signée à partir de l’adaptateur HBA. |
AtaPortReadPortUlong | Lit une valeur ULONG à partir de l’adaptateur HBA. |
AtaPortReadPortUshort | Lit une valeur USHORT à partir du HBA. |
AtaPortReadRegisterBufferUchar | Transfère un nombre spécifié d’octets non signés de l’adaptateur HBA vers une mémoire tampon. |
AtaPortReadRegisterBufferUlong | Transfère un nombre spécifié d’ULONG de l’adaptateur HBA vers une mémoire tampon. |
AtaPortReadRegisterBufferUshort | Transfère un nombre spécifié d’USHORT de l’adaptateur HBA vers une mémoire tampon. |
AtaPortReadRegisterUchar | Lit une valeur d’octet non signée à partir de l’adaptateur HBA. |
AtaPortReadRegisterUlong | Lit une valeur ULONG à partir de l’adaptateur HBA. |
AtaPortReadRegisterUshort | Lit une valeur USHORT à partir du HBA. |
AtaPortWritePortBufferUchar | Écrit une valeur dans une adresse de registre spécifiée. |
AtaPortWritePortBufferUlong | Écrit une valeur dans une adresse de registre spécifiée. |
AtaPortWritePortBufferUshort | Écrit une valeur dans une adresse de registre spécifiée. |
AtaPortWritePortUchar | Transfère une valeur d’octet non signée à l’adaptateur HBA. |
AtaPortWritePortUlong | Transfère une valeur ULONG à l’adaptateur HBA. |
AtaPortWritePortUshort | Transfère une valeur USHORT à l’adaptateur HBA. |
AtaPortWriteRegisterBufferUchar | Transfère le nombre spécifié d’octets non signés d’une mémoire tampon vers l’adaptateur HBA. |
AtaPortWriteRegisterBufferUlong | Transfère le nombre spécifié de valeurs ULONG d’une mémoire tampon vers l’adaptateur HBA. |
AtaPortWriteRegisterBufferUshort | Transfère le nombre spécifié de valeurs USHORT d’une mémoire tampon vers l’adaptateur HBA. |
AtaPortWriteRegisterUchar | Transfère un octet non signé à l’adresse HBA. |
AtaPortWriteRegisterUlong | Transfère une valeur ULONG à l’adresse HBA. |
AtaPortWriteRegisterUshort | Transfère une valeur USHORT à l’adresse HBA. |
Routines pour l’accès au Registre
Un pilote miniport qui implémente l’interface de canal peut appeler les routines suivantes pour accéder au Registre Windows. Les pilotes miniport qui implémentent uniquement les routines d’interface de contrôleur ne peuvent pas accéder à ces routines.
Routine | Description |
---|---|
AtaPortRegistryAllocateBuffer | Alloue une mémoire tampon pour les opérations de Registre. |
AtaPortRegistryFreeBuffer | Libère la mémoire tampon du Registre qui a été allouée à l’aide d’AtaPortRegistryAllocateBuffer. |
AtaPortRegistryControllerKeyRead | Lit les données associées au nom de valeur indiqué sous la clé de Registre HKLM\CurrentControlSet\Services\<service name>\ControllerN, où N est le numéro du contrôleur. |
AtaPortRegistryContrlollerKeyWrite | Écrit les données dans le nom de valeur indiqué sous la clé de Registre HKLM\CurrentControlSet\Services\<service name>\ControllerN, où N est le numéro du contrôleur. |
AtaPortRegistryControllerKeyWriteDeferred | Écrit les données de manière asynchrone dans le nom de la valeur indiquée sous la clé de Registre HKLM\CurrentControlSet\Services\<service name>\ControllerN, où N est le numéro du contrôleur. |
AtaPortRegistryChannelSubKeyRead | Lit les données associées au nom de valeur indiqué sous la clé de Registre HKLM\CurrentControlSet\Services\<service name>\ControllerN\ChannelM, où N est le numéro du contrôleur et M le numéro du canal. |
AtaPortRegistryChannelSubKeyWrite | Écrit les données dans le nom de valeur indiqué sous la clé de Registre HKLM\CurrentControlSet\Services\<service name>\ControllerN\ChannelM, où N est le numéro du contrôleur et M le numéro du canal. |
AtaPortRegistryChannelSubKeyWriteDeferred | Écrit les données de façon asynchrone dans le nom de valeur indiqué sous la clé de Registre HKLM\CurrentControlSet\Services\<service name>\ControllerN\ChannelM, où N est le numéro du contrôleur et M le numéro du canal. |