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를 완료할 때 PriorityBoost를 사용하여 IoCompleteRequest를 호출합니다. PriorityBoost에 대한 자세한 내용은 IoCompleteRequest를 참조하세요.
반환 값
Status가 STATUS_BUFFER_TOO_SMALL 설정되지 않은 경우 WmiCompleteRequest는 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 |