次の方法で共有


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 パラメーターが指定する出力バッファー サイズが小さすぎる場合、ドライバーはこの場所を必要なバッファー サイズに設定します。

戻り値

EvtWmiInstanceQueryInstance コールバック関数は、OutBufferSize パラメーターの値が、出力バッファーが小さすぎてデータを受信することが示されていない場合、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
ヘッダー wdfwmi.h (Wdf.h を含む)
IRQL PASSIVE_LEVEL

関連項目

EvtWmiInstanceExecuteMethod

EvtWmiInstanceSetInstance

EvtWmiInstanceSetItem

EvtWmiProviderFunctionControl

WDF_WMI_BUFFER_APPEND_STRING

WDF_WMI_INSTANCE_CONFIG

WdfWmiInstanceCreate