Bagikan melalui


struktur SP_DRVINFO_DETAIL_DATA_W (setupapi.h)

Struktur SP_DRVINFO_DETAIL_DATA berisi informasi terperinci tentang struktur informasi driver tertentu.

Sintaks

typedef struct _SP_DRVINFO_DETAIL_DATA_W {
  DWORD     cbSize;
  FILETIME  InfDate;
  DWORD     CompatIDsOffset;
  DWORD     CompatIDsLength;
  ULONG_PTR Reserved;
  WCHAR     SectionName[LINE_LEN];
  WCHAR     InfFileName[MAX_PATH];
  WCHAR     DrvDescription[LINE_LEN];
  WCHAR     HardwareID[ANYSIZE_ARRAY];
} SP_DRVINFO_DETAIL_DATA_W, *PSP_DRVINFO_DETAIL_DATA_W;

Anggota

cbSize

Ukuran, dalam byte, dari struktur SP_DRVINFO_DETAIL_DATA.

InfDate

Tanggal file INF untuk driver ini.

CompatIDsOffset

Offset, dalam karakter, dari awal buffer HardwareID tempat daftar CompatID dimulai.

Nilai ini juga dapat digunakan untuk menentukan apakah ada ID perangkat keras yang mendahului daftar CompatID. Jika nilai ini lebih besar dari 1, string pertama dalam buffer HardwareID adalah ID perangkat keras. Jika nilai ini kurang dari atau sama dengan 1, tidak ada ID perangkat keras.

CompatIDsLength

Panjangnya, dalam karakter, dari daftar CompatIDs mulai dari offset CompatIDsOffset dari awal buffer HardwareID .

Jika CompatIDsLength bukan nol, daftar CompatID berisi satu atau beberapa string yang dihentikan NULL dengan karakter NULL tambahan di akhir daftar.

Jika CompatIDsLength adalah nol, daftar CompatIDs kosong. Dalam hal ini, tidak ada karakter NULL tambahan di akhir daftar.

Reserved

Dicadangkan. Hanya untuk penggunaan internal.

SectionName[LINE_LEN]

String yang dihentikan NULL yang berisi nama bagian INF DDInstall untuk driver ini. Ini harus menjadi nama bagian DDInstall dasar, seperti InstallSec, tanpa ekstensi KHUSUS OS/arsitektur.

InfFileName[MAX_PATH]

String yang dihentikan NULL yang berisi nama lengkap file INF untuk driver ini.

DrvDescription[LINE_LEN]

String yang dihentikan NULL yang menjelaskan driver.

HardwareID[ANYSIZE_ARRAY]

Buffer yang berisi daftar ID (satu ID perangkat keras diikuti dengan daftar ID yang kompatibel). ID ini sesuai dengan ID perangkat keras dan ID yang kompatibel di bagian Model INF.

Setiap ID dalam daftar adalah string yang dihentikan NULL.

Jika ID perangkat keras ada (yaitu, jika CompatIDsOffset lebih besar dari satu), string tunggal yang dihentikan NULL ini ditemukan di awal buffer.

Jika daftar CompatIDs tidak kosong (yaitu, jika CompatIDsLength bukan nol), daftar CompatIDs dimulai pada offset CompatIDsOffset dari awal buffer ini, dan dihentikan dengan karakter NULL tambahan di akhir daftar.

Keterangan

ID perangkat keras dan ID yang kompatibel untuk perangkat ditentukan di bagian Model INF dalam urutan berikut:

  • ID pertama (jika ditentukan) adalah ID perangkat keras untuk perangkat.
  • ID yang tersisa (jika ditentukan) adalah ID yang kompatibel untuk perangkat.
Ketika Anda mengurai buffer HardwareID , Anda harus memastikan bahwa Anda menentukan akhir data dengan benar dalam buffer. Ketahuilah bahwa buffer belum tentu dua kali NULL dihentikan.

Misalnya, tergantung pada bagaimana daftar ID perangkat keras dan ID yang kompatibel ditentukan di bagian Model INF, buffer HardwareID dapat menyerupai salah satu hal berikut:

  • \0
  • <HWID>\0
  • <HWID>\0<COMPATID_1>\0...<>COMPATID_N\0\0
  • \0<COMPATID_1>\0...<>COMPATID_N\0\0
Algoritma untuk mengurai buffer ini dengan benar harus menggunakan bidang CompatIDsOffset dan CompatIDsLength untuk mengekstrak ID perangkat keras dan ID yang kompatibel, seperti yang ditunjukkan dalam contoh kode berikut:
// parse the hardware ID, if it exists
if (CompatIDsOffset > 1)
{
    // Parse for hardware ID from index 0. 
    // This is a single NULL-terminated string
}
 // Parse the compatible IDs, if they exist
if (CompatIDsLength > 0)
{
    // Parse for list of compatible IDs from CompatIDsOffset. 
    // This is a double NULL-terminated list of strings (i.e. MULTI-SZ)
}

Catatan

Header setupapi.h mendefinisikan SP_DRVINFO_DETAIL_DATA 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
Header setupapi.h (termasuk Setupapi.h)

Lihat juga

ID yang kompatibel

ID Perangkat Keras

Bagian Inf DDInstall

Bagian Model INF

SetupDiGetDriverInfoDetail