Condividi tramite


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.