Função IoReportRootDevice (ntddk.h)
A rotina IoReportRootDevice relata um dispositivo que não pode ser detectado por um driver de barramento PnP para o Gerenciador PnP. IoReportRootDevice permite que apenas um dispositivo por driver seja criado.
Sintaxe
NTSTATUS IoReportRootDevice(
[in] PDRIVER_OBJECT DriverObject
);
Parâmetros
[in] DriverObject
Ponteiro para o objeto driver do driver que detectou o dispositivo.
Retornar valor
IoReportRootDevice retorna STATUS_SUCCESS com êxito ou o código de erro apropriado em caso de falha.
Comentários
Os drivers para dispositivos que não podem ser detectados por um motorista de barramento PnP usam IoReportRootDevice para relatar seu dispositivo ao sistema. Os dispositivos que podem ser detectados por um motorista de barramento PnP devem ser relatados em resposta a uma solicitação de IRP_MN_QUERY_DEVICE_RELATIONS .
Um driver normalmente chama essa rotina de sua rotina driverEntry .
IoReportRootDevice marca o dispositivo como um dispositivo enumerado raiz e essa identificação é persistente entre as inicializações do sistema. O gerenciador PnP "detecta" o dispositivo na lista enumerada raiz e o configura como um dispositivo PnP: o gerenciador PnP consulta informações do dispositivo, identifica os drivers apropriados e chama suas rotinas AddDevice e envia todos os IRPs PnP apropriados.
O sistema gera uma única cadeia de caracteres de ID de hardware para o dispositivo, do formulário ROOT\Driver em que Driver é o nome de serviço do driver. Um driver pode fornecer IDs de hardware adicionais ou IDs compatíveis manipulando a solicitação de IRP_MN_QUERY_ID .
Um gravador de driver deve fornecer um arquivo INF que corresponda a qualquer uma das IDs de hardware especificadas ou IDs compatíveis. O arquivo INF deve especificar o driver original que chamou IoReportRootDevice como o driver a ser carregado para essas IDs. O sistema usa essas informações para recompilar a pilha de driver do dispositivo, por exemplo, na reinicialização. Os chamadores de IoReportRootDevice devem estar em execução em IRQL = PASSIVE_LEVEL no contexto de um thread do sistema.
Os drivers devem usar IoReportDetectedDevice para relatar dispositivos de hardware que usam recursos, mas não podem ser detectados por um driver de ônibus PnP em vez de IoReportRootDevice.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Disponível em Windows 8 e versões posteriores do Windows. |
Plataforma de Destino | Universal |
Cabeçalho | ntddk.h (inclua Ntddk.h) |
Biblioteca | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL (consulte a seção Comentários) |