Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Een linkverzameling als geneste subverzameling binnen een verzameling op het hoogste niveau. Een verzameling op het hoogste niveau kan nul of meer koppelingsverzamelingen bevatten.
HidP_GetLinkCollectionNodes retourneert een verzamelingmatrix op het hoogste niveau die informatie bevat over de koppelingsverzamelingen op het hoogste niveau.
Verzamelingmatrix koppelen
In een matrix voor koppelingsverzamelingen worden alle koppelingsverzamelingen in een verzameling op het hoogste niveau beschreven. Elke koppelingsverzameling wordt vertegenwoordigd door een HIDP_LINK_COLLECTION_NODE structuur. De koppelingsknooppunten van de matrix worden gekoppeld op een manier die de opeenvolgende en hiërarchische volgorde in een verzameling op het hoogste niveau identificeert. Het eerste element van een koppelingsverzamelingmatrix vertegenwoordigt een verzameling op het hoogste niveau en de resterende leden vertegenwoordigen de koppelingsverzamelingen op het hoogste niveau.
Door de knooppunten in de koppelingsverbindingsmatrix te traceren, kan een toepassing in de gebruikersmodus of het stuurprogramma voor kernelmodus de organisatie en het gebruik van alle koppelingsverzamelingen in een verzameling op het hoogste niveau bepalen. Daarnaast kan de toepassing of het stuurprogramma besturingselementen ordenen op basis van hun koppelingsverzameling. Dit is mogelijk omdat de knopmatrices en waardematrices van een verzameling op het hoogste niveau de koppelingsverzameling identificeren die elk HID-gebruik bevat dat wordt beschreven door de mogelijkheidsmatrices.
In de volgende afbeelding ziet u een voorbeeld van een verzameling op het hoogste niveau die vier koppelingsverzamelingen bevat.
Zoals aangegeven in de vorige afbeelding, worden koppelingsverzamelingen gekoppeld in een volgorde van boven naar beneden en van links naar rechts (ABCD). De volgende tabel geeft voor elke koppelingsverzameling in het voorbeeld de koppelingen tussen de verzameling op het hoogste niveau en de bijbehorende koppelingsverzamelingen aan.
| Node koppelen | Ouder | Kinderen | Eerste kind | Volgend broerelement |
|---|---|---|---|---|
| A | Verzameling op het hoogste niveau | B, C | B | Geen |
| B | A | D | D | C |
| C | A | Geen | Geen | Geen |
| D | B | Geen | Geen | Geen |
In een koppelingsarray gelden de volgende definities:
Ouder collectie: De ouder collectie van een linkverzameling is de verzameling direct boven deze in de boven-naar-beneden hiërarchie van verzamelingen. Linkverzamelingen hebben één bovenliggend element. Het bovenliggende lid van een koppelingsknooppunt geeft de index van het bovenliggende item op in de matrix van de koppelingsverzameling.
Kinderen: Een koppelingverzameling is een kind van zijn ouder. Een ouder kan nul of meer kinderen hebben. Het NumberOfChildren lid van een knoop geeft het aantal kinderen aan dat een ouder heeft.
Broer of zus: de kinderen van een ouder zijn broers en zussen.
Volgende broers en zussen: broers en zussen worden van links naar rechts geordend. Het volgende zusje van een broer of zus is het zusje direct rechts, indien aanwezig, in een set broers en zussen. Het NextSibling-lid van een linkverzamelingknooppunt specificeert de index naar zijn volgende sibling in de linkverzamelingarray. Als een koppelingsverzamelingsknooppunt geen volgend niveau heeft, wordt NextSibling ingesteld op nul.
Eerste kind: Het eerste kind is de meest linkse broer of zus in een groep broers en zussen. Het FirstChild-onderdeel van een node binnen een verbindingsverzameling specificeert de index naar zijn eerste kind in de verbindingsverzamelingsarray. Als een knooppunt voor koppelingverzameling geen kinderen heeft, wordt FirstChild ingesteld op 0.
Een toepassing of stuurprogramma kan alle kinderen van een bovenliggende verzameling bepalen door te beginnen met het eerste kind van de bovenliggende verzameling en vervolgens de volgorde te doorlopen van de andere kinderen tot de NextSibling-lid van een knooppunt nul is.
De volgende code laat zien hoe u een knooppuntindex van de koppelingsverzameling gebruikt om het eerste onderliggende element van koppelingsverzameling zeven te vinden.
HIDP_LINK_COLLECTION_NODE Collection[10] ;
HIDP_LINK_COLLECTION_NODE Node1 ;
Node1 = Collection[Collection[7].FirstChild];
Aliasverzamelingen
Scheidingselementen kunnen worden gebruikt in een rapportdescriptor om een set aliasverzamelingen af te bakenen. Elke aliasverzameling wordt vertegenwoordigd door een aliasknooppunt voor het verzamelen van koppelingen. Een volledige en unieke set n, n>=2, aliasknooppunten wordt op de volgende manier aan elkaar gekoppeld:
De aliasknooppunten bevinden zich in opeenvolgende volgorde in de matrix van de koppelingsverzameling.
De eerste n-1 knooppunten hebben hun IsAlias lid geconfigureerd op TRUE. Het nth knooppunt onmiddellijk na een dergelijke reeks heeft het IsAlias lid ingesteld op FALSE. Dit knooppunt beëindigt de reeks aliasknooppunten. Het gebruik dat aan dit knooppunt is gekoppeld, is het voorkeursgebruik.
Een toepassing of stuurprogramma kan bepalen welke verzamelingen een alias hebben door herhaaldelijk de matrixindex van een koppelingsverzamelingmatrix te verhogen om dergelijke reeksen te vinden.
Knopfunctiematrices en waardemogelijkhedenmatrices identificeren, voor elk gebruik dat ze beschrijven, de koppelingsverzameling die het gebruik bevat. Als een koppelingsverzameling een alias is, geven de mogelijkheidsmatrixen het voorkeursgebruik op.