Partilhar via


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