Routine di supporto del driver di porta ATA
Questa pagina classifica le routine di supporto fornite dal driver di porta ATA fornito dal sistema.
Per un elenco delle routine miniport del driver ATA, vedere Driver ATA Miniport.
Routine di inizializzazione
Il driver di porta ATA fornisce la routine di inizializzazione seguente.
Routine | Descrizione |
---|---|
AtaPortInitializeEx | Inizializza i driver di porta e miniport. |
Routine per l'accesso a spazio di configurazione PCI
Il driver di porta ATA fornisce le routine seguenti per leggere e modificare il contenuto dello spazio di configurazione PCI del dispositivo.
Routine | Descrizione |
---|---|
AtaPortGetBusData | Recupera i dati dalla posizione specificata all'interno dello spazio di configurazione PCI del dispositivo. |
AtaPortSetBusData | archivia i dati nello spazio di configurazione PCI del dispositivo indicato in corrispondenza dell'offset specificato. |
Routine per l'elaborazione delle richieste di I/O
Il driver di porta ATA fornisce le routine di supporto per l'elaborazione delle richieste di I/O seguenti.
Routine | Descrizione |
---|---|
AtaPortGetScatterGatherList | Recupera l'elenco a dispersione/raccolta associato a questa richiesta. |
AtaPortGetPhysicalAddress | Converte l'intervallo di indirizzi virtuali nell'intervallo di indirizzi fisici. |
AtaPortGetDeviceBase | Restituisce un indirizzo di base logico mappato utilizzato per comunicare con una scheda bus host . |
AtaPortGetUncachedExtension | Alloca un buffer comune non memorizzato nella cache condiviso dalla CPU e dal dispositivo. |
AtaPortBuildRequestSenseIrb | Compila e restituisce un IRB per il codice dell'operazione SCSIOP_REQUEST_SENSE. |
AtaPortReleaseRequestSenseIrb | Libera il valore IRB del rilevamento della richiesta allocato usando AtaPortBuildRequestSenseIrb. |
AtaPortCompleteAllActiveRequests | Completa tutti i runtime di integrazione attivi per il dispositivo indicato. |
AtaPortCompleteRequest | Completa l'IRB indicato. |
Routine di callback
Il driver miniport usa diverse routine per richiedere un callback dal driver della porta.
Routine | Descrizione |
---|---|
AtaPortRequestWorkerRoutine | Richiede una routine di lavoro. |
AtaPortRequestSynchronizedRoutine | Richiede la sincronizzazione con la routine del servizio interrupt (ISR). |
AtaPortControllerSyncRoutine | Fornisce l'accesso sincronizzato alle strutture di dati condivise tra tutti i canali di un controller. |
AtaPortRequestTimer | Richiede un callback timer. |
Routine che segnalano una modifica di configurazione
Le routine seguenti consentono al driver miniport di notificare al driver della porta ATA le modifiche apportate alla configurazione dei dispositivi collegati al canale.
Routine | Descrizione |
---|---|
AtaPortBusChangeDetected | Notifica al driver di porta le modifiche apportate alla configurazione del dispositivo nel canale indicato. |
AtaPortRequestPowerStateChange | Richiede una transizione dello stato di alimentazione per il dispositivo indicato. |
Routine per controllare le code delle richieste
Il driver di porta gestisce una coda di richieste per ogni numero di unità logica (LUN) e una coda di richieste per ogni canale. Il driver miniport può usare le routine seguenti per sospendere e riprendere le diverse code di richiesta.
Routine | Descrizione |
---|---|
AtaPortDeviceBusy | Informa il driver della porta che il dispositivo indicato è occupato. |
AtaPortDeviceReady | Informa il driver della porta che il dispositivo indicato è pronto per accettare nuove richieste. |
Routine dell'utilità
Le routine seguenti sono funzioni di supporto di utilità generali per i driver miniport.
Routine | Descrizione |
---|---|
AtaPortCopyMemory | Copia i dati da una posizione a un'altra. |
**Routine AtaPortMoveMemory | Copia i dati da una posizione a un'altra. |
AtaPortConvertUlongToPhysicalAddress | Converte un indirizzo ULONG specificato in un valore di tipo IDE_PHYSICAL_ADDRESS. |
AtaPortConvertPhysicalAddressToUlong | Tronca un indirizzo di tipo IDE_PHYSICAL_ADDRESS a una ULONG. |
AtaPortStallExecution | Stalle nel miniport driver. |
AtaPortInitializeQueueTag | Inizializza l'elenco di tag della coda per il dispositivo specificato. |
AtaPortAllocateQueueTag | Restituisce un tag di coda per il dispositivo specificato. |
AtaPortReleaseQueueTag | Rilascia il tag di coda specificato. |
Routine di debug e segnalazione errori
La routine seguente può essere utilizzata per la segnalazione di errori e debug.
Routine | Descrizione |
---|---|
AtaPortDebugPrint | Passa una stringa di messaggio al debugger del kernel per il debugger da stampare. |
Routine per la porta del dispositivo e registrare l'accesso
Il driver di porta ATA fornisce la porta seguente e registra le routine di supporto per l'accesso.
Routine | Descrizione |
---|---|
AtaPortReadPortBufferUchar | Trasferisce un determinato numero di valori di byte senza segno dall'HBA a un buffer. |
AtaPortReadPortBufferUlong | Trasferisce un determinato numero di valori ULONG dall'HBA a un buffer. |
AtaPortReadPortBufferUshort | Trasferisce un determinato numero di valori USHORT dall'HBA a un buffer. |
AtaPortReadPortUchar | Legge un valore di byte non firmato dall'HBA. |
AtaPortReadPortUlong | Legge un valore ULONG dall'HBA. |
AtaPortReadPortUshort | Legge un valore USHORT dall'HBA. |
AtaPortReadRegisterBufferUchar | Trasferisce un numero specificato di byte senza segno dall'HBA a un buffer. |
AtaPortReadRegisterBufferUlong | Trasferisce un numero specificato di ULONG dall'HBA a un buffer. |
AtaPortReadRegisterBufferUshort | Trasferisce un numero specificato di USHORT dall'HBA a un buffer. |
AtaPortReadRegisterUchar | Legge un valore di byte non firmato dall'HBA. |
AtaPortReadRegisterUlong | Legge un valore ULONG dall'HBA. |
AtaPortReadRegisterUshort | Legge un valore USHORT dall'HBA. |
AtaPortWritePortBufferUchar | Scrive un valore in un indirizzo di registrazione specificato. |
AtaPortWritePortBufferUlong | Scrive un valore in un indirizzo di registrazione specificato. |
AtaPortWritePortBufferUshort | Scrive un valore in un indirizzo di registrazione specificato. |
AtaPortWritePortUchar | Trasferisce un valore di byte senza segno all'HBA. |
AtaPortWritePortUlong | Trasferisce un valore ULONG all'HBA. |
AtaPortWritePortUshort | Trasferisce un valore USHORT all'HBA. |
AtaPortWriteRegisterBufferUchar | Trasferisce il numero specificato di byte senza segno da un buffer all'HBA. |
AtaPortWriteRegisterBufferUlong | Trasferisce il numero specificato di valori ULONG da un buffer all'HBA. |
AtaPortWriteRegisterBufferUshort | Trasferisce il numero specificato di valori USHORT da un buffer all'HBA. |
AtaPortWriteRegisterUchar | Trasferisce un byte senza segno all'indirizzo HBA. |
AtaPortWriteRegisterUlong | Trasferisce un valore ULONG all'indirizzo HBA. |
AtaPortWriteRegisterUshort | Trasferisce un valore USHORT all'indirizzo HBA. |
Routine per l'accesso al Registro di sistema
Un driver miniport che implementa l'interfaccia del canale può chiamare le routine seguenti per accedere al Registro di sistema di Windows. I driver Miniport che implementano solo le routine dell'interfaccia controller non possono accedere a queste routine.
Routine | Descrizione |
---|---|
AtaPortRegistryAllocateBuffer | Alloca un buffer per le operazioni del Registro di sistema. |
AtaPortRegistryFreeBuffer | Libera il buffer del Registro di sistema allocato usando AtaPortRegistryAllocateBuffer. |
AtaPortRegistryControllerKeyRead | Legge i dati associati al nome del valore indicato nella chiave del Registro di sistema HKLM\CurrentControlSet\Services<\service name>\ControllerN, dove N è il numero del controller. |
AtaPortRegistryContrlollerKeyWrite | Scrive i dati nel nome del valore indicato nella chiave del Registro di sistema HKLM\CurrentControlSet\Services<\Nome> servizio\ControllerN, dove N è il numero del controller. |
AtaPortRegistryControllerKeyWriteDeferred | Scrive i dati in modo asincrono nel nome del valore indicato nella chiave del Registro di sistema HKLM\CurrentControlSet\Services\<Nome> servizio\ControllerN, dove N è il numero del controller. |
AtaPortRegistryChannelSubKeyRead | Legge i dati associati al nome del valore indicato nella chiave del Registro di sistema HKLM\CurrentControlSet\Services<>\Nome servizio\ControllerN\ChannelM, dove N è il numero del controller e M è il numero del canale. |
AtaPortRegistryChannelSubKeyWrite | Scrive i dati nel nome del valore indicato nella chiave del Registro di sistema HKLM\CurrentControlSet\Services<\Nome> servizio\ControllerN\ChannelM, dove N è il numero del controller e M è il numero del canale. |
AtaPortRegistryChannelSubKeyWriteDeferred | Scrive i dati in modo asincrono nel nome del valore indicato nella chiave del Registro di sistema HKLM\CurrentControlSet\Services<\Nome> servizio\ControllerN\ChannelM, dove N è il numero del controller e M è il numero del canale. |