Especificando características do dispositivo

Cada objeto de dispositivo pode ter uma ou mais características do 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 PDOs. As características FILE_FLOPPY_DISKETTE, FILE_REMOVABLE_MEDIA e FILE_WRITE_ONCE_MEDIA são específicas para dispositivos de armazenamento. Para obter uma descrição dos possíveis sinalizadores de característica 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 ao criar 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

FILE_READ_ONLY_DEVICE

FILE_REMOVABLE_MEDIA

FILE_WRITE_ONCE_MEDIA

Os drivers podem definir características do 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 instalação do dispositivo. (Para obter mais informações, consulte Setting Device Object Properties in the Registry.)

O gerenciador PnP determina a configuração do Registro para 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 usará um valor igual a zero como a configuração do Registro.

Se uma característica do dispositivo que se aplica a toda a pilha de dispositivos for definida no registro ou se estiver definida para qualquer FDO ou filtro DO na pilha, o gerenciador PnP o definirá para cada objeto de dispositivo na pilha. (Se o dispositivo for compatível com o modo bruto e, portanto, não tiver um FDO, o gerenciador PnP usará o PDO.)