Bagikan melalui


SetupDiOpenDeviceInterfaceW (setupapi.h)

Fungsi SetupDiOpenDeviceInterface mengambil informasi tentang antarmuka perangkat dan menambahkan antarmuka ke informasi perangkat yang ditentukan yang ditetapkan untuk sistem lokal atau sistem jarak jauh.

Sintaksis

WINSETUPAPI BOOL SetupDiOpenDeviceInterfaceW(
  [in]            HDEVINFO                  DeviceInfoSet,
  [in]            PCWSTR                    DevicePath,
  [in]            DWORD                     OpenFlags,
  [out, optional] PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData
);

Parameter

[in] DeviceInfoSet

Penunjuk ke set informasi perangkat yang diatur yang berisi, atau akan berisi, elemen informasi perangkat yang mewakili perangkat yang mendukung antarmuka untuk dibuka.

[in] DevicePath

Penunjuk ke string yang dihentikan NULL yang menyediakan nama antarmuka perangkat yang akan dibuka. Nama ini adalah jalur perangkat Win32 yang biasanya diterima dalam struktur pemberitahuan PnP atau diperoleh dengan panggilan sebelumnya ke SetupDiEnumDeviceInterfaces dan fungsi terkaitnya.

[in] OpenFlags

Bendera yang menentukan bagaimana elemen antarmuka perangkat akan dibuka. Satu-satunya bendera yang valid adalah sebagai berikut:

DIODI_NO_ADD

Menentukan bahwa elemen informasi perangkat untuk perangkat yang mendasar tidak akan dibuat jika elemen tersebut belum ada dalam kumpulan informasi perangkat yang ditentukan. Untuk informasi selengkapnya, lihat bagian Komentar berikut ini.

[out, optional] DeviceInterfaceData

Penunjuk ke struktur SP_DEVICE_INTERFACE_DATA yang diinisialisasi pemanggil yang menerima data antarmuka yang diminta. Penunjuk ini bersifat opsional dan dapat NULL. Jika buffer disediakan, pemanggil harus mengatur cbSize anggota struktur ke sizeof(SP_DEVICE_INTERFACE_DATA) sebelum memanggil SetupDiOpenDeviceInterface. Untuk informasi selengkapnya, lihat bagian Komentar berikut ini.

Mengembalikan nilai

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

Komentar

Jika elemen antarmuka perangkat untuk antarmuka sudah ada di DeviceInfoSet, SetupDiOpenDeviceInterface memperbarui bendera. Oleh karena itu, fungsi ini dapat digunakan untuk memperbarui bendera untuk antarmuka perangkat. Misalnya, antarmuka mungkin tidak aktif ketika pertama kali dibuka, tetapi kemudian menjadi aktif. Jika elemen informasi perangkat untuk perangkat yang mendasar belum ada di DeviceInfoSet, fungsi ini membuatnya dan menambahkannya ke DeviceInfoSet.

Jika fungsi berhasil membuka antarmuka perangkat baru tetapi pemanggil tidak menyediakan struktur yang valid dalam parameter DeviceInterfaceData, fungsi akan mengembalikan FALSE dan panggilan berikutnya ke GetLastError akan mengembalikan ERROR_INVALID_USER_BUFFER. Namun, dalam situasi ini, SetupDiOpenDeviceInterface menambahkan antarmuka yang diminta ke set informasi perangkat.

Jika antarmuka perangkat baru berhasil dibuka, tetapi buffer DeviceInterfaceData yang disediakan pemanggil tidak valid, fungsi ini mengembalikan FALSE dan GetLastError mengembalikan ERROR_INVALID_USER_BUFFER. Kesalahan buffer pemanggil tidak mencegah antarmuka dibuka.

Jika bendera DIODI_NO_ADD ditentukan untuk parameter OpenFlags , dan elemen informasi perangkat untuk perangkat yang mendasar belum ada diinformasi perangkat yang ditentukan, fungsi ini mengembalikan FALSE dan GetLastError mengembalikan ERROR_NO_SUCH_DEVICE_INTERFACE.

Setelah aplikasi selesai menggunakan informasi yang SetupDiOpenDeviceInterface diambil, aplikasi harus memanggil SetupDiDeleteDeviceInterfaceData.

atribut MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_SYMBOLIC_LINK dapat diteruskan sebagai nilai argumen DevicePath dari fungsi SetupDiOpenDeviceInterface .

Nota

Header setupapi.h mendefinisikan SetupDiOpenDeviceInterface sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta preprosektor 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

Lihat juga

SetupDiDeleteDeviceInterfaceData

SetupDiEnumDeviceInterfaces