Bagikan melalui


Mengambil Hubungan Perangkat

Di Windows Vista dan versi Windows yang lebih baru, model properti perangkat terpadu menyertakan properti relasi perangkat. Model properti perangkat terpadu menggunakan kunci properti untuk mewakili properti ini. Daftar hubungan yang diwakili dalam model properti perangkat terpadu adalah:

Windows Server 2003, Windows XP, dan Windows 2000 tidak mendukung kunci properti model properti terpadu. Namun, Anda dapat mengambil informasi yang sesuai dengan memanggil fungsi manajer konfigurasi Plug and Play (PnP). Untuk mempertahankan kompatibilitas dengan versi Windows yang lebih lama, Windows Vista dan versi yang lebih baru juga mendukung pemanggilan fungsi manajer konfigurasi PnP untuk mengambil properti hubungan perangkat. Namun, Anda harus menggunakan kunci properti dari model properti perangkat terpadu untuk mengakses properti relasi perangkat. Untuk informasi tentang cara menggunakan kunci properti untuk mengakses properti driver perangkat, lihat Mengakses Properti Instans Perangkat (Windows Vista dan Yang Lebih Baru).

Untuk informasi tentang cara mengakses properti hubungan perangkat di Windows Server 2003, Windows XP, dan Windows 2000, lihat topik berikut:

Mengambil Hubungan Ejeksi, Hubungan Penghapusan, dan Hubungan Daya, dan Hubungan Bus

Mengambil Induk Instans Perangkat

Mengambil Anak-Anak dari Instans Perangkat

Mengambil Saudara Dari Instans Perangkat

Mengambil Hubungan Ejeksi, Hubungan Penghapusan, dan Hubungan Daya, dan Hubungan Bus

Untuk mengambil informasi hubungan perangkat pada Windows Server 2003, Windows XP, dan Windows 2000, panggil CM_Get_Device_ID_List dan berikan nilai parameter berikut:

  • Atur pszFilter ke penunjuk ke string yang dihentikan NULL yang menentukan pengidentifikasi instans perangkat untuk mengambil informasi hubungan.

  • Atur Buffer ke penunjuk ke buffer yang menerima daftar pengidentifikasi instans perangkat yang dihentikan NULL. Daftar dihentikan oleh karakter NULL tambahan. Anda bisa mendapatkan ukuran buffer yang diperlukan dengan memanggil fungsi CM_Get_Device_ID_List_Size .

  • Atur BufferLen ke ukuran, dalam karakter, dari buffer Buffer .

  • Atur ulFlags ke salah satu bendera berikut untuk mengambil informasi hubungan yang sesuai:

    • CM_GETIDLIST_FILTER_EJECTIONRELATIONS

      Bendera CM_GETIDLIST_FILTER_EJECTIONRELATIONS mengambil relasi ejeksi, yang merupakan informasi yang sama yang disediakan oleh properti perangkat DEVPKEY_Device_EjectionRelations di Windows Vista dan versi yang lebih baru.

    • CM_GETIDLIST_FILTER_REMOVALRELATIONS

      Bendera CM_GETIDLIST_FILTER_REMOVALRELATIONS mengambil relasi penghapusan, yang merupakan informasi yang sama yang disediakan oleh properti perangkat DEVPKEY_Device_RemovalRelations di Windows Vista dan versi yang lebih baru.

    • CM_GETIDLIST_FILTER_POWERRELATIONS

      Bendera CM_GETIDLIST_FILTER_POWERRELATIONS mengambil relasi daya, yang merupakan informasi yang sama yang disediakan oleh properti perangkat DEVPKEY_Device_PowerRelations di Windows Vista dan versi yang lebih baru.

    • CM_GETIDLIST_FILTER_BUSRELATIONS

      Bendera CM_GETIDLIST_FILTER_BUSRELATIONS mengambil relasi bus, yang merupakan informasi yang sama yang disediakan oleh properti perangkat DEVPKEY_Device_BusRelations di Windows Vista dan versi yang lebih baru.

Jika panggilan ke CM_Get_Device_ID_List berhasil, CM_Get_Device_ID_List mengambil informasi hubungan yang diminta dan mengembalikan CR_SUCCESS. Jika tidak, CM_Get_Device_ID_List mengembalikan salah satu kode kesalahan dengan awalan "CR_" yang ditentukan dalam Cfgmgr32.h.

Mengambil Induk Instans Perangkat

Untuk mengambil pengidentifikasi instans perangkat dari perangkat induk di Windows Server 2003, Windows XP, dan Windows 2000, ikuti langkah-langkah berikut:

  1. Panggil fungsi CM_Get_Parent untuk mengambil handel instans perangkat ke perangkat induk instans perangkat.

  2. Panggil CM_Get_Device_ID untuk mengambil pengidentifikasi instans perangkat yang terkait dengan handel instans perangkat ke perangkat induk yang diambil oleh panggilan sebelumnya ke CM_Get_Parent.

Informasi yang diambil dengan menggunakan prosedur ini sama dengan yang diwakili oleh properti DEVPKEY_Device_Parent dalam model properti perangkat terpadu Windows Vista dan versi yang lebih baru.

Mengambil Anak-Anak dari Instans Perangkat

Untuk mengambil pengidentifikasi instans perangkat dari perangkat anak dari instans perangkat di Windows Server 2003, Windows XP, dan Windows 2000, ikuti langkah-langkah berikut:

  1. Panggil fungsi CM_Get_Child untuk mengambil handel instans perangkat ke perangkat anak pertama yang terkait dengan instans perangkat.

  2. Panggil CM_Get_Sibling sebanyak yang diperlukan untuk menghitung semua perangkat saudara dari perangkat anak pertama yang diambil oleh panggilan ke CM_Get_Child.

  3. Panggil CM_Get_Device_ID untuk mengambil pengidentifikasi instans perangkat yang terkait dengan handel instans perangkat yang dikembalikan oleh panggilan ke CM_Get_Child dan CM_Get_Sibling.

Informasi yang diambil dengan menggunakan prosedur ini sama dengan yang diwakili oleh properti DEVPKEY_Device_Children dalam model properti perangkat terpadu Windows Vista dan versi yang lebih baru.

Mengambil Saudara Dari Instans Perangkat

Untuk mengambil pengidentifikasi instans perangkat dari perangkat saudara dari instans perangkat Abc di Windows Server 2003, Windows XP, dan Windows 2000, ikuti langkah-langkah berikut:

  1. Panggil fungsi CM_Get_Parent untuk mengambil handel instans perangkat ke perangkat induk instans perangkat Abc.

  2. Panggil fungsi CM_Get_Child untuk mengambil handel instans perangkat ke perangkat anak pertama dari perangkat induk instans perangkat Abc.

  3. Panggil CM_Get_Sibling sebanyak yang diperlukan untuk menghitung semua perangkat saudara kandung dari perangkat anak pertama dari perangkat induk. Enumerasi ini juga akan mengembalikan handel ke instans perangkat Abc.

  4. Panggil CM_Get_Device_ID untuk mengambil pengidentifikasi instans perangkat yang terkait dengan handel instans perangkat yang dikembalikan oleh panggilan sebelumnya ke CM_Get_Sibling. Hapus handel ke instans perangkat Abc dari daftar perangkat saudara kandung dari perangkat anak pertama dari perangkat induk.

Informasi yang diambil dengan menggunakan prosedur ini sama dengan yang diwakili oleh properti DEVPKEY_Device_Siblings dalam model properti perangkat terpadu Windows Vista dan versi yang lebih baru. Jika panggilan fungsi CM_Xxx yang tercantum di bagian ini berhasil, fungsi CM_Xxx mengambil informasi yang diminta dan mengembalikan CR_SUCCESS. Jika tidak, fungsi CM_Xxx mengembalikan salah satu kode kesalahan dengan awalan "CR_" yang ditentukan dalam Cfgmgr32.h.