Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
[Fungsi ini tersedia untuk digunakan dalam sistem operasi yang ditunjukkan di bagian Persyaratan. Ini mungkin diubah atau tidak tersedia dalam versi berikutnya. SetupAPI tidak boleh lagi digunakan untuk menginstal aplikasi. Sebagai gantinya, gunakan Penginstal Windows untuk mengembangkan penginstal aplikasi. PenyetelanAPI terus digunakan untuk menginstal pengandar perangkat.]
Fungsi SetupCopyOEMInf
Pemanggil fungsi ini diperlukan memiliki hak administratif, jika tidak, fungsi gagal.
Sintaksis
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 null-terminated. Jalur ini tidak boleh melebihi ukuran MAX_PATH, termasuk penghentian NULL.
[in] OEMSourceMediaLocation
Informasi lokasi sumber yang akan disimpan di .inf (.pnf) yang telah dikompreilasi sebelumnya. Informasi lokasi ini khusus untuk jenis media sumber yang ditentukan. Anda harus menggunakan string null-terminated. Jalur ini tidak boleh melebihi ukuran MAX_PATH, termasuk penghentian NULL.
[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 | Arti |
|---|---|
|
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 katalog terkait file .inf 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
Penunjuk 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
[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 penghentian NULL. 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 dapat null.
[out, optional] DestinationInfFileNameComponent
Penunjuk ke string yang diatur setelah berhasil dikembalikan (atau ERROR_FILE_EXISTS) untuk menunjuk ke awal komponen nama file jalur yang disimpan dalam parameter DestinationInfFileName
Mengembalikan nilai
Fungsi ini mengembalikan WINSETUPAPI BOOL.
Komentar
Fungsi SetupCopyOEMInf
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.
Nota
Header setupapi.h mendefinisikan SetupCopyOEMInf sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta preprosedur 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
| Syarat | Nilai |
|---|---|
| klien minimum yang didukung | Windows XP [hanya aplikasi desktop] |
| server minimum yang didukung |
Windows Server 2003 [hanya aplikasi desktop] |
| Platform Target |
Windows |
| Header |
setupapi.h |
| Pustaka |
Setupapi.lib |
| DLL |
Setupapi.dll |
| set API |
ext-ms-win-setupapi-classinstallers-l1-1-2 (diperkenalkan di Windows 10, versi 10.0.14393) |
Lihat juga
Gambaran Umum