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