WmiCompleteRequest 함수(wmilib.h)
WmiCompleteRequest 루틴은 드라이버가 DpWmiXxx 루틴에서 WMI 요청 처리를 완료했음을 나타냅니다.
통사론
NTSTATUS WmiCompleteRequest(
[in] PDEVICE_OBJECT DeviceObject,
[in, out] PIRP Irp,
[in] NTSTATUS Status,
[in] ULONG BufferUsed,
[in] CCHAR PriorityBoost
);
매개 변수
[in] DeviceObject
드라이버의 DEVICE_OBJECT대한 포인터입니다.
[in, out] Irp
IRP에 대한 포인터입니다.
[in] Status
IRP에 대해 반환할 상태를 지정합니다.
[in] BufferUsed
드라이버의 DpWmiXxx 루틴에 전달되는 버퍼에 필요한 바이트 수를 지정합니다. 버퍼가 너무 작으면 드라이버는 상태 STATUS_BUFFER_TOO_SMALL 설정하고 BufferUsed 반환하는 데 필요한 바이트 수로 설정합니다. 전달된 버퍼가 충분히 큰 경우 드라이버는 BufferUsed 실제로 사용된 바이트 수로 설정합니다.
[in] PriorityBoost
작업을 요청한 원래 스레드의 런타임 우선 순위를 증가시키는 시스템 정의 상수입니다. WMI는 IRP를 완료할 때 PriorityBoostIoCompleteRequest 호출합니다. PriorityBoost대한 자세한 내용은 IoCompleteRequest 참조하세요.
반환 값
WmiCompleteRequestStatus STATUS_BUFFER_TOO_SMALL 설정하지 않은 한 Status 매개 변수에 전달된 값을 반환합니다. 드라이버가 상태 STATUS_BUFFER_TOO_SMALL 같은 경우 WmiCompleteRequest WNODE_TOO_SMALL 구조를 빌드하고 STATUS_SUCCESS 반환합니다. WmiCompleteRequest 반환 값은 드라이버가 DpWmiXxx 루틴에서 반환해야 합니다.
발언
드라이버는 해당 루틴에서 다른 모든 처리를 완료한 후 또는 드라이버가 보류 중인 IRP에 대한 모든 처리를 완료한 후 DpWmiXxx 루틴에서 WmiCompleteRequest 호출합니다. WmiCompleteRequest 드라이버에서 반환된 데이터로 WNODE_XXX 채우고 IoCompleteRequest 호출하여 IRP를 완료합니다.
드라이버는 항상 DpWmiXxx 루틴에서 WmiCompleteRequest 반환 값을 반환해야 합니다.
드라이버는 DpWmiQueryRegInfo 루틴에서 WmiCompleteRequest 호출해서는 안됩니다.
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000부터 사용할 수 있습니다. |
대상 플랫폼 | 보편적 |
헤더 | wmilib.h(Wmilib.h 포함) |
라이브러리 | Wmilib.lib |
IRQL | <= DISPATCH_LEVEL |