SP_FILE_COPY_PARAMS_A 結構 (setupapi.h)
SP_FILE_COPY_PARAMS 結構描述單一檔案複製作業。
語法
typedef struct _SP_FILE_COPY_PARAMS_A {
DWORD cbSize;
HSPFILEQ QueueHandle;
PCSTR SourceRootPath;
PCSTR SourcePath;
PCSTR SourceFilename;
PCSTR SourceDescription;
PCSTR SourceTagfile;
PCSTR TargetDirectory;
PCSTR TargetFilename;
DWORD CopyStyle;
HINF LayoutInf;
PCSTR SecurityDescriptor;
} SP_FILE_COPY_PARAMS_A, *PSP_FILE_COPY_PARAMS_A;
成員
cbSize
結構的大小,以位元組為單位。 設定為 值:sizeof(SP_FILE_COPY_PARAMS)
。
QueueHandle
安裝程式檔案佇列的句柄,如 setupOpenFileQueue
SourceRootPath
此復本來源根目錄的選擇性指標,例如 A:。
SourcePath
相對於 SourceRootPath 路徑的選擇性指標,您可以在其中找到檔案。
SourceFilename
要複製之檔案的檔名部分。
SourceDescription
在磁碟提示期間使用之來源媒體描述的選擇性指標。
SourceTagfile
卷標檔案的選擇性指標,其存在 SourceRootPath 表示來源媒體是否存在。 如果未指定,檔案本身將會視需要做為標籤檔案。
TargetDirectory
要複製檔案的目錄。
TargetFilename
目標檔名的選擇性指標。 如果未指定,目標檔案的名稱會與原始程序檔相同。
CopyStyle
旗標,控制檔案複製作業的行為。 這些旗標可能是下列值的組合。
價值 | 意義 |
---|---|
|
成功複製時,請刪除來源檔案。 如果刪除失敗,則不會通知呼叫端。 |
|
只有在這樣做會覆寫目的地路徑上的檔案時,才複製檔案。 呼叫端未收到通知。 |
|
檢查所複製的每個檔案,以查看其版本資源是否表示其版本是否與目標上的現有複本相同或不是更新版本。
在版本檢查期間所使用的檔案版本資訊,是在 dwFileVersionMS 和 dwFileVersionLSVS_FIXEDFILEINFO 結構的成員中所指定,如版本函式所填入。 如果其中一個檔案沒有版本資源,或它們具有相同的版本資訊,則來源檔案會被視為較新。 如果原始程式檔在版本或更新版本中不相等,且已指定 CopyMsgHandler,呼叫端會收到通知,而且可能會取消複本。 如果未指定 CopyMsgHandler,則不會複製檔案。 |
|
檢查要複製的每個檔案,以查看其版本資源是否表示它不是比目標上現有的複本還新。 如果來源檔案較新,但不等於現有目標的版本,則會複製該檔案。 |
|
檢查目標檔案是否存在,如果是,請通知可能否決複本的呼叫端。 如果未指定 copyMsgHandler |
|
請勿解壓縮檔案。 設定此旗標時,目標檔案不會提供來源名稱的未壓縮形式(如果適當的話)。 例如,將 f:\x86\cmd.ex_複製到 \\install\temp 會導致目標檔案 \\install\temp\cmd.ex_。 如果未指定SP_COPY_NODECOMP旗標,則會解壓縮檔案,並將目標稱為 \\install\temp\cmd.exe。 DestinationName的檔名部分,如果指定,則會移除並以原始程式檔的檔名取代。 指定SP_COPY_NODECOMP時,無法檢查任何語言或版本資訊。 |
|
檢查所複製的每個檔案,以查看其語言是否與目標上任何現有檔案的語言不同。 若是如此,並指定 CopyMsgHandler,呼叫端會收到通知,而且可能會取消複本。 如果未指定 CopyMsgHandler,則不會複製檔案。 |
|
SourceFile 是完整的來源路徑。 請勿在 INF 檔案的 SourceDisksNames 區段中查閱。 |
|
SourcePathRoot 是來源檔案的完整路徑部分。 針對檔案所在的來源媒體,忽略 INF 檔案之 SourceDisksNames 區段中指定的相對來源。 如果指定SP_COPY_SOURCE_ABSOLUTE,則會忽略此旗標。 |
|
如果目標存在,則行為就像正在使用中,並將檔案排入佇列,以便在下一次系統重新啟動時複製。 |
|
如果檔案在複製作業期間正在使用中,請提醒使用者系統必須重新啟動。 |
|
請勿提供使用者略過檔案的選項。 |
|
檢查目標檔案是否存在,如果是,則不會覆寫檔案。 呼叫端未收到通知。 |
|
檢查每個正在複製的檔案,以查看其版本資源(或非映像檔案的時間戳)是否表示它不比目標上的現有複本還新。 如果複製的檔案不是較新檔案,則不會複製檔案。 呼叫端未收到通知。 |
|
如果用戶嘗試略過檔案,請警告他們略過檔案可能會影響安裝。 (用於系統關鍵檔案。) |
LayoutInf
要用來取得來源資訊的 INF 句柄。
SecurityDescriptor
選擇性的安全性描述元字串,指定要套用至檔案的 ACL。
言論
注意
setupapi.h 標頭會將SP_FILE_COPY_PARAMS定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
支援的最低伺服器 | Windows Server 2003 [僅限傳統型應用程式] |
標頭 | setupapi.h |