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 をSTATUS_BUFFER_TOO_SMALLに設定し、 BufferUsed にデータを返すために必要なバイト数を設定します。 渡されたバッファーが十分な大きさの場合、ドライバーは BufferUsed を実際に使用されたバイト数に設定します。

[in] PriorityBoost

操作を要求した元のスレッドの実行時優先度をインクリメントするシステム定義の定数を指定します。 WMI は、IRP が完了すると、PriorityBoostIoCompleteRequest を呼び出します。 PriorityBoost の詳細については、「IoCompleteRequest」を参照してください。

戻り値

WmiCompleteRequest、Status が 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 以降で使用できます。
対象プラットフォーム ユニバーサル
Header wmilib.h (Wmilib.h を含む)
Library Wmilib.lib
IRQL <= DISPATCH_LEVEL

こちらもご覧ください

DpWmiExecuteMethod

DpWmiFunctionControl

DpWmiQueryDataBlock

DpWmiQueryReginfo

DpWmiSetDataBlock

DpWmiSetDataItem

IoCompleteRequest

WmiSystemControl