Bagikan melalui


Fungsi SetupGetBinaryField (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 SetupGetBinaryField mengambil data biner dari baris di bagian file INF, dari bidang yang ditentukan hingga akhir baris.

Sintaks

WINSETUPAPI BOOL SetupGetBinaryField(
  [in]      PINFCONTEXT Context,
  [in]      DWORD       FieldIndex,
  [in, out] PBYTE       ReturnBuffer,
  [in]      DWORD       ReturnBufferSize,
  [in, out] LPDWORD     RequiredSize
);

Parameter

[in] Context

Konteks INF untuk baris.

[in] FieldIndex

Indeks berbasis 1 dari bidang awal dalam baris yang ditentukan tempat data biner harus diambil. Data biner dibangun dari setiap bidang, dimulai pada titik ini hingga akhir baris. Setiap bidang sesuai dengan 1 byte dan berada dalam notasi heksadesimal. FieldIndex nol tidak valid dengan fungsi ini.

[in, out] ReturnBuffer

Penunjuk opsional ke buffer yang menerima data biner. Anda harus memastikan buffer tujuan berukuran sama atau lebih besar dari buffer sumber. Anda dapat memanggil fungsi sekali untuk mendapatkan ukuran buffer yang diperlukan, mengalokasikan memori yang diperlukan, lalu memanggil fungsi untuk kedua kalinya untuk mengambil data. Dengan menggunakan teknik ini, Anda dapat menghindari kesalahan karena ukuran buffer yang tidak memadai. Lihat bagian Keterangan.

[in] ReturnBufferSize

Ukuran buffer yang ditujukkan oleh ReturnBuffer, dalam karakter. Angka ini mencakup terminator null .

[in, out] RequiredSize

Penunjuk opsional ke variabel yang menerima ukuran yang diperlukan untuk buffer yang diacu ke ReturnBuffer, dalam karakter. Angka ini mencakup terminator null . Jika ukuran yang diperlukan lebih besar dari nilai yang ditentukan oleh ReturnBufferSize, fungsi gagal dan panggilan ke GetLastError mengembalikan ERROR_INSUFFICIENT_BUFFER.

Menampilkan nilai

Jika fungsi berhasil, nilai yang dikembalikan adalah nilai bukan nol.

Jika fungsi gagal, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.

GetLastError mengembalikan ERROR_INVALID_DATA jika bidang yang diambil SetupGetBinaryField bukan angka heksadesimal yang valid dalam rentang 0-FF.

Keterangan

Jika fungsi ini dipanggil dengan ReturnBufferNULL dan ReturnBufferSize nol, fungsi menempatkan ukuran buffer yang diperlukan untuk menyimpan data yang ditentukan ke dalam variabel yang ditunjukkan oleh RequiredSize. Jika fungsi berhasil dalam hal ini, nilai yang dikembalikan adalah nilai bukan nol. Jika tidak, nilai yang dikembalikan adalah nol dan informasi kesalahan yang diperluas dapat diperoleh dengan memanggil GetLastError.

Untuk lebih memahami cara kerja fungsi ini, pertimbangkan baris berikut dari file INF.

X=34,FF,00,13

Jika SetupGetBinaryField dipanggil pada baris sebelumnya, nilai biner 34, FF, 00, dan 13 akan dimasukkan ke dalam buffer yang ditentukan oleh ReturnBuffer.

Untuk versi Unicode dari fungsi ini, ukuran buffer ReturnBufferSize dan RequiredSize ditentukan dalam jumlah karakter. Angka ini mencakup terminator null . Untuk versi ANSI dari fungsi ini, ukuran ditentukan dalam jumlah byte.

Jika fungsi ini dipanggil dengan ReturnBufferNULL dan ReturnBufferSize nol, fungsi menempatkan ukuran buffer yang diperlukan untuk menyimpan data yang ditentukan ke dalam variabel yang ditunjukkan oleh RequiredSize. Jika fungsi berhasil dalam hal ini, nilai yang dikembalikan adalah nilai bukan nol. Jika tidak, nilai yang dikembalikan adalah nol dan informasi kesalahan yang diperluas dapat diperoleh dengan memanggil GetLastError.

Dengan demikian, Anda dapat memanggil fungsi sekali untuk mendapatkan ukuran buffer yang diperlukan, mengalokasikan memori yang diperlukan, lalu memanggil fungsi untuk kedua kalinya untuk mengambil data. Dengan menggunakan teknik ini, Anda dapat menghindari kesalahan karena ukuran buffer yang tidak memadai.

Persyaratan

   
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

Lihat juga

Fungsi

Gambaran Umum

SetupGetIntField

SetupGetMultiSzField

SetupGetStringField