Códigos gerais de controle de E/S de armazenamento
Dispositivos de armazenamento de tipos diferentes geralmente exigem os mesmos serviços. Em vez de duplicar as solicitações IOCTL que fornecem esses serviços para cada tipo de dispositivo, esta seção define um conjunto de serviços padrão e códigos de controle de dispositivo que são frequentemente exigidos por dispositivos de armazenamento. Os códigos de controle de E/S definidos aqui têm o formulário IOCTL_STORAGE_XXX e substituem os códigos de controle IOCTL_DeviceType_XXX , em que DeviceType era DISK, TAPE ou CDROM. Por exemplo, IOCTL_STORAGE_RESERVE substitui IOCTL_DISK_RESERVE, IOCTL_TAPE_RESERVE e IOCTL_CDROM_RESERVE. Os códigos de controle IOCTL_STORAGE_XXX têm valores idênticos para código de função, método de transferência e acesso necessário como os códigos anteriores de disco, fita e CD-ROM. A única diferença é o tipo de dispositivo.
O driver de classe de armazenamento inicia algumas dessas solicitações, mas geralmente é um aplicativo que faz isso. Os drivers de classe de armazenamento devem lidar com algumas ou todas essas solicitações, dependendo do tipo de dispositivo de armazenamento. Quando nenhum driver de classe de armazenamento existe, o aplicativo pode fazer a solicitação diretamente para o driver de porta.
IOCTL | Descrição |
---|---|
IOCTL_STORAGE_BREAK_RESERVATION | Interrompe uma reserva de disco. |
IOCTL_STORAGE_CHECK_VERIFY | Determina se a mídia foi alterada em um dispositivo de mídia removível que o chamador abriu para acesso de leitura ou gravação. |
IOCTL_STORAGE_CHECK_VERIFY2 | Determina se a mídia foi alterada em um dispositivo de mídia removível – o chamador abriu com FILE_READ_ATTRIBUTES. |
IOCTL_STORAGE_DEVICE_POWER_CAP | Especifica um nível máximo de consumo de energia operacional para um dispositivo de armazenamento. |
IOCTL_STORAGE_EJECT_MEDIA | Faz com que o dispositivo ejete a mídia se o dispositivo der suporte a recursos de ejeção. |
IOCTL_STORAGE_EJECTION_CONTROL | Bloqueia o dispositivo para impedir a remoção da mídia. |
IOCTL_STORAGE_FIND_NEW_DEVICES | Determina se outro dispositivo compatível com o driver foi conectado ao barramento de E/S, desde que o sistema foi inicializado ou desde a última vez que o driver processou essa solicitação. |
IOCTL_STORAGE_FIRMWARE_ACTIVATE | Ativa uma imagem de firmware em um dispositivo de armazenamento. |
IOCTL_STORAGE_FIRMWARE_DOWNLOAD | Baixa uma imagem de firmware em um dispositivo de armazenamento, mas não a ativa. |
IOCTL_STORAGE_FIRMWARE_GET_INFO | Consulta um dispositivo de armazenamento para obter informações detalhadas de firmware. |
IOCTL_STORAGE_GET_DEVICE_NUMBER | Retorna uma estrutura STORAGE_DEVICE_NUMBER que contém o tipo de FILE_DEVICE_XXX, o número do dispositivo e, para um dispositivo particionável, o número da partição atribuído a um dispositivo pelo driver quando o dispositivo é iniciado. |
IOCTL_STORAGE_GET_HOTPLUG_INFO | Recupera a configuração de hotplug do dispositivo especificado. |
IOCTL_STORAGE_GET_LB_PROVISIONING_MAP_RESOURCES | A solicitação IOCTL_STORAGE_GET_LB_PROVISIONING_MAP_RESOURCES é enviada ao driver de classe de armazenamento para determinar os recursos de mapeamento disponíveis e usados em um dispositivo de armazenamento. |
IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER | Consulta o driver pai genérico USB para o número de série de um dispositivo USB. |
IOCTL_STORAGE_GET_MEDIA_TYPES | Retorna informações sobre a geometria de unidades de disquete. |
IOCTL_STORAGE_GET_MEDIA_TYPES_EX | Retorna informações sobre os tipos de mídia compatíveis com um dispositivo. |
IOCTL_STORAGE_GET_PHYSICAL_ELEMENT_STATUS | O IOCTL_STORAGE_GET_PHYSICAL_ELEMENT_STATUS o código de controle consulta e retorna o elemento físico status de um dispositivo. |
IOCTL_STORAGE_LOAD_MEDIA | Faz com que a mídia seja carregada em um dispositivo que o chamador abriu para acesso de leitura ou gravação. |
IOCTL_STORAGE_LOAD_MEDIA2 | Faz com que a mídia seja carregada em um dispositivo que o chamador abriu com FILE_READ_ATTRIBUTES. |
IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES | Essa solicitação IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES é usada para enviar uma solicitação de atributos de conjunto de dados de gerenciamento para um dispositivo de armazenamento. |
IOCTL_STORAGE_MCN_CONTROL | Habilita ou desabilita temporariamente a entrega dos eventos PnP personalizados GUID_IO_MEDIA_ARRIVAL e GUID_IO_MEDIA_REMOVAL em um dispositivo de mídia removível. |
IOCTL_STORAGE_MEDIA_REMOVAL | Bloqueia o dispositivo para impedir a remoção da mídia. |
IOCTL_STORAGE_PERSISTENT_RESERVE_IN | O driver de classe de armazenamento genérico (classpnp.sys) expõe uma interface IOCTL (controle de E/S) para emitir comandos de Reserva Persistente em. |
IOCTL_STORAGE_PERSISTENT_RESERVE_OUT | O driver de classe de armazenamento genérico (classpnp.sys) expõe uma interface IOCTL (controle de E/S) para emitir comandos de Reserva Persistente. |
IOCTL_STORAGE_PREDICT_FAILURE | Sonda uma previsão de falha do dispositivo. |
IOCTL_STORAGE_PROTOCOL_COMMAND | Um driver pode usar IOCTL_STORAGE_PROTOCOL_COMMAND para passar comandos específicos do fornecedor para um dispositivo de armazenamento |
IOCTL_STORAGE_QUERY_PROPERTY | Um driver pode usar IOCTL_STORAGE_QUERY_PROPERTY para retornar propriedades de um dispositivo de armazenamento ou adaptador. |
IOCTL_STORAGE_READ_CAPACITY | A solicitação IOCTL_STORAGE_READ_CAPACITY retorna as informações de capacidade de leitura para o dispositivo de armazenamento de destino. |
IOCTL_STORAGE_REINITIALIZE_MEDIA | Um driver pode usar o código de controle IOCTL_STORAGE_REINITIALIZE_MEDIA para reinicializar/apagar um dispositivo. |
IOCTL_STORAGE_RELEASE | Libera um dispositivo previamente reservado para o uso exclusivo do chamador em um barramento que dá suporte a vários iniciadores e ao conceito de reservar um dispositivo, como um barramento SCSI. |
IOCTL_STORAGE_RESERVE | Declara um dispositivo para o uso exclusivo do chamador em um barramento que dá suporte a vários iniciadores e ao conceito de reservar um dispositivo, como um barramento SCSI. |
IOCTL_STORAGE_RESET_BUS | Redefine um ônibus de E/S e, indiretamente, cada dispositivo no barramento. |
IOCTL_STORAGE_RESET_DEVICE | Se possível, redefine um dispositivo de armazenamento não SCSI sem afetar outros dispositivos no barramento. |
IOCTL_STORAGE_SET_HOTPLUG_INFO | Define a configuração de hotplug do dispositivo especificado. |
IOCTL_STORAGE_SET_PROPERTY | Indica se uma solicitação para alterar uma propriedade foi bem-sucedida ou causa um erro. |
IOCTL_STORAGE_SET_TEMPERATURE_THRESHOLD | Um driver pode usar IOCTL_STORAGE_SET_TEMPERATURE_THRESHOLD para definir o limite de temperatura de um dispositivo de armazenamento (quando compatível com o hardware). |