Partilhar via


Função IoReportRootDevice (ntddk.h)

A rotina IoReportRootDevice relata um dispositivo que não pode ser detectado por um driver de ônibus 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.

Valor de retorno

IoReportRootDevice retorna STATUS_SUCCESS com êxito ou o código de erro apropriado sobre falha.

Observações

Os drivers para dispositivos que não podem ser detectados por um motorista de ônibus PnP usam IoReportRootDevice para relatar seu dispositivo ao sistema. Os dispositivos que podem ser detectados por um motorista de ônibus 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 de 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 seus Rotinas de 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 do serviço do driver. Um driver pode fornecer IDs de hardware adicionais ou IDs compatíveis manipulando a solicitação 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 no 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
de cliente com suporte mínimo Disponível no Windows 8 e versões posteriores do Windows.
da Plataforma de Destino Universal
cabeçalho ntddk.h (inclua Ntddk.h)
biblioteca NtosKrnl.lib
de DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL (consulte a seção Comentários)

Consulte também

AddDevice

DriverEntry

IRP_MN_QUERY_DEVICE_RELATIONS

IRP_MN_QUERY_ID

IRP_MN_START_DEVICE

IoReportDetectedDevice

IoReportResourceForDetection