Función IoReportRootDevice (ntddk.h)

La rutina IoReportRootDevice informa de un dispositivo que no puede detectar un controlador de bus PnP al administrador de PnP. IoReportRootDevice solo permite crear un dispositivo por controlador.

Sintaxis

NTSTATUS IoReportRootDevice(
  [in] PDRIVER_OBJECT DriverObject
);

Parámetros

[in] DriverObject

Puntero al objeto de controlador del controlador que detectó el dispositivo.

Valor devuelto

IoReportRootDevice devuelve STATUS_SUCCESS correcto o el código de error adecuado en caso de error.

Comentarios

Los controladores de los dispositivos que un controlador de bus PnP no puede detectar usan IoReportRootDevice para notificar su dispositivo al sistema. Los dispositivos que un controlador de bus PnP puede detectar deben notificarse en respuesta a una solicitud de IRP_MN_QUERY_DEVICE_RELATIONS .

Normalmente, un controlador llama a esta rutina desde su rutina DriverEntry .

IoReportRootDevice marca el dispositivo como un dispositivo enumerado por raíz y esta identificación es persistente en los arranques del sistema. El administrador de PnP "detecta" el dispositivo en la lista enumerada por raíz y lo configura como un dispositivo PnP: el administrador de PnP consulta la información del dispositivo, identifica los controladores adecuados y llama a sus rutinas AddDevice y envía todos los IRP de PnP adecuados.

El sistema genera una única cadena de id. de hardware para el dispositivo, con el formato ROOT\Driver , donde Driver es el nombre del servicio del controlador. Un controlador puede proporcionar identificadores de hardware adicionales o identificadores compatibles mediante el control de la solicitud de IRP_MN_QUERY_ID .

Un escritor de controladores debe proporcionar un archivo INF que coincida con cualquiera de los identificadores de hardware especificados o identificadores compatibles. El archivo INF debe especificar el controlador original que llamó a IoReportRootDevice como controlador que se va a cargar para esos identificadores. El sistema usa esta información para recompilar la pila de controladores para el dispositivo, por ejemplo, al reiniciar. Los autores de llamadas de IoReportRootDevice deben ejecutarse en IRQL = PASSIVE_LEVEL en el contexto de un subproceso del sistema.

Los controladores deben usar IoReportDetectedDevice para informar de los dispositivos de hardware que usan recursos, pero no se pueden detectar mediante un controlador de bus PnP en lugar de IoReportRootDevice.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en Windows 8 y versiones posteriores de Windows.
Plataforma de destino Universal
Encabezado ntddk.h (incluya Ntddk.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL (consulte la sección Comentarios)

Consulte también

AddDevice

DriverEntry

IRP_MN_QUERY_DEVICE_RELATIONS

IRP_MN_QUERY_ID

IRP_MN_START_DEVICE

IoReportDetectedDevice

IoReportResourceForDetection