IoWMIRegistrationControl 함수(wdm.h)
IoWMIRegistrationControl 루틴은 지정된 디바이스 개체에 대한 WMI 데이터 공급자로 호출자를 등록하거나 등록 취소합니다.
구문
NTSTATUS IoWMIRegistrationControl(
[in] PDEVICE_OBJECT DeviceObject,
[in] ULONG Action
);
매개 변수
[in] DeviceObject
디바이스 개체에 대한 포인터입니다. 이 개체는 DEVICE_OBJECT 시스템 구조입니다.
[in] Action
WMI가 수행해야 하는 작업입니다. 요청된 작업은 다음 값 중 하나로 표시됩니다.
작업 값 | 의미 |
---|---|
WMIREG_ACTION_REGISTER | WMI가 호출자를 DeviceObject에 대한 WMI 공급자로 등록하도록 지정합니다. 그러면 WMI가 드라이버에 IRP_MN_REGINFO 또는 IRP_MN_REGINFO_EX 요청을 보냅니다. |
WMIREG_ACTION_DEREGISTER | WMI가 DeviceObject에 대한 WMI 공급자 목록에서 호출자를 제거하도록 지정합니다. |
WMIREG_ACTION_REREGISTER | WMI가 드라이버의 등록을 취소한 다음 드라이버를 등록(다시 등록)되도록 지정합니다. 드라이버를 다시 등록하면 WMI가 드라이버에 IRP_MN_REGINFO 또는 IRP_MN_REGINFO_EX 요청을 보냅니다. |
WMIREG_ACTION_UPDATE_GUIDS | WMI가 데이터를 제공하는 새 GUID 식별자 목록을 드라이버에 다시 쿼리해야 한다고 지정합니다. 그러면 WMI가 드라이버에 IRP_MN_REGINFO 또는 IRP_MN_REGINFO_EX 요청을 보냅니다. |
반환 값
IoWMIRegistrationControl은 다음 목록에서 상태 코드를 반환합니다.
반환 코드 | 설명 |
---|---|
|
WMI가 오류 없이 요청된 작업을 완료했음을 나타냅니다. |
|
작업에 지정된 작업이 잘못되었음을 나타냅니다. |
|
NTSTATUS 값으로 지정된 이유로 요청이 실패했음을 나타냅니다. 실제 상태 반환 코드에 대한 자세한 내용은 Ntstatus.h를 참조하세요. |
설명
드라이버가 IoWMIRegistrationControl을 호출한 후 WMI는 드라이버가 WMI 에 정보를 제공할 수 있도록 드라이버에 IRP_MN_REGINFO 또는 IRP_MN_REGINFO_EX 요청을 보냅니다. 자세한 내용은 WMI 데이터 공급자로 등록을 참조하세요.
호출자가 작업에 대한 WMIREG_ACTION_DEREGISTER 지정하는 경우 IoWMIRegistrationControl 은 이전에 지정된 디바이스 개체로 전송된 모든 IRP_MJ_SYSTEM_CONTROL 요청이 완료될 때까지 호출 스레드를 차단합니다. 이러한 경우 드라이버가 IRP_MJ_SYSTEM_CONTROL 요청에 대한 디스패치 루틴 내에서 IoWMIRegistrationControl을 호출하면 호출 스레드가 교착 상태가 됩니다.
디바이스가 갑자기 제거된 경우(예: 깜짝 제거 시) PnP 관리자가 IRP_MN_SURPRISE_REMOVAL IRP를 보내도록 하는 경우 드라이버는 IoWMIRegistrationControl을 호출하고 호출 시 작업 에서 WMIREG_ACTION_DEREGISTER 지정해야 합니다. 드라이버가 IRP_MN_SURPRISE_REMOVAL IRP에 대한 응답으로 action이 WMIREG_ACTION_DEREGISTER 설정된 IoWMIRegistrationControl을 호출하는 경우 드라이버는 IRP_MN_REMOVE_DEVICEIRP에 대한 응답으로 IoWMIRegistrationControl에 대해 동일한 호출을 수행해서는 안됩니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000부터 사용할 수 있습니다. |
대상 플랫폼 | 유니버설 |
헤더 | wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI 규정 준수 규칙 | HwStorPortProhibitedDDIs(storport), IrqlIoPassive5(wdm), LowerDriverReturn(wdm), PowerIrpDDis(wdm) |