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). |