次の方法で共有


EVT_WDF_WMI_INSTANCE_QUERY_INSTANCE コールバック関数 (wdfwmi.h)

[KMDF にのみ適用]

ドライバーの EvtWmiInstanceQueryInstance コールバック関数は、WMI プロバイダーのインスタンス データを WMI クライアントに配信するためのバッファーにコピーします。

構文

EVT_WDF_WMI_INSTANCE_QUERY_INSTANCE EvtWdfWmiInstanceQueryInstance;

NTSTATUS EvtWdfWmiInstanceQueryInstance(
  [in]  WDFWMIINSTANCE WmiInstance,
  [in]  ULONG OutBufferSize,
  [in]  PVOID OutBuffer,
  [out] PULONG BufferUsed
)
{...}

パラメーター

[in] WmiInstance

WMI インスタンス オブジェクトへのハンドル。

[in] OutBufferSize

OutBuffer が指す出力バッファーのサイズ (バイト単位)。

[in] OutBuffer

出力バッファーへのポインター。

[out] BufferUsed

ドライバーが出力バッファーに配置するバイト数を受け取る場所へのポインター。 OutBufferSize パラメーターが指定する出力バッファー サイズが小さすぎる場合、ドライバーはこの場所を必要なバッファー サイズに設定します。

戻り値

OutBufferSize パラメーターの値がデータを受信するには出力バッファーが小さすぎることを示している場合、EvtWmiInstanceQueryInstance コールバック関数はSTATUS_BUFFER_TOO_SMALLを返す必要があります。 それ以外の場合、コールバック関数はデータをバッファーにコピーし、STATUS_SUCCESSを返す必要があります。

注釈

EvtWmiInstanceQueryInstance コールバック関数を登録するには、WdfWmiInstanceCreate を呼び出す前に、ドライバーが関数のアドレスを WDF_WMI_INSTANCE_CONFIG 構造体に配置する必要があります。

フレームワークは、ドライバーが指定したインスタンス データを WMI クライアントに送信する前に、必要なすべての WMI ヘッダー情報をデータに追加します。

ドライバーが WMI インスタンス オブジェクトのWDF_WMI_INSTANCE_CONFIG構造体の UseContextForQuery メンバーを読み取り専用データ ブロックの TRUE に設定した場合、ドライバーは EvtWmiInstanceQueryInstance コールバック関数を提供しません。

ドライバーが WMI クライアントに文字列データを提供する必要がある場合、ドライバーは WDF_WMI_BUFFER_APPEND_STRING 関数を呼び出して文字列を書式設定する必要があります。

EvtWmiInstanceQueryInstance コールバック関数の詳細については、「読み取り/書き込み WMI データ ブロックのサポート」および「Read-Only WMI データ ブロックのサポート」を参照してください。

フレームワークは、ドライバーの WMI イベント コールバック関数の呼び出しを相互に、またはドライバーの他のイベント コールバック関数と同期しません。 EvtWmiInstanceQueryInstance コールバック関数のデータが動的で、他のコールバック関数と共有されている場合、ドライバーはフレームワークの待機ロックまたはスピン ロックを使用してデータへのアクセスを同期できます。

WMI の詳細については、「 Framework-Based ドライバーでの WMI のサポート」を参照してください。

要件

要件
対象プラットフォーム ユニバーサル
最小 KMDF バージョン 1.0
Header wdfwmi.h (Wdf.h を含む)
IRQL PASSIVE_LEVEL

こちらもご覧ください

EvtWmiInstanceExecuteMethod

EvtWmiInstanceSetInstance

EvtWmiInstanceSetItem

EvtWmiProviderFunctionControl

WDF_WMI_BUFFER_APPEND_STRING

WDF_WMI_INSTANCE_CONFIG

WdfWmiInstanceCreate