Compartir a través de


Códigos de control de E/S de almacenamiento general

Los dispositivos de almacenamiento de diferentes tipos suelen requerir los mismos servicios. En lugar de duplicar las solicitudes IOCTL que proporcionan estos servicios para cada tipo de dispositivo, en esta sección se define un conjunto de servicios estándar y códigos de control de dispositivos que los dispositivos de almacenamiento requieren con frecuencia. Los códigos de control de E/S definidos aquí tienen el formato IOCTL_STORAGE_XXX y reemplazan los códigos de control IOCTL_DeviceType_XXX , donde DeviceType era DISK, TAPE o CDROM. Por ejemplo, IOCTL_STORAGE_RESERVE reemplaza IOCTL_DISK_RESERVE, IOCTL_TAPE_RESERVE y IOCTL_CDROM_RESERVE. Los códigos de control IOCTL_STORAGE_XXX tienen valores idénticos para el código de función, el método de transferencia y el acceso necesario como los códigos de disco, cinta y CD-ROM anteriores. La única diferencia es el tipo de dispositivo.

El controlador de clase de almacenamiento inicia algunas de estas solicitudes, pero normalmente es una aplicación que lo hace. Los controladores de clase de almacenamiento deben controlar algunas o todas estas solicitudes, en función del tipo de dispositivo de almacenamiento. Cuando no existe ningún controlador de clase de almacenamiento, la aplicación podría realizar la solicitud directamente en el controlador de puerto.

IOCTL Descripción
IOCTL_STORAGE_BREAK_RESERVATION Interrumpe una reserva de disco.
IOCTL_STORAGE_CHECK_VERIFY Determina si los medios han cambiado en un dispositivo multimedia extraíble que el autor de la llamada ha abierto para el acceso de lectura o escritura.
IOCTL_STORAGE_CHECK_VERIFY2 Determina si los medios han cambiado en un dispositivo multimedia extraíble: el autor de la llamada se ha abierto con FILE_READ_ATTRIBUTES.
IOCTL_STORAGE_DEVICE_POWER_CAP Especifica un nivel de consumo de energía operativo máximo para un dispositivo de almacenamiento.
IOCTL_STORAGE_EJECT_MEDIA Hace que el dispositivo expulse el medio si el dispositivo admite funcionalidades de expulsión.
IOCTL_STORAGE_EJECTION_CONTROL Bloquea el dispositivo para evitar la eliminación de los medios.
IOCTL_STORAGE_FIND_NEW_DEVICES Determina si otro dispositivo que admite el controlador se ha conectado al bus de E/S, ya sea desde que el sistema se ha arrancado o desde que el controlador procesó esta solicitud por última vez.
IOCTL_STORAGE_FIRMWARE_ACTIVATE Activa una imagen de firmware en un dispositivo de almacenamiento.
IOCTL_STORAGE_FIRMWARE_DOWNLOAD Descarga una imagen de firmware en un dispositivo de almacenamiento, pero no la activa.
IOCTL_STORAGE_FIRMWARE_GET_INFO Consulta un dispositivo de almacenamiento para obtener información detallada del firmware.
IOCTL_STORAGE_GET_DEVICE_NUMBER Devuelve una estructura STORAGE_DEVICE_NUMBER que contiene el tipo de FILE_DEVICE_XXX, el número de dispositivo y, para un dispositivo con particiones, el número de partición asignado a un dispositivo por el controlador cuando se inicia el dispositivo.
IOCTL_STORAGE_GET_HOTPLUG_INFO Recupera la configuración de hotplug del dispositivo especificado.
IOCTL_STORAGE_GET_LB_PROVISIONING_MAP_RESOURCES La solicitud IOCTL_STORAGE_GET_LB_PROVISIONING_MAP_RESOURCES se envía al controlador de clase de almacenamiento para determinar los recursos de asignación disponibles y usados en un dispositivo de almacenamiento.
IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER Consulta el controlador primario genérico USB para el número de serie de un dispositivo USB.
IOCTL_STORAGE_GET_MEDIA_TYPES Devuelve información sobre la geometría de las unidades de disquete.
IOCTL_STORAGE_GET_MEDIA_TYPES_EX Devuelve información sobre los tipos de medios admitidos por un dispositivo.
IOCTL_STORAGE_GET_PHYSICAL_ELEMENT_STATUS El código de control IOCTL_STORAGE_GET_PHYSICAL_ELEMENT_STATUS consulta y devuelve el estado del elemento físico de un dispositivo.
IOCTL_STORAGE_LOAD_MEDIA Hace que los medios se carguen en un dispositivo que el autor de la llamada ha abierto para el acceso de lectura o escritura.
IOCTL_STORAGE_LOAD_MEDIA2 Hace que los medios se carguen en un dispositivo que el autor de la llamada ha abierto con FILE_READ_ATTRIBUTES.
IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES Esta IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES solicitud se usa para enviar una solicitud de atributos de conjunto de datos de administración a un dispositivo de almacenamiento.
IOCTL_STORAGE_MCN_CONTROL Habilita o deshabilita temporalmente la entrega de los eventos PnP personalizados GUID_IO_MEDIA_ARRIVAL y GUID_IO_MEDIA_REMOVAL en un dispositivo multimedia extraíble.
IOCTL_STORAGE_MEDIA_REMOVAL Bloquea el dispositivo para evitar la eliminación de los medios.
IOCTL_STORAGE_PERSISTENT_RESERVE_IN El controlador de clase de almacenamiento genérico (classpnp.sys) expone una interfaz de control de E/S (IOCTL) para emitir comandos De reserva persistente.
IOCTL_STORAGE_PERSISTENT_RESERVE_OUT El controlador de clase de almacenamiento genérico (classpnp.sys) expone una interfaz de control de E/S (IOCTL) para emitir comandos de reserva persistente.
IOCTL_STORAGE_PREDICT_FAILURE Sondea una predicción de un error de dispositivo.
IOCTL_STORAGE_PROTOCOL_COMMAND Un controlador puede usar IOCTL_STORAGE_PROTOCOL_COMMAND para pasar comandos específicos del proveedor a un dispositivo de almacenamiento.
IOCTL_STORAGE_QUERY_PROPERTY Un controlador puede usar IOCTL_STORAGE_QUERY_PROPERTY para devolver propiedades de un dispositivo de almacenamiento o adaptador.
IOCTL_STORAGE_READ_CAPACITY La solicitud IOCTL_STORAGE_READ_CAPACITY devuelve la información de capacidad de lectura del dispositivo de almacenamiento de destino.
IOCTL_STORAGE_REINITIALIZE_MEDIA Un controlador puede usar el código de control IOCTL_STORAGE_REINITIALIZE_MEDIA para reinicializar o borrar un dispositivo.
IOCTL_STORAGE_RELEASE Libera un dispositivo reservado previamente para el uso exclusivo del autor de la llamada en un bus que admite varios iniciadores y el concepto de reservar un dispositivo, como un bus SCSI.
IOCTL_STORAGE_RESERVE Reclama un dispositivo para el uso exclusivo del autor de la llamada en un bus que admite varios iniciadores y el concepto de reservar un dispositivo, como un bus SCSI.
IOCTL_STORAGE_RESET_BUS Restablece un bus de E/S y, indirectamente, cada dispositivo del bus.
IOCTL_STORAGE_RESET_DEVICE Si es posible, restablece un dispositivo de almacenamiento no SCSI sin afectar a otros dispositivos del bus.
IOCTL_STORAGE_SET_HOTPLUG_INFO Establece la configuración de hotplug del dispositivo especificado.
IOCTL_STORAGE_SET_PROPERTY Indica si una solicitud para cambiar una propiedad es correcta o produce un error.
IOCTL_STORAGE_SET_TEMPERATURE_THRESHOLD Un controlador puede usar IOCTL_STORAGE_SET_TEMPERATURE_THRESHOLD para establecer el umbral de temperatura de un dispositivo de almacenamiento (cuando sea compatible con el hardware).