Rutinas de compatibilidad del controlador de puerto ATA
En esta página se clasifican las rutinas de soporte proporcionadas por el controlador de puerto ATA proporcionado por el sistema.
Para obtener una lista de rutinas de minipuerto de controladores de ATA, consulta Controladores de minipuerto de ATA.
Rutina de inicialización
El controlador de puerto de ATA proporciona la siguiente rutina de inicialización.
Rutina | Descripción |
---|---|
AtaPortInitializeEx | Inicializa los controladores de puerto y minipuerto. |
Rutinas para el acceso al espacio de configuración PCI
El controlador de puerto ATA proporciona las siguientes rutinas para ayudarle a leer y modificar el contenido del espacio de configuración PCI del dispositivo.
Rutina | Descripción |
---|---|
AtaPortGetBusData | Recupera datos de la ubicación especificada dentro del espacio de configuración pci del dispositivo. |
AtaPortSetBusData | almacena los datos en el espacio de configuración PCI del dispositivo indicado en el desplazamiento especificado. |
Rutinas para procesar solicitudes de E/S
El controlador de puerto de ATA proporciona las siguientes rutinas de soporte técnico de procesamiento de solicitudes de E/S.
Rutina | Descripción |
---|---|
AtaPortGetScatterGatherList | Recupera la lista de dispersión y recopilación asociada a esta solicitud. |
AtaPortGetPhysicalAddress | Convierte el intervalo de direcciones virtuales en el intervalo de direcciones físico. |
AtaPortGetDeviceBase | Devuelve una dirección base lógica asignada que se usa para comunicarse con un adaptador de bus host (HBA). |
AtaPortGetUncachedExtension | Asigna un búfer común sin almacenar en caché compartido por la CPU y el dispositivo. |
AtaPortBuildRequestSenseIrb | Compila y devuelve un IRB para el código de operación SCSIOP_REQUEST_SENSE. |
AtaPortReleaseRequestSenseIrb | Libera el IRB de sentido de solicitud asignado mediante AtaPortBuildRequestSenseIrb. |
AtaPortCompleteAllActiveRequests | Completa todos los IRB activos para el dispositivo indicado. |
AtaPortCompleteRequest | Completa el IRB indicado. |
Rutinas de devolución de llamada
El controlador de minipuerto usa varias rutinas para solicitar una devolución de llamada del controlador de puerto.
Rutina | Descripción |
---|---|
AtaPortRequestWorkerRoutine | Solicita una rutina de trabajo. |
AtaPortRequestSynchronizedRoutine | Solicita la sincronización con la rutina del servicio de interrupción (ISR). |
AtaPortControllerSyncRoutine | Proporciona acceso sincronizado a estructuras de datos que se comparten entre todos los canales de un controlador. |
AtaPortRequestTimer | Solicita una devolución de llamada del temporizador. |
Rutinas que notifican un cambio de configuración
Las rutinas siguientes permiten al controlador de minipuerto notificar al controlador de puerto ATA los cambios en la configuración de los dispositivos conectados al canal.
Rutina | Descripción |
---|---|
AtaPortBusChangeDetected | Notifica al controlador de puerto los cambios en la configuración del dispositivo en el canal indicado. |
AtaPortRequestPowerStateChange | Solicita una transición de estado de energía para el dispositivo indicado. |
Rutinas para controlar las colas de solicitudes
El controlador de puerto mantiene una cola de solicitudes por número de unidad lógica (LUN) y una cola de solicitudes para cada canal. El controlador de minipuerto puede usar las siguientes rutinas para pausar y reanudar las diferentes colas de solicitudes.
Rutina | Descripción |
---|---|
AtaPortDeviceBusy | Informa al controlador de puerto de que el dispositivo indicado está ocupado. |
AtaPortDeviceReady | Informa al controlador de puerto de que el dispositivo indicado está listo para aceptar nuevas solicitudes. |
Rutinas de utilidad
Las siguientes rutinas son funciones de compatibilidad de utilidad general para controladores de miniporte.
Rutina | Descripción |
---|---|
AtaPortCopyMemory | Copia datos de una ubicación a otra. |
**Rutina AtaPortMoveMemory | Copia datos de una ubicación a otra. |
AtaPortConvertUlongToPhysicalAddress | Convierte una dirección ULONG determinada en un valor de tipo IDE_PHYSICAL_ADDRESS. |
AtaPortConvertPhysicalAddressToUlong | Trunca una dirección de tipo IDE_PHYSICAL_ADDRESS en una ULONG. |
AtaPortStallExecution | Se detiene en el miniportador. |
AtaPortInitializeQueueTag | Inicializa la lista de etiquetas de cola para el dispositivo especificado. |
AtaPortAllocateQueueTag | Devuelve una etiqueta de cola para el dispositivo especificado. |
AtaPortReleaseQueueTag | Libera la etiqueta de cola especificada. |
Rutinas de informes de errores y depuración
La rutina siguiente se puede usar para la depuración y los informes de errores.
Rutina | Descripción |
---|---|
AtaPortDebugPrint | Pasa una cadena de mensaje al depurador de kernel para que el depurador se imprima. |
Rutinas para el puerto de dispositivo y registrar el acceso
El controlador de puerto de ATA proporciona los siguientes puertos y registra las rutinas de compatibilidad de acceso.
Rutina | Descripción |
---|---|
AtaPortReadPortBufferUchar | Transfiere un número determinado de valores de bytes sin signo del HBA a un búfer. |
AtaPortReadPortBufferUlong | Transfiere un número determinado de valores de ULONG del HBA a un búfer. |
AtaPortReadPortBufferUshort | Transfiere un número determinado de valores de USHORT del HBA a un búfer. |
AtaPortReadPortUchar | Lee un valor de byte sin signo del HBA. |
AtaPortReadPortUlong | Lee un valor de ULONG del HBA. |
AtaPortReadPortUshort | Lee un valor de USHORT del HBA. |
AtaPortReadRegisterBufferUchar | Transfiere un número especificado de bytes sin signo del HBA a un búfer. |
AtaPortReadRegisterBufferUlong | Transfiere un número especificado de ULONG desde el HBA a un búfer. |
AtaPortReadRegisterBufferUshort | Transfiere un número especificado de USHORT del HBA a un búfer. |
AtaPortReadRegisterUchar | Lee un valor de byte sin signo del HBA. |
AtaPortReadRegisterUlong | Lee un valor de ULONG del HBA. |
AtaPortReadRegisterUshort | Lee un valor de USHORT del HBA. |
AtaPortWritePortBufferUchar | Escribe un valor en una dirección de registro especificada. |
AtaPortWritePortBufferUlong | Escribe un valor en una dirección de registro especificada. |
AtaPortWritePortBufferUshort | Escribe un valor en una dirección de registro especificada. |
AtaPortWritePortUchar | Transfiere un valor de byte sin signo al HBA. |
AtaPortWritePortUlong | Transfiere un valor ULONG al HBA. |
AtaPortWritePortUshort | Transfiere un valor de USHORT al HBA. |
AtaPortWriteRegisterBufferUchar | Transfiere el número especificado de bytes sin signo de un búfer al HBA. |
AtaPortWriteRegisterBufferUlong | Transfiere el número especificado de valores de ULONG de un búfer al HBA. |
AtaPortWriteRegisterBufferUshort | Transfiere el número especificado de valores de USHORT de un búfer al HBA. |
AtaPortWriteRegisterUchar | Transfiere un byte sin signo a la dirección HBA. |
AtaPortWriteRegisterUlong | Transfiere un valor ULONG a la dirección HBA. |
AtaPortWriteRegisterUshort | Transfiere un valor de USHORT a la dirección HBA. |
Rutinas para el acceso al Registro
Un controlador de minipuerto que implementa la interfaz de canal puede llamar a las siguientes rutinas para acceder al Registro de Windows. Los controladores de miniporte que solo implementan las rutinas de interfaz del controlador no pueden acceder a estas rutinas.
Rutina | Descripción |
---|---|
AtaPortRegistryAllocateBuffer | Asigna un búfer para las operaciones del Registro. |
AtaPortRegistryFreeBuffer | Libera el búfer del Registro que se asignó mediante AtaPortRegistryAllocateBuffer. |
AtaPortRegistryControllerKeyRead | Lee los datos asociados al nombre de valor indicado en la clave del Registro HKLM\CurrentControlSet\Services\<service name>\ControllerN, donde N es el número del controlador. |
AtaPortRegistryContrlollerKeyWrite | Escribe los datos en el nombre de valor indicado en la clave del Registro HKLM\CurrentControlSet\Services\<service name>\ControllerN, donde N es el número del controlador. |
AtaPortRegistryControllerKeyWriteDeferred | Escribe los datos de forma asincrónica en el nombre de valor indicado en la clave del Registro HKLM\CurrentControlSet\Services\<service name>\ControllerN, donde N es el número del controlador. |
AtaPortRegistryChannelSubKeyRead | Lee los datos asociados al nombre de valor indicado en la clave del Registro HKLM\CurrentControlSet\Services\<service name>\ControllerN\ChannelM, donde N es el número del controlador y M es el número del canal. |
AtaPortRegistryChannelSubKeyWrite | Escribe los datos en el nombre de valor indicado en la clave del Registro HKLM\CurrentControlSet\Services\<service name>\ControllerN\ChannelM, donde N es el número del controlador y M es el número del canal. |
AtaPortRegistryChannelSubKeyWriteDeferred | Escribe los datos de forma asincrónica en el nombre de valor indicado en la clave del Registro HKLM\CurrentControlSet\Services\<service name>\ControllerN\ChannelM, donde N es el número del controlador y M es el número del canal. |