Función IoWMIRegistrationControl (wdm.h)
La rutina IoWMIRegistrationControl registra o anula el registro del autor de la llamada como proveedor de datos WMI para un objeto de dispositivo especificado.
Sintaxis
NTSTATUS IoWMIRegistrationControl(
[in] PDEVICE_OBJECT DeviceObject,
[in] ULONG Action
);
Parámetros
[in] DeviceObject
Puntero a un objeto de dispositivo. Este objeto es una estructura del sistema DEVICE_OBJECT .
[in] Action
La acción que debe realizar WMI. La acción solicitada se indica mediante uno de los valores siguientes.
Valor de acción | Significado |
---|---|
WMIREG_ACTION_REGISTER | Especifica que WMI debe registrar el autor de la llamada como proveedor WMI para DeviceObject. Esto provocará que WMI envíe un IRP_MN_REGINFO o IRP_MN_REGINFO_EX solicitud al controlador. |
WMIREG_ACTION_DEREGISTER | Especifica que WMI debe quitar el autor de la llamada de su lista de proveedores WMI para DeviceObject. |
WMIREG_ACTION_REREGISTER | Especifica que WMI debe anular el registro del controlador y, a continuación, registrar (volver a registrar) el controlador. Al volver a registrar el controlador, WMI envía una solicitud de IRP_MN_REGINFO o IRP_MN_REGINFO_EX al controlador. |
WMIREG_ACTION_UPDATE_GUIDS | Especifica que WMI debe volver a consultar el controlador para obtener una nueva lista de identificadores GUID para los que proporciona datos. Esto provocará que WMI envíe un IRP_MN_REGINFO o IRP_MN_REGINFO_EX solicitud al controlador. |
Valor devuelto
IoWMIRegistrationControl devuelve un código de estado de la lista siguiente:
Código devuelto | Descripción |
---|---|
|
Indica que WMI completó la acción solicitada sin error. |
|
Indica que la acción, especificada en Action, no era válida. |
|
Indica que se produjo un error en la solicitud por el motivo especificado por el valor NTSTATUS. Consulte Ntstatus.h para obtener información detallada sobre el código de retorno de estado real. |
Comentarios
Una vez que un controlador llama a IoWMIRegistrationControl, WMI envía al controlador una solicitud de IRP_MN_REGINFO o IRP_MN_REGINFO_EX para que el controlador pueda proporcionar información a WMI. Para obtener más información, vea Registro como proveedor de datos WMI.
Si el autor de la llamada especifica WMIREG_ACTION_DEREGISTER para Action, IoWMIRegistrationControl hace que el subproceso que realiza la llamada se bloquee hasta que se hayan completado todas las solicitudes IRP_MJ_SYSTEM_CONTROL que se enviaron anteriormente al objeto de dispositivo especificado. En tal caso, si un controlador llama a IoWMIRegistrationControl dentro de una rutina de envío para una solicitud de IRP_MJ_SYSTEM_CONTROL , el subproceso que realiza la llamada interbloqueo.
Si un dispositivo se quita repentinamente (por ejemplo, en una eliminación sorpresa), lo que hace que el administrador de PnP envíe una IRP_MN_SURPRISE_REMOVAL IRP, el controlador debe llamar a IoWMIRegistrationControl y especificar WMIREG_ACTION_DEREGISTER en Acción en la llamada. Tenga en cuenta que si el controlador llama a IoWMIRegistrationControl con Action establecido en WMIREG_ACTION_DEREGISTER en respuesta a un IRP de IRP_MN_SURPRISE_REMOVAL , el controlador no debe realizar la misma llamada a IoWMIRegistrationControl en respuesta a un IRP de IRP_MN_REMOVE_DEVICE .
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Disponible a partir de Windows 2000. |
Plataforma de destino | Universal |
Encabezado | wdm.h (incluya Wdm.h, Ntddk.h, Ntifs.h) |
Library | NtosKrnl.lib |
Archivo DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Reglas de cumplimiento de DDI | HwStorPortProhibitedDDIs(storport), IrqlIoPassive5(wdm), LowerDriverReturn(wdm), PowerIrpDDis(wdm) |