다음을 통해 공유


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은 다음 목록에서 상태 코드를 반환합니다.

반환 코드 설명
STATUS_SUCCESS
WMI가 오류 없이 요청된 작업을 완료했음을 나타냅니다.
STATUS_INVALID_PARAMETER
작업에 지정된 작업이 잘못되었음을 나타냅니다.
STATUS_XXX
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)

추가 정보

IRP_MN_REGINFO

IRP_MN_REGINFO_EX

IRP_MN_REMOVE_DEVICE

IRP_MN_SURPRISE_REMOVAL