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 pengumpulan tautan koleksi tingkat atas yang berisi informasi tentang koleksi tautan tingkat atas.

Array pengumpulan tautan menjelaskan semua koleksi tautan yang terkandung dalam koleksi tingkat atas. Setiap koleksi tautan diwakili oleh struktur HIDP_LINK_COLLECTION_NODE . Simpul tautan array ditautkan dengan cara yang mengidentifikasi urutan berurutan dan hierarkisnya dalam koleksi tingkat atas. Elemen pertama dari array koleksi tautan mewakili koleksi tingkat atas dan anggota yang tersisa mewakili koleksi tautan 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 dengan koleksi tautan mereka. Ini dimungkinkan karena array kemampuan tombol koleksi tingkat atas dan array kemampuan nilai mengidentifikasi koleksi tautan yang berisi setiap penggunaan HID yang dijelaskan oleh array kemampuan.

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). Tabel berikut menunjukkan, untuk setiap koleksi tautan dalam contoh, tautan antara koleksi tingkat atas dan koleksi tautannya.

Tautkan Simpul Parent Anak-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 ini menyimpan:

  • Induk: Induk koleksi tautan adalah koleksi tepat di atasnya dalam hierarki koleksi 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 kandung berikutnya adalah saudara kandung segera ke kanan, jika ada, dalam satu set saudara kandung. Anggota NextSibling dari simpul koleksi tautan menentukan indeks untuk 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. Anggota FirstChild dari simpul 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 koleksi induk dengan, dimulai dengan anak pertama induk, mengurutkan melalui saudara kandung anak pertama sampai anggota NextSibling dari simpul saudara adalah nol.

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

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

Koleksi alias

Item pemisah dapat digunakan dalam pendeskripsi laporan untuk memisahkan sekumpulan koleksi alias. Setiap koleksi alias diwakili oleh simpul koleksi tautan alias. Sekumpulan n, n>=2, simpul alias yang lengkap dan unik ditautkan bersama dengan cara berikut:

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

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

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

Array kemampuan tombol dan array kemampuan nilai mengidentifikasi, untuk setiap penggunaan yang mereka jelaskan, koleksi tautan yang berisi penggunaan. Jika koleksi tautan diberi alias, array kemampuan menentukan penggunaan yang disukai.