Fungsi SetupDiGetClassPropertyKeysExW (setupapi.h)

Fungsi SetupDiGetClassPropertyKeysEx mengambil array kunci properti perangkat yang mewakili properti perangkat yang diatur untuk kelas penyiapan perangkat atau kelas antarmuka perangkat di komputer lokal atau jarak jauh.

Sintaks

WINSETUPAPI BOOL SetupDiGetClassPropertyKeysExW(
  [in]            const GUID *ClassGuid,
  [out, optional] DEVPROPKEY *PropertyKeyArray,
  [in]            DWORD      PropertyKeyCount,
  [out, optional] PDWORD     RequiredPropertyKeyCount,
  [in]            DWORD      Flags,
  [in, optional]  PCWSTR     MachineName,
                  PVOID      Reserved
);

Parameter

[in] ClassGuid

Pointer ke GUID yang mewakili kelas penyiapan perangkat atau kelas antarmuka perangkat. SetupDiGetClassPropertyKeysEx mengambil array kunci properti perangkat yang mewakili properti perangkat yang diatur untuk kelas yang ditentukan. Untuk informasi tentang menentukan jenis kelas, lihat parameter Bendera .

[out, optional] PropertyKeyArray

Penunjuk ke buffer yang menerima array nilai yang diketik DEVPROPKEY, di mana setiap nilai adalah kunci properti perangkat yang mewakili properti perangkat yang diatur untuk kelas penyiapan perangkat. Penunjuk bersifat opsional dan dapat berupa NULL. Untuk informasi selengkapnya, lihat bagian Keterangan nanti dalam topik ini.

[in] PropertyKeyCount

Ukuran, dalam nilai jenis DEVPROPKEY, dari buffer PropertyKeyArray . Jika PropertyKeyArray diatur ke NULL, PropertyKeyCount harus diatur ke nol.

[out, optional] RequiredPropertyKeyCount

Penunjuk ke variabel berjenis DWORD yang menerima jumlah kunci properti yang diminta. Penunjuk bersifat opsional dan dapat diatur ke NULL.

[in] Flags

Salah satu nilai berikut, yang menentukan apakah akan mengambil kunci properti kelas untuk kelas penyiapan perangkat atau untuk kelas antarmuka perangkat.

DICLASSPROP_INSTALLER

ClassGuid menentukan kelas penyiapan perangkat. Bendera ini tidak dapat digunakan dengan DICLASSPROP_INTERFACE.

DICLASSPROP_INTERFACE

ClassGuid menentukan kelas antarmuka perangkat. Bendera ini tidak dapat digunakan dengan DICLASSPROP_INSTALLER.

[in, optional] MachineName

Penunjuk ke string yang dihentikan NULL yang berisi nama UNC, termasuk awalan "\", dari komputer. Penunjuk bisa NULL. Jika pointer adalah NULL, SetupDiGetClassPropertyKeysEx mengambil informasi yang diminta dari komputer lokal.

Perhatian

Menggunakan fungsi ini untuk mengakses komputer jarak jauh tidak didukung dimulai dengan Windows 8 dan Windows Server 2012, karena fungsi ini telah dihapus.

Reserved

Parameter ini harus diatur ke NULL.

Nilai kembali

SetupDiGetClassPropertyKeysEx mengembalikan TRUE jika berhasil. Jika tidak, ia mengembalikan FALSE, dan kesalahan yang dicatat dapat diambil dengan memanggil GetLastError.

Tabel berikut ini menyertakan beberapa kode kesalahan yang lebih umum yang mungkin dicatat fungsi ini.

Menampilkan kode Deskripsi
ERROR_INVALID_FLAGS
Nilai Bendera tidak valid.
ERROR_INVALID_CLASS
Jika bendera DICLASSPROP_INSTALLER ditentukan, kode kesalahan ini menunjukkan bahwa kelas penyiapan perangkat yang ditentukan oleh ClassGuid tidak ada.
ERROR_INVALID_REFERENCE_STRING
String referensi untuk antarmuka perangkat yang ditentukan oleh ClassGuild tidak valid. Kesalahan ini mungkin dikembalikan ketika bendera DICLASSPROP_INTERFACE ditentukan.
ERROR_INVALID_DATA
Nilai data yang tidak ditentukan tidak valid. Salah satu kemungkinannya adalah bahwa nilai ClassGuid tidak valid.
ERROR_INVALID_PARAMETER
Parameter yang tidak ditentukan tidak valid.
ERROR_INVALID_USER_BUFFER
Buffer pengguna tidak valid. Salah satu kemungkinan adalah bahwa PropertyKeyArray adalah NULL, dan PropertKeyCount bukan nol.
ERROR_INVALID_MACHINENAME
Nama komputer yang ditentukan oleh MachineName tidak valid.
ERROR_NO_SUCH_INTERFACE_CLASS
Jika bendera DICLASSPROP_INTERFACE ditentukan, kode kesalahan ini menunjukkan bahwa kelas antarmuka perangkat yang ditentukan oleh ClassGuid tidak ada.
ERROR_INSUFFICENT_BUFFER
Buffer PropertyKeyArray tidak cukup besar untuk menahan semua kunci properti, atau buffer data internal yang diteruskan ke panggilan sistem terlalu kecil.
ERROR_NOT_ENOUGH_MEMORY
Tidak tersedia cukup memori sistem untuk menyelesaikan operasi.
ERROR_ACCESS_DENIED
Pemanggil tidak memiliki hak istimewa Administrator.

Keterangan

SetupDiGetClassPropertyKeysEx adalah bagian dari model properti perangkat terpadu.

Pemanggil SetupDiGetClassPropertyKeysEx harus menjadi anggota grup Administrator untuk mengambil kunci properti perangkat untuk kelas perangkat.

Jika buffer PropertyKeyArray tidak cukup besar untuk menyimpan semua kunci properti yang diminta, SetupDiGetClassPropertyKeysEx tidak mengambil kunci properti apa pun dan mengembalikan ERROR_INSUFFICIENT_BUFFER. Jika penelepon menyediakan pointer RequiredPropertyKeyCount, SetupDiGetClassPropertyKeysEx menetapkan nilai *RequiredPropertyKeyCount ke ukuran yang diperlukan, dalam nilai yang diketik DEVPROPKEY, dari buffer PropertyKeyArray.

Untuk mengambil properti kelas perangkat di komputer jarak jauh, panggil SetupDiGetClassPropertyEx, dan untuk mengatur properti kelas perangkat di komputer jarak jauh, panggil SetupDiSetClassPropertyEx.

Untuk mengambil kunci properti untuk kelas penyiapan perangkat atau kelas antarmuka perangkat di komputer lokal, panggil SetupDiGetClassPropertyKeys.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tersedia di Windows Vista dan versi Windows yang lebih baru.
Target Platform DesktopUntuk universal, panggil CM_Get_Class_Property_Keys_Ex
Header setupapi.h (termasuk Setupapi.h)
Pustaka Setupapi.lib

Lihat juga

SetupDiGetClassPropertyEx

SetupDiGetClassPropertyKeys

SetupDiSetClassPropertyEx