Partilhar via


Falha ao validar objetos de dispositivo

Muitos drivers criam mais de um tipo de objeto de dispositivo chamando IoCreateDevice. Alguns drivers criam objetos de dispositivo de controle em suas rotinas DriverEntry para permitir que os aplicativos se comuniquem com o driver, mesmo antes de o driver criar um FDO. Por exemplo, os drivers do sistema de arquivos criam objetos de dispositivo para lidar com notificações do sistema de arquivos quando eles se registram como sistemas de arquivos com IoRegisterFileSystem.

Um driver deve estar pronto para IRP_MJ_CREATE solicitações para qualquer objeto de dispositivo que ele criar. Depois de concluir a solicitação com um status de êxito, o driver deve esperar receber quaisquer solicitações de E/S acessíveis pelo usuário no objeto de arquivo criado. Consequentemente, qualquer driver que cria mais de um objeto de dispositivo deve marcar qual objeto de dispositivo cada solicitação de E/S especifica.

Por exemplo, suponha que um driver crie objetos de dispositivo de controle geral em DriverEntry e, em seguida, crie outro conjunto de objetos de dispositivo em sua rotina AddDevice . Suponha que a rotina AddDevice inicialize a extensão do dispositivo com informações sobre drivers de nível inferior, mas os objetos do dispositivo de controle não contêm essas informações. Nesse caso, todas as rotinas de expedição devem ter cuidado para marcar cada objeto de dispositivo que recebem. Caso contrário, o driver poderá falhar ao tentar usar informações de extensão do dispositivo.