SetupScanFileQueueW 関数 (setupapi.h)

[この機能は、[要件] セクションに示されているオペレーティング システムで使用できます。 今後のバージョンでは変更されるか、利用できなくなる場合もあります。 SetupAPI は、アプリケーションのインストールに使用されなくなりました。 代わりに、Windows インストーラーを使用してアプリケーション インストーラーを開発します。 SetupAPI は、引き続きデバイス ドライバーのインストールに使用されます。

SetupScanFileQueue 関数は、セットアップ ファイル キューをスキャンし、コピー リスト内の各ノードに対して操作を実行します。 操作は、フラグのセットによって指定されます。 この関数は、キューがコミットされる前または後に呼び出すことができます。

構文

WINSETUPAPI BOOL SetupScanFileQueueW(
  [in]  HSPFILEQ            FileQueue,
  [in]  DWORD               Flags,
  [in]  HWND                Window,
  [in]  PSP_FILE_CALLBACK_W CallbackRoutine,
  [in]  PVOID               CallbackContext,
  [out] PDWORD              Result
);

パラメーター

[in] FileQueue

コピー リストをスキャンまたは反復処理するセットアップ ファイル キューを処理します。

[in] Flags

ファイル キュー スキャン操作を制御するために組み合わせるフラグ。 SPQ_SCAN_FILE_PRESENCE、SPQ_SCAN_USE_CALLBACK、SPQ_SCAN_USE_CALLBACKEX、またはSPQ_SCAN_FILE_VALIDITYのいずれかを指定する必要があることに注意してください。

フラグ 説明
SPQ_SCAN_FILE_PRESENCE
コピー キュー内のターゲット ファイルは、ターゲットに既に存在します。
SPQ_SCAN_FILE_VALIDITY
コピー キュー内のターゲット ファイルは、有効な署名を持つターゲットに既に存在します。 Windows 2000 以降のバージョンで使用できます。
SPQ_SCAN_USE_CALLBACK
キューの各ノードのコールバック ルーチン。 コールバック ルーチンから 0 以外の値が返された場合、キュー処理は停止し、 SetupScanFileQueue は 0 を返します。 SPFILENOTIFY_QUEUESCAN通知コードを発行し、ターゲット パスへのポインターを Param1 として渡します。
SPQ_SCAN_USE_CALLBACKEX
キューの各ノードのコールバック ルーチン。 コールバック ルーチンから 0 以外の値が返された場合、キュー処理は停止し、 SetupScanFileQueue は 0 を返します。 SPFILENOTIFY_QUEUESCAN_EX通知を発行し、 FILEPATHS 構造体へのポインターを Param1 として渡します。 SPQ_SCAN_USE_CALLBACKEXは、ファイルに有効な署名があることを確認します。 Windows 2000 以降で使用できます。 Windows XP でのみ、このフラグとSPQ_SCAN_FILE_PRESENCEを組み合わせることで署名チェックをオフにすることができます。
SPQ_SCAN_INFORM_USER
キュー内のすべてのファイルが有効な署名のチェックを渡すときに指定されるフラグ。 SetupScanFileQueue は、操作でターゲットに既に存在するファイルが必要であることをユーザーに通知します。 SPQ_SCAN_FILE_PRESENCEまたはSPQ_SCAN_FILE_VALIDITYが指定されていない場合、このフラグは無視されます。 このフラグは、SPQ_SCAN_PRUNE_COPY_QUEUEまたはSPQ_SCAN_PRUNE_DELRENでは使用できません。
SPQ_SCAN_PRUNE_COPY_QUEUE
SPQ_SCAN_FILE_PRESENCEと組み合わせて、コピー キューから現在のエントリを削除します。 SPQ_SCAN_FILE_VALIDITYと組み合わせると、署名されたエントリがコピー キューから削除されます。 Windows 2000 以降で使用できます。 Windows XP でのみ、削除キューまたは名前変更キューにも指定されているファイルは、SPQ_SCAN_PRUNE_DELREN指定されていない限り排除されません。
SPQ_SCAN_USE_CALLBACK_SIGNERINFO
Windows XP 以降で使用できます。 通知SPFILENOTIFY_QUEUESCAN_SIGNERINFO発行し、param1 としてFILEPATHS_SIGNERINFO構造体へのポインターを渡します。 各ファイルで有効な署名を確認し、コールバック関数を使用して署名情報を報告します。
SPQ_SCAN_PRUNE_DELREN
SPQ_SCAN_FILE_PRESENCEまたはSPQ_SCAN_FILE_VALIDITYと組み合わせて、コピー キューにある削除キューまたは名前変更キューのエントリを削除します。 SPQ_SCAN_PRUNE_COPY_QUEUEと組み合わせると、コピー キューから削除されたファイルは、削除キューまたは名前変更キューにないファイルに制限されます。 Windows XP 以降で使用できます。

[in] Window

表示されるダイアログ ボックスを所有するウィンドウへの省略可能なハンドル。 Flags パラメーターにSPQ_SCAN_FILE_PRESENCEが含まれていない場合、または Flags にSPQ_SCAN_INFORM_USERが含まれていない場合、このパラメーターは使用されません。

[in] CallbackRoutine

コピー キューの各ノードで呼び出される FileCallback コールバック関数への省略可能なポインター。 コールバック関数に渡される通知コードは SPFILENOTIFY_QUEUESCANFlags にSPQ_SCAN_USE_CALLBACKが含まれている場合は、このパラメーターが必要です。

メモCallbackRoutine で指定されたコールバック ルーチンを指定する必要があります。 既定のキュー コールバック ルーチンでは 、SetupScanFileQueue はサポートされていません。
 

[in] CallbackContext

CallbackRoutine によって指されるコールバック ルーチンに渡される呼び出し元定義データを含むコンテキストへのオプションのポインター。

[out] Result

スキャン操作の結果を受け取る変数へのポインター。

戻り値

キュー内のすべてのノードが処理された場合、関数は 0 以外の値を返します。

SPQ_SCAN_USE_CALLBACK フラグが設定されている場合、 Result の値は 0 です。 CallbackRoutine によって指定されたコールバック ルーチンは、通知SPFILENOTIFY_QUEUESCAN送信されます。 CallbackRoutine.Param1 は、ターゲット パス情報を含む配列へのポインターを指定します。 ポインターは符号なし整数にキャストされており、コールバック ルーチンが情報にアクセスする前に、MAX_PATH要素の TCHAR 配列に再キャストする必要があります。 現在のキュー ノードが使用中で、システムが再起動されるまでコピーできない場合、CallbackRoutine.Param2 は SPQ_DELAYED_COPY に設定されます。 それ以外の場合、 CallbackRoutine.Param2 は値 0 を受け取ります。

SPQ_SCAN_USE_CALLBACKが設定されていない場合、の表に示すように、キューがプレゼンスまたは有効性チェックを渡したかどうかを示します。

リターン コード 説明
0
キューがチェックに失敗したか、チェックに合格しましたが、SPQ_SCAN_INFORM_USERが指定され、ユーザーはファイルの新しいコピーを必要とします。
1
キューはチェックを渡し、SPQ_SCAN_INFORM_USERが指定されている場合、ユーザーはコピーが必要ないことを示しました。 コピー キューが空で、削除キューまたは名前変更キューに要素がないため、呼び出し元はキューのコミットをスキップできます。
2
キューはチェックを渡し、SPQ_SCAN_INFORM_USERが指定されている場合、ユーザーはコピーが必要ないことを示しました。 コピー キューは空ですが、削除キューまたは名前変更キューに要素があるため、呼び出し元はキューのコミットをスキップできません。
 

エラーが発生した場合、またはコールバック関数から 0 以外の値が返された場合、関数は 0 を返します。 Result が 0 以外の場合は、キュー処理を停止したコールバック関数によって返される値です。 Result が 0 の場合、GetLastError の呼び出しによって拡張エラー情報を取得できます。

解説

注意

setupapi.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして SetupScanFileQueue を定義します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

   
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー setupapi.h
Library Setupapi.lib
[DLL] Setupapi.dll

関連項目

FileCallback

関数

概要

SetupCommitFileQueue

SetupDefaultQueueCallback