Dela via


Fastställa push- eller pull-status

Du kan modellera en klassprovider som en push- eller pull-provider, vilket anger hur en provider förväntar sig att interagera med WMI. Pull-leverantörer tar emot en begäran från WMI och uppfyller begäran antingen genom att generera data dynamiskt eller hämta dem från en lokal cache. Pull-leverantörer måste också implementera ett stort antal gränssnitt.

En pull-provider genererar klassdefinitioner dynamiskt. Vanligtvis ändras data som hanteras av en pull-provider ofta, vilket kräver att providern antingen genererar klassen dynamiskt eller hämtar klassen från en lokal cache när ett program utfärdar en begäran. En pull-provider måste implementera sina egna mekanismer för datahämtning, cache och händelsemeddelanden. Eftersom de flesta leverantörer är pull-leverantörer förutsätter dokumentationen i den här filen att du skapar en pull-provider om inget annat uttryckligen anges.

WMI använder däremot data i WMI-lagringsplatsen för att hantera alla programbegäranden för push-leverantörer. Push-leverantörer använder också färre gränssnittsmetoder och är därför enklare att implementera. En push-provider använder WMI-lagringsplatsen som ett lagringsområde för information om det hanterade objektet och uppdaterar informationen endast under initieringen. Till exempel modelleras WDM-klassprovidern som ingår i WMI-avsnittet i Microsoft Windows Software Development Kit (SDK) som en push-provider.

Genom att använda WMI-lagringsplatsen som ett lagringsområde får en push-provider följande fördelar jämfört med en pull-provider:

  • Providern behöver inte implementera en lokal cache för att lagra data.
  • Providern behöver inte ha stöd för datahämtning. I stället kan providern förlita sig på WMI för att tillhandahålla stöd för hämtning.
  • När ett program begär data som tillhandahålls av providern uppfyller WMI den begäran.
  • Providern kan också förlita sig på WMI för att stödja händelsemeddelanden.

Men eftersom en push-provider endast uppdateras under initieringen kanske ändringar i en klass inte återspeglas i WMI-lagringsplatsen under en viss tid. Därför fungerar push-providermodellen bäst med klasser som ändrar lite eller annars är helt statiska.