Bagikan melalui


Koleksi tautan

Koleksi tautan sebagai subkoleksi berlapis dalam koleksi tingkat atas. Koleksi tingkat atas dapat memiliki nol atau lebih koleksi tautan.

HidP_GetLinkCollectionNodes mengembalikan array kumpulan tautan koleksi tingkat atas yang berisi informasi tentang koleksi tautan tingkat atas.

Array koleksi tautan menggambarkan semua kumpulan tautan yang terdapat dalam koleksi tingkat atas. Setiap koleksi tautan diwakili oleh struktur HIDP_LINK_COLLECTION_NODE . Node tautan array dihubungkan dengan cara yang mengidentifikasi urutan berurutan dan hierarkisnya dalam koleksi lapisan atas. Elemen pertama dari array koleksi tautan mewakili koleksi tingkat atas dan anggota yang tersisa mewakili koleksi tautan dari koleksi tingkat atas.

Dengan menelusuri simpul dalam array koneksi tautan, aplikasi mode pengguna atau driver mode kernel dapat menentukan organisasi dan penggunaan semua koleksi tautan dalam koleksi tingkat atas. Selain itu, aplikasi atau driver dapat mengatur kontrol berdasarkan koleksi tautan mereka. Ini dimungkinkan karena array kapabilitas tombol koleksi tingkat atas dan array kapabilitas nilai mengidentifikasi koleksi tautan yang berisi setiap penggunaan HID yang dijelaskan oleh array kapabilitas.

Gambar berikut menunjukkan contoh koleksi tingkat atas yang berisi empat koleksi tautan.

Diagram yang mengilustrasikan koleksi tingkat atas yang berisi empat koleksi tautan.

Seperti yang ditunjukkan pada gambar sebelumnya, koleksi tautan ditautkan bersama dalam urutan atas-ke-bawah dan kiri-ke-kanan (ABCD). Untuk setiap koleksi tautan dalam contoh, tabel berikut menunjukkan tautan antara koleksi utama dan koleksi tautan yang dimilikinya.

Node Penghubung Orang tua Anak Anak Pertama Saudara Kandung Berikutnya
A Koleksi tingkat atas B, C B Tidak ada
B A D D C
C A Tidak ada Tidak ada Tidak ada
D B Tidak ada Tidak ada Tidak ada

Dalam array koleksi tautan, definisi berikut berlaku:

  • Induk: Koleksi induk dari koleksi tautan adalah koleksi yang tepat di atasnya dalam hierarki dari atas ke bawah. Koleksi tautan memiliki satu induk. Anggota induk dari simpul tautan menentukan indeks induknya dalam array kumpulan tautan.

  • Anak-anak: Koleksi tautan adalah anak dari induknya. Induk dapat memiliki nol atau lebih anak. Anggota NumberOfChildren dari simpul tautan menentukan jumlah anak yang dimiliki induk.

  • Saudara kandung: Anak orang tua adalah saudara kandung.

  • Saudara kandung berikutnya: Saudara kandung dipesan dari kiri ke kanan. Saudara berikutnya adalah saudara yang berada tepat di sebelah kanannya, jika ada, dalam satu set saudara. Anggota NextSibling dari simpul koleksi tautan menentukan indeks ke saudara kandung berikutnya dalam array koleksi tautan. Jika simpul koleksi tautan tidak memiliki saudara kandung berikutnya, NextSibling diatur ke nol.

  • Anak Pertama: Anak pertama adalah saudara kandung paling kiri dalam satu set saudara kandung. Elemen FirstChild dari node koleksi tautan menentukan indeks ke anak pertamanya dalam array koleksi tautan. Jika simpul koleksi tautan tidak memiliki anak, FirstChild diatur ke nol.

Aplikasi atau driver dapat menentukan semua anak dari koleksi induk dengan memulai dari anak pertama induk, kemudian mengurutkan antar saudara kandung sampai anggota NextSibling dari sebuah simpul saudara kandung adalah nol.

Kode berikut menunjukkan cara menggunakan indeks simpul koleksi tautan untuk menemukan anak pertama dari kumpulan tautan tujuh:

HIDP_LINK_COLLECTION_NODE Collection[10] ;
HIDP_LINK_COLLECTION_NODE Node1 ;
 
Node1 = Collection[Collection[7].FirstChild];

Koleksi yang diberi alias

Item pemisah dapat digunakan dalam deskriptor laporan untuk memisahkan sekumpulan koleksi alias. Setiap koleksi alias diwakili oleh nodus koleksi tautan alias. Serangkaian n dan n>=2, simpul teralias yang lengkap dan unik dihubungkan bersama dengan cara berikut:

  • Simpul alias berada dalam urutan berturut-turut dalam array koleksi tautan.

  • Node n-1 pertama mengatur anggota IsAlias mereka ke TRUE. Node ke-n segera setelah urutan seperti itu memiliki anggota IsAlias yang diatur ke FALSE. Simpul ini mengakhiri urutan simpul ber-alias. Penggunaan yang terkait dengan simpul ini adalah penggunaan yang diutamakan.

Aplikasi atau driver dapat menentukan koleksi mana yang dialias dengan menaikkan indeks array dari array koleksi tautan berulang kali untuk menemukan urutan tersebut.

Array kapabilitas tombol dan array kapabilitas nilai mengidentifikasi, untuk setiap penggunaan yang mereka jelaskan, koleksi tautan yang mencakup penggunaan tersebut. Jika koleksi tautan diberi alias, array kapabilitas menetapkan penggunaan yang disukai.