Netwerkmonitor-BLObs
Het binaire grote object (BLOB) van Network Monitor is een algemene gegevensstructuur die configuratie- en locatiegegevens van netwerkinterfacekaarten (NIC's) bevat. Gebruik BLOBs om NIC's te vertegenwoordigen en vermeldingen in een lijst met NIC's te filteren. BLOBS kunnen ook toepassingsspecifieke gegevens bevatten zonder dat dit van invloed is op de andere gegevens die ze bevatten. BLOB-implementatie is ondoorzichtig voor alle niveaus die toegang moeten hebben tot BLOBs met BLOB-API's.
BLOB-structuur
Een BLOB kan worden beschouwd als een hiƫrarchische structuur die wordt gebruikt om tekenreeksen aan te wijzen. Deze structuur heeft drie lagen: Eigenaar, Categorie en Tag. Eigenaar is een tekenreeks die in het algemeen aangeeft wie een vermelding leest. De categorie is ook een tekenreeks, die een algemene functionele groepering van tags onder de eigenaar aanwijst. De tag is de werkelijke naam van de vermelding.
De structurele kenmerken van BLOBs zijn onder andere:
- BLOB-helpers binnen het ene proces worden beschermd tegen elkaar door een mutex die is ingebouwd in elke BLOB.
- Elke BLOB heeft een intern versienummer, zodat de helpers zowel huidige als toekomstige BLOB-formulieren kunnen verwerken. Er kunnen versieconflicten optreden als u een BLOB naar een andere computer verzendt via een externe procedure-aanroep.
- De BLOB zelf is een aanwijzer naar een ongeldige waarde. Houd er rekening mee dat toepassingen BLOBs moeten toewijzen met de const modifier om te voorkomen dat de inhoud wordt gewijzigd.
- Elk van de ontwerpators, evenals hun waarden, zijn tekenreeksen. Houd er rekening mee dat de tekenreeksen die door GetString--functies worden geretourneerd, daadwerkelijk verwijzen naar de BLOB en niet mogen worden gewijzigd. Daarom moeten deze tekenreeksen worden opgegeven als const char**pX* om te voorkomen dat toepassingen ze per ongeluk wijzigen.
Over het algemeen raden alle parameters met de const aanroeper aan om af te zien van het wijzigen van de waarden in plaats van te verbieden dat de helperfuncties deze wijzigen. In feite veranderen de helperfuncties deze waarden meestal.