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
이벤트 블록에 여러 인스턴스가 있는 경우 는 instance 인덱스를 지정합니다.
[in] EventDataSize
EventData의 데이터 바이트 수를 지정합니다. 이벤트에 대한 데이터가 생성되지 않은 경우 EventData 는 0이어야 합니다.
[in, optional] EventData
드라이버가 이벤트에 대해 생성한 데이터를 포함하는 드라이버 할당 비페이지 버퍼에 대한 포인터입니다. 이벤트에 대한 데이터가 생성되지 않은 경우 EventData 는 NULL이어야 합니다. WMI는 드라이버의 추가 개입 없이 버퍼를 해제합니다.
반환 값
WmiFireEvent는 IoWmiWriteEvent에서 반환한 상태 전파하거나 이벤트에 대한 메모리를 할당할 수 없는 경우 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 |