Win32 API 日本語リファレンス
ホーム › Devices.DeviceQuery › PDEV_QUERY_RESULT_CALLBACK

PDEV_QUERY_RESULT_CALLBACK

コールバック

シグネチャ

void PDEV_QUERY_RESULT_CALLBACK(
    HDEVQUERY hDevQuery,
    void* pContext,
    DEV_QUERY_RESULT_ACTION_DATA* pActionData
);

パラメーター

フィールド型説明
hDevQueryHDEVQUERYこのコールバックに関連付けられたクエリのハンドル。
pContextvoid*クエリの作成時にクライアントが指定した、省略可能なコンテキスト値。
pActionDataDEV_QUERY_RESULT_ACTION_DATA*クエリ状態の変更、または結果セットに適用されたアクションに関する情報を提供する DEV_QUERY_RESULT_ACTION_DATA 構造体。この構造体内のデータは、コールバックから戻った時点で解放されます。

公式ドキュメント

DevQuery のクエリ結果を受け取るコールバック関数に必要な関数プロトタイプです。

解説(Remarks)

1 つのクエリに対してアクティブになるコールバック関数は、常に 1 つだけです。同じコールバック関数を複数のクエリに渡した場合、それぞれ異なるクエリに対して呼び出されることがあるため、そのコールバック関数が同時に実行される可能性があります。

コールバックの内部で hDevQuery ハンドルに対して DevCloseObjectQuery を呼び出せるのは、クエリの作成時に DevQueryFlagAsyncClose フラグが指定されていた場合のみです。DevQueryFlagAsyncClose が指定されていなかった場合、クエリ自身のコールバックの内部からそのクエリに対して DevCloseObjectQuery を呼び出すと、デッドロックが発生します。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)