Partilhar via


Especificando características do dispositivo

Cada objeto de dispositivo pode ter uma ou mais características de dispositivo. As características do dispositivo são armazenadas como sinalizadores no membro Características da estrutura DEVICE_OBJECT do objeto do dispositivo.

A maioria dos drivers especifica apenas a característica FILE_DEVICE_SECURE_OPEN. Isso garante que as mesmas configurações de segurança sejam aplicadas a qualquer solicitação aberta no namespace do dispositivo. Para obter mais informações, consulte Controlando o acesso ao namespace do dispositivo.

O FILE_AUTOGENERATED_DEVICE_NAME é usado apenas para DOP. As características FILE_FLOPPY_DISKETTE, FILE_REMOVABLE_MEDIA e FILE_WRITE_ONCE_MEDIA são específicas dos dispositivos de armazenamento. Para obter uma descrição dos possíveis sinalizadores característicos do dispositivo, consulte a descrição do membro Características do DEVICE_OBJECT.

Determinadas características do dispositivo, como FILE_AUTOGENERATED_DEVICE_NAME, só se aplicam a objetos de dispositivo individuais. Os drivers podem especificar uma configuração para as características do dispositivo para objetos de dispositivo individuais quando criam o objeto de dispositivo chamando IoCreateDevice ou IoCreateDeviceSecure.

As seguintes características se aplicam a toda a pilha de dispositivos:

FILE_DEVICE_SECURE_OPEN

FILE_FLOPPY_DISKETTE

DISPOSITIVO_SOMENTE_LEITURA

ARQUIVO_MEDIA_REMOVÍVEL

MEDIA_DE_ESCRITA_ÚNICA

Os drivers podem definir características de dispositivo que se aplicam a toda a pilha de dispositivos chamando IoCreateDevice ou IoCreateDeviceSecure. Como alternativa, as características do dispositivo que se aplicam a toda a pilha de dispositivos podem ser definidas no registro, para o dispositivo ou para a classe de configuração do dispositivo. (Para obter mais informações, consulte Definindo propriedades de objeto de dispositivo no Registro.)

O gerenciador PnP determina a configuração do Registro para as características do dispositivo da seguinte maneira.

  • Se um valor for especificado para o dispositivo individual, o gerenciador PnP usará esse valor;

  • Caso contrário, se um valor for especificado para a classe de configuração do dispositivo, o gerenciador PnP usará esse valor;

  • Caso contrário, o gerenciador PnP usa um valor de zero como a configuração do Registro.

Se uma característica de dispositivo que se aplica a toda a pilha de dispositivos estiver definida no Registro, ou se estiver definida para qualquer FDO ou filtro DO na pilha, o gerenciador PnP a definirá para cada objeto de dispositivo na pilha. (Se o aparelho é compatível com modo raw e, por isso, não possui um FDO, então o gestor PnP usa o PDO em vez deste.)