Función IoWMIRegistrationControl (wdm.h)
El IoWMIRegistrationControl rutina 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
Acción que debe realizar WMI. La acción solicitada se indica mediante uno de los siguientes valores.
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 una solicitud de IRP_MN_REGINFO o IRP_MN_REGINFO_EX 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 una solicitud de IRP_MN_REGINFO o IRP_MN_REGINFO_EX 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 Acción, 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. |
Observaciones
Después de que un controlador llame 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 Registrar como proveedor de datos WMI.
Si el autor de la llamada especifica WMIREG_ACTION_DEREGISTER para Action, IoWMIRegistrationControl hace que el subproceso de llamada se bloquee hasta que se hayan completado todas las solicitudes IRP_MJ_SYSTEM_CONTROL que se enviaron previamente al objeto de dispositivo especificado. En tal caso, si un controlador llama a IoWMIRegistrationControl dentro de una rutina de distribución para una solicitud de IRP_MJ_SYSTEM_CONTROL, el subproceso de llamada se interbloqueará.
Si un dispositivo se quita repentinamente (por ejemplo, en una eliminación sorpresa), lo que provoca que el administrador de PnP envíe un IRP de IRP_MN_SURPRISE_REMOVAL, 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 | Valor |
---|---|
cliente mínimo admitido | Disponible a partir de Windows 2000. |
de la plataforma de destino de | Universal |
encabezado de | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
biblioteca de | NtosKrnl.lib |
DLL de | NtosKrnl.exe |
irQL | PASSIVE_LEVEL |
reglas de cumplimiento de DDI | HwStorPortProhibitedDIs(storport), IrqlIoPassive5(wdm), LowerDriverReturn(wdm), PowerIrpDDis(wdm) |