Fungsi SetupCopyOEMInfA (setupapi.h)
[Fungsi ini tersedia untuk digunakan dalam sistem operasi yang ditunjukkan di bagian Persyaratan. Ini dapat diubah atau tidak tersedia dalam versi berikutnya. SetupAPI tidak boleh lagi digunakan untuk menginstal aplikasi. Sebagai gantinya, gunakan Pemasang Windows untuk mengembangkan alat penginstal aplikasi. PenyetelanAPI terus digunakan untuk menginstal pengandar peranti.]
Fungsi SetupCopyOEMInf menyalin file .inf tertentu ke direktori %windir%/Inf.
Penelepon fungsi ini diperlukan memiliki hak istimewa administratif, jika tidak, fungsi gagal.
Sintaks
WINSETUPAPI BOOL SetupCopyOEMInfA(
[in] PCSTR SourceInfFileName,
[in] PCSTR OEMSourceMediaLocation,
[in] DWORD OEMSourceMediaType,
[in] DWORD CopyStyle,
[out, optional] PSTR DestinationInfFileName,
[in] DWORD DestinationInfFileNameSize,
[out, optional] PDWORD RequiredSize,
[out, optional] PSTR *DestinationInfFileNameComponent
);
Parameter
[in] SourceInfFileName
Jalur lengkap ke file .inf sumber. Anda harus menggunakan string yang dihentikan null. Jalur ini tidak boleh melebihi ukuran MAX_PATH , termasuk NULL yang mengakhiri.
[in] OEMSourceMediaLocation
Informasi lokasi sumber yang akan disimpan di .inf (.pnf) yang telah dikommpilasikan sebelumnya. Informasi lokasi ini khusus untuk jenis media sumber yang ditentukan. Anda harus menggunakan string yang dihentikan null. Jalur ini tidak boleh melebihi ukuran MAX_PATH , termasuk NULL yang mengakhiri.
[in] OEMSourceMediaType
Jenis media sumber yang dirujuk oleh informasi lokasi. Parameter ini mungkin salah satu nilai berikut.
[in] CopyStyle
Menentukan bagaimana file .inf disalin ke direktori .inf. Bendera berikut dapat digabungkan.
Nilai | Makna |
---|---|
|
Hapus file sumber pada salinan yang berhasil. |
|
Salin hanya jika file ini sudah ada di direktori Inf. Bendera ini dapat digunakan untuk memperbarui informasi lokasi sumber untuk .inf yang ada. |
|
Salin hanya jika file yang ditentukan saat ini tidak ada di direktori Inf. Jika .inf saat ini ada, API ini gagal dan GetLastError mengembalikan ERROR_FILE_EXISTS. Dalam hal ini, nama file .inf yang ada ditempatkan ke bidang yang sesuai di buffer output informasi file .inf tujuan. |
|
File .inf yang sesuai dengan file katalog yang ditentukan disalin ke %windir%\Inf. Jika bendera ini ditentukan, informasi nama file tujuan dimasukkan setelah berhasil dikembalikan jika file .inf yang ditentukan sudah ada di direktori Inf. |
[out, optional] DestinationInfFileName
Arahkan ke buffer untuk menerima nama file .inf yang ditetapkan padanya pada saat disalin ke direktori Inf. Buffer, jika ditentukan, biasanya harus MAX_PATH panjangnya. Jika bendera SP_COPY_NOOVERWRITE ditentukan dan fungsi SetupCopyOEMInf gagal dengan kode pengembalian ERROR_FILE_EXISTS, buffer ini berisi nama file .inf yang ada. Jika bendera SP_COPY_OEMINF_CATALOG_ONLY ditentukan, buffer ini berisi nama file .inf tujuan jika file .inf sudah ada di direktori Inf. Jika tidak, buffer ini diatur ke string kosong. Parameter ini bisa NULL.
[in] DestinationInfFileNameSize
Ukuran buffer DestinationInfFileName , dalam karakter, atau nol jika buffer tidak ditentukan. Jika DestinationInfFileName ditentukan dan ukuran buffer ini kurang dari ukuran yang diperlukan untuk mengembalikan nama file .inf tujuan (termasuk jalur lengkap), fungsi ini gagal. Dalam hal ini GetLastError mengembalikan ERROR_INSUFFICIENT_BUFFER.
[out, optional] RequiredSize
Penunjuk ke variabel yang menerima ukuran (dalam karakter) yang diperlukan untuk menyimpan nama file .inf tujuan termasuk NULL yang mengakhiri. Jika bendera SP_COPY_OEMINF_CATALOG_ONLY ditentukan, variabel ini menerima panjang string hanya jika file .inf sudah ada di direktori Inf. Jika tidak, variabel ini diatur ke nol. Parameter ini bisa NULL.
[out, optional] DestinationInfFileNameComponent
Penunjuk ke string yang diatur setelah pengembalian berhasil (atau ERROR_FILE_EXISTS) untuk menunjuk ke awal komponen nama file jalur yang disimpan dalam parameter DestinationInfFileName . Jika bendera SP_COPY_OEMINF_CATALOG_ONLY ditentukan, parameter DestinationInfFileName mungkin string kosong. Dalam hal ini, penunjuk karakter diatur ke NULL setelah berhasil dikembalikan. Parameter ini bisa NULL.
Mengembalikan nilai
Fungsi ini mengembalikan WINSETUPAPI BOOL.
Keterangan
Fungsi SetupCopyOEMInf menyalin file .inf tertentu ke direktori %windir%\Inf. SetupCopyOEMInf tidak memperbaiki file jika menemukan bahwa gambar biner dari file .inf yang ditentukan sudah ada di direktori Inf dengan nama yang sama atau nama formulir OEM*.inf. Saat SetupCopyOEMInf menyalin file, file akan mengganti nama file yang disalin menjadi OEM*.inf. Nama yang disediakan unik dan tidak dapat diprediksi.
SetupCopyOEMInf menggunakan prosedur berikut untuk menentukan apakah file .inf sudah ada di direktori Inf:
Semua file .inf dengan nama formulir OEM*.inf dijumlahkan dan file apa pun yang memiliki ukuran file yang sama dengan file .inf yang ditentukan dibandingkan biner.
Direktori Inf dicari untuk nama file sumber file .inf. Jika file .inf dengan nama yang sama ada dan berukuran sama dengan file .inf yang ditentukan, kedua file tersebut biner dibandingkan dengan menentukan apakah file tersebut identik.
Jika file .inf yang ditentukan sudah ada, pemeriksaan lebih lanjut dilakukan untuk menentukan apakah file .inf yang ditentukan berisi entri CatalogFile= di bagian [Versi] -nya. Jika ya, file .inf %windir%\Inf primary filename dengan ekstensi ".cat" digunakan untuk menentukan apakah katalog sudah diinstal. Jika ada katalog yang diinstal, tetapi tidak sama dengan katalog yang terkait dengan sumber .inf, ini tidak dianggap cocok dan enumerasi berlanjut. Dimungkinkan untuk memiliki beberapa file .inf yang identik dengan katalog unik yang terkandung dalam direktori %windir%\Inf. Jika kecocokan yang ada tidak ditemukan, file .inf dan .cat diinstal dengan nama baru dan unik.
File .inf OEM yang tidak menentukan entri CatalogFile= dianggap tidak valid sehubungan dengan verifikasi tanda tangan digital.
Dalam kasus di mana file .inf harus disalin ke direktori %windir%\Inf, kegagalan verifikasi tanda tangan digital dilaporkan.
Jika file .inf dan .cat sudah ada, nama file yang ada ini digunakan dan perilaku penggantian file didasarkan pada bendera CopyStyle yang ditentukan. Perilaku penggantian hanya mengacu pada informasi media sumber yang disimpan di .pnf. File .inf, .pnf, dan .cat yang ada tidak dimodifikasi.
Catatan
Header setupapi.h mendefinisikan SetupCopyOEMInf sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta pra-prosesor UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows XP [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2003 [hanya aplikasi desktop] |
Target Platform | Windows |
Header | setupapi.h |
Pustaka | Setupapi.lib |
DLL | Setupapi.dll |
Set API | ext-ms-win-setupapi-classinstallers-l1-1-2 (diperkenalkan dalam Windows 10, versi 10.0.14393) |