Partilhar via


Sobre drivers de armazenamento e objetos de dispositivo

A pilha de dispositivos de armazenamento consiste em uma árvore de objetos de dispositivo criados pelos drivers envolvidos na manipulação de E/S para dispositivos de armazenamento no sistema. A raiz dessa árvore é um FDO (objeto de dispositivo funcional) para um adaptador de armazenamento ou para outra pilha de driver integrada à pilha de armazenamento. As folhas dessa árvore são objetos de dispositivo para uso por sistemas de arquivos e aplicativos de modo de usuário.

Como qualquer driver PnP, uma classe de armazenamento ou driver de filtro de armazenamento se adiciona à árvore em sua rotina AddDevice criando um objeto de dispositivo com IoCreateDevice e anexando-o à pilha de dispositivos com IoAttachDeviceToDeviceStack, usando o ponteiro para o objeto de dispositivo passado para a rotina AddDevice do driver pelo gerenciador de PnP na inicialização. IoAttachDeviceToDeviceStack anexa o novo objeto de dispositivo à parte superior atual da pilha do dispositivo.

Uma miniclasse de fita, miniclasse de alterador médio ou driver de miniporto SCSI não é necessário para criar um objeto de dispositivo e anexá-lo à pilha do dispositivo. Em vez disso, a classe de fita fornecida pelo sistema, a classe changer ou o driver de porta SCSI manipula essas tarefas em nome da miniclasse/miniport, chamando rotinas de driver miniclass/miniport para coletar os dados necessários para criar o objeto do dispositivo.

Os drivers de porta de armazenamento criam PDOs (objetos de dispositivo físico) do tipo FILE_DEVICE_MASS_STORAGE. A classe de disco, a classe CD-ROM, a classe de fita e os drivers de classe de alterador criam FDOs dos tipos FILE_DEVICE_DISK, FILE_DEVICE_CD_ROM, FILE_DEVICE_TAPE e FILE_DEVICE_CHANGER respectivamente.

Para obter informações sobre como criar drivers PnP, consulte as Diretrizes de design do driver PnP. Para obter informações sobre rotinas de IoXxx relacionadas ao PnP, consulte as Rotinas de Plug and Play.