Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
As interfaces do dispositivo estão disponíveis para componentes do modo kernel e aplicativos no modo de usuário. O código do modo de usuário pode usar funções CfgMgr32 (por exemplo, CM_Get_Device_Interface_List) ou funções SetupDiXxx (consulte funções de interface do dispositivo SetupDi) para saber mais sobre interfaces de dispositivos registradas e habilitadas. Em seguida, o aplicativo de modo de usuário pode usar APIs de E/S, como CreateFile , para obter um identificador para o dispositivo a fim de enviar E/S para ele. Para ser notificado sobre a habilitação e desabilitação das interfaces do dispositivo e como reagir a essas ações, consulte Registrar-se para notificação de chegada da interface do dispositivo e remoção da interface do dispositivo.
Antes que um componente do modo kernel possa usar um dispositivo ou objeto de arquivo específico, ele deve fazer o seguinte:
Verifique se a classe de interface do dispositivo necessária está registrada e habilitada.
Um driver pode se registrar no gerenciador PnP para ser notificado quando uma instância de uma interface do dispositivo estiver habilitada ou desabilitada. Para se registrar, o componente chama IoRegisterPlugPlayNotification. Essa rotina armazena o endereço de um retorno de chamada fornecido pelo driver, que é chamado sempre que uma instância de interface do dispositivo está habilitada ou desabilitada, para uma classe de dispositivo especificada. As rotinas de retorno de chamada recebem a estrutura DEVICE_INTERFACE_CHANGE_NOTIFICATION , que contém uma cadeia de caracteres Unicode que representa o link simbólico da instância de interface. Consulte Como usar a notificação de alteração da interface do dispositivo PnP para obter mais informações.
Um driver ou outro componente do modo kernel também pode chamar IoGetDeviceInterfaces para obter uma lista de todas as instâncias de interface do dispositivo registradas e habilitadas para uma classe de interface de dispositivo específica. A lista retornada contém ponteiros para as cadeias de caracteres de link simbólicas Unicode que identificam as instâncias da interface do dispositivo.
Obtenha um ponteiro para um dispositivo ou objeto de arquivo que corresponda a uma instância da interface.
Para acessar um objeto de dispositivo específico, o driver deve chamar IoGetDeviceObjectPointer, passando a cadeia de caracteres Unicode para a interface necessária no parâmetro ObjectName . Para acessar um objeto de arquivo, o driver deve chamar InitializeObjectAttributes, passando a cadeia de caracteres Unicode no parâmetro ObjectName e, em seguida, passar a estrutura de atributo inicializada com êxito em uma chamada para ZwCreateFile.