Bagikan melalui


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.

Nilai Makna
SPOST_NONE
Tidak ada informasi media sumber yang disimpan dalam file .pnf. Nilai OEMSourceMediaLocation diabaikan dalam kasus ini.
SPOST_PATH
OEMSourceMediaLocation berisi jalur ke media sumber. Misalnya, jika media berada di floppy, jalur ini mungkin "A:\". Jika OEMSourceMediaLocationADALAH NULL, jalur diasumsikan sebagai jalur tempat .inf berada. Jika .inf memiliki .pnf yang sesuai di lokasi tersebut, informasi media sumber file .pnf ditransfer ke file .pnf tujuan.
SPOST_URL
OEMSourceMediaLocation berisi pencari sumber daya universal (URL) yang menentukan lokasi Internet tempat file .inf/driver diambil. Jika OEMSourceMediaLocationADALAH NULL, diasumsikan bahwa lokasi Code Download Manager default digunakan.

[in] CopyStyle

Menentukan bagaimana file .inf disalin ke direktori .inf. Bendera berikut dapat digabungkan.

Nilai Makna
SP_COPY_DELETESOURCE
Hapus file sumber pada salinan yang berhasil.
SP_COPY_REPLACEONLY
Salin hanya jika file ini sudah ada di direktori Inf. Bendera ini dapat digunakan untuk memperbarui informasi lokasi sumber untuk .inf yang ada.
SP_COPY_NOOVERWRITE
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.
SP_COPY_OEMINF_CATALOG_ONLY
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)

Lihat juga

Fungsi

Gambaran Umum

SetupUninstallOEMInf