WmiFireEvent 함수(wmilib.h)

WmiFireEvent 루틴은 이벤트 알림을 요청한 데이터 소비자에게 배달을 위해 이벤트를 WMI로 보냅니다.

구문

NTSTATUS WmiFireEvent(
  [in]           PDEVICE_OBJECT DeviceObject,
  [in]           LPCGUID        Guid,
  [in]           ULONG          InstanceIndex,
  [in]           ULONG          EventDataSize,
  [in, optional] PVOID          EventData
);

매개 변수

[in] DeviceObject

드라이버의 DEVICE_OBJECT 대한 포인터입니다.

[in] Guid

이벤트 블록을 나타내는 GUID에 대한 포인터입니다.

[in] InstanceIndex

이벤트 블록에 여러 인스턴스가 있는 경우 인스턴스의 인덱스를 지정합니다.

[in] EventDataSize

EventData의 데이터 바이트 수를 지정합니다. 이벤트에 대한 데이터가 생성되지 않은 경우 EventData 는 0이어야 합니다.

[in, optional] EventData

드라이버가 이벤트에 대해 생성한 데이터를 포함하는 드라이버 할당되지 않은 버퍼에 대한 포인터입니다. 이벤트에 대해 생성된 데이터가 없는 경우 EventDataNULL이어야 합니다. WMI는 드라이버의 추가 개입 없이 버퍼를 해제합니다.

반환 값

WmiFireEventIoWmiWriteEvent에서 반환된 상태를 전파하거나 이벤트에 대한 메모리를 할당할 수 없는 경우 STATUS_INSUFFICIENT_RESOURCES 반환합니다.

설명

드라이버는 WmiFireEvent 를 호출하여 이벤트 알림을 요청한 모든 데이터 소비자에게 배달을 위해 WMI에 이벤트를 보냅니다. WmiFireEvent에 전달된 모든 포인터는 페이징되지 않은 풀과 같이 페이징할 수 없는 메모리를 가리킵니다.

드라이버는 이전에 드라이버의 DpWmiFunctionControl 루틴에서 사용하도록 설정된 경우에만 이벤트를 전송합니다. 이 루틴은 WMI가 IRP_MN_ENABLE_EVENT 요청을 처리하기 위해 호출합니다.

드라이버는 이벤트와 연결된 모든 데이터를 EventData의 버퍼에 씁니다. WMI는 데이터로 WNODE_SINGLE_INSTANCE 구조를 채우고 IoWmiWriteEvent 를 호출하여 이벤트를 전달합니다.

이벤트 추적에 대한 자세한 내용은 WMI 이벤트 추적을 참조하세요.

요구 사항

   
지원되는 최소 클라이언트 Windows 2000부터 사용할 수 있습니다.
대상 플랫폼 유니버설
헤더 wmilib.h(Wmilib.h 포함)
라이브러리 Wmilib.lib
IRQL <= DISPATCH_LEVEL

참고 항목

DpWmiFunctionControl

IRP_MN_ENABLE_EVENTS

WmiSystemControl