Función IoReportRootDevice (ntddk.h)
El ioReportRootDevice rutina informa de un dispositivo que no puede ser detectado por un controlador de bus PnP al Administrador de PnP. ioReportRootDevice permite crear solo 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.
Observaciones
Los controladores para dispositivos que no se pueden detectar mediante un controlador de bus PnP 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 de DriverEntry.
IoReportRootDevice marca el dispositivo como un dispositivo enumerado en raíz y esta identificación es persistente en los arranques del sistema. El administrador de PnP "detecta" el dispositivo en la lista de enumeración 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 addDevice rutinas, y envía todos los IRP de PnP adecuados.
El sistema genera una única cadena de identificador 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 del 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 notificar dispositivos de hardware que usan recursos, pero que no pueden ser detectados por un controlador de bus PnP en lugar de IoReportRootDevice.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Disponible en Windows 8 y versiones posteriores de Windows. |
de la plataforma de destino de | Universal |
encabezado de | ntddk.h (incluya Ntddk.h) |
biblioteca de | NtosKrnl.lib |
DLL de | NtosKrnl.exe |
irQL | PASSIVE_LEVEL (consulte la sección Comentarios) |