Bagikan melalui


SetupDiGetDeviceInterfaceDetailW (setupapi.h)

Fungsi SetupDiGetDeviceInterfaceDetail mengembalikan detail tentang antarmuka perangkat.

Sintaksis

WINSETUPAPI BOOL SetupDiGetDeviceInterfaceDetailW(
  [in]            HDEVINFO                           DeviceInfoSet,
  [in]            PSP_DEVICE_INTERFACE_DATA          DeviceInterfaceData,
  [out, optional] PSP_DEVICE_INTERFACE_DETAIL_DATA_W DeviceInterfaceDetailData,
  [in]            DWORD                              DeviceInterfaceDetailDataSize,
  [out, optional] PDWORD                             RequiredSize,
  [out, optional] PSP_DEVINFO_DATA                   DeviceInfoData
);

Parameter

[in] DeviceInfoSet

Penunjuk ke informasi perangkat yang berisi antarmuka untuk mengambil detailnya. Handel ini biasanya dikembalikan oleh SetupDiGetClassDevs.

[in] DeviceInterfaceData

Penunjuk ke struktur SP_DEVICE_INTERFACE_DATA yang menentukan antarmuka di DeviceInfoSet untuk mengambil detailnya. Penunjuk jenis ini biasanya dikembalikan oleh SetupDiEnumDeviceInterfaces.

[out, optional] DeviceInterfaceDetailData

Penunjuk ke struktur SP_DEVICE_INTERFACE_DETAIL_DATA untuk menerima informasi tentang antarmuka yang ditentukan. Parameter ini bersifat opsional dan dapat NULL. Parameter ini harus NULL jika DeviceInterfaceDetailSize adalah nol. Jika parameter ini ditentukan, pemanggil harus mengatur DeviceInterfaceDetailData.cbSize ke sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA) sebelum memanggil fungsi ini. Anggota cbSize selalu berisi ukuran bagian tetap dari struktur data, bukan ukuran yang mencerminkan string panjang variabel di akhir.

[in] DeviceInterfaceDetailDataSize

Ukuran buffer DeviceInterfaceDetailData. Buffer harus setidaknya (offsetof(SP_DEVICE_INTERFACE_DETAIL_DATA, DevicePath) + sizeof(TCHAR)) byte, untuk berisi bagian tetap dari struktur dan satu NULL untuk mengakhiri string MULTI_SZ kosong.

Parameter ini harus nol jika DeviceInterfaceDetailData NULL.

[out, optional] RequiredSize

Penunjuk ke variabel jenis DWORD yang menerima ukuran yang diperlukan dari buffer DeviceInterfaceDetailData. Ukuran ini mencakup ukuran bagian tetap dari struktur ditambah jumlah byte yang diperlukan untuk string jalur perangkat dengan panjang variabel. Parameter ini bersifat opsional dan dapat NULL.

[out, optional] DeviceInfoData

Penunjuk ke buffer yang menerima informasi tentang perangkat yang mendukung antarmuka yang diminta. Pemanggil harus mengatur DeviceInfoData.cbSize ke ukuran(SP_DEVINFO_DATA). Parameter ini bersifat opsional dan dapat NULL.

Mengembalikan nilai

SetupDiGetDeviceInterfaceDetail mengembalikan TRUE jika fungsi selesai tanpa kesalahan. Jika fungsi selesai dengan kesalahan, FALSE dikembalikan dan kode kesalahan untuk kegagalan dapat diambil dengan memanggil GetLastError.

Komentar

Menggunakan fungsi ini untuk mendapatkan detail tentang antarmuka biasanya merupakan proses dua langkah:

  1. Dapatkan ukuran buffer yang diperlukan. Panggil SetupDiGetDeviceInterfaceDetail dengan NULLDeviceInterfaceDetailData, DeviceInterfaceDetailDataSize nol, dan variabel RequiredSize yang valid. Sebagai respons terhadap panggilan seperti itu, fungsi ini mengembalikan ukuran buffer yang diperlukan pada RequiredSize dan gagal dengan GetLastError mengembalikan ERROR_INSUFFICIENT_BUFFER.
  2. Alokasikan buffer berukuran tepat dan panggil fungsi lagi untuk mendapatkan detail antarmuka.
Detail antarmuka yang dikembalikan oleh fungsi ini terdiri dari jalur perangkat yang dapat diteruskan ke fungsi Win32 seperti CreateFile. Jangan coba mengurai nama simbolis jalur perangkat. Jalur perangkat dapat digunakan kembali di seluruh sistem dimulai.

SetupDiGetDeviceInterfaceDetail dapat digunakan hanya untuk mendapatkanDeviceInfoData . Jika antarmuka ada tetapi DeviceInterfaceDetailData NULL, fungsi ini gagal, GetLastError mengembalikan ERROR_INSUFFICIENT_BUFFER, dan struktur DeviceInfoData diisi dengan informasi tentang perangkat yang mengekspos antarmuka.

Nota

Header setupapi.h mendefinisikan SetupDiGetDeviceInterfaceDetail sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta preprocessor 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 Tersedia di Microsoft Windows 2000 dan versi Windows yang lebih baru.
Platform Target Desktop
Header setupapi.h (termasuk Setupapi.h)
Pustaka Setupapi.lib
set API ext-ms-win-setupapi-classinstallers-l1-1-2 (diperkenalkan di Windows 10, versi 10.0.14393)

Lihat juga

SetupDiEnumDeviceInterfaces

SetupDiGetClassDevs