Condividi tramite


Flag di registrazione WMI

Un driver indica se un blocco usa nomi di istanza statici o dinamici e specifica altre caratteristiche del blocco impostando flag nella struttura WMIGUIDREGINFO o WMIREGGUID che passa a WMI per registrare il blocco.

Un driver indica che un blocco usa nomi di istanza statici impostando uno dei flag seguenti:

  • WMIREG_FLAG_INSTANCE_LIST indica che il driver fornisce tutti i nomi di istanza in un elenco statico.

    Un driver può impostare questo flag solo se registra blocchi gestendo le richieste di IRP_MN_REGINFO o IRP_MN_REGINFO_EX , non chiamando WmiSystemControl. Il driver scrive le stringhe del nome dell'istanza in corrispondenza dell'offset byte indicato da InstanceNameList nella struttura WMIREGGUID del blocco.

  • WMIREG_FLAG_INSTANCE_BASENAME indica a WMI di generare nomi di istanza statici da una stringa di nome di base definita dal driver.

    Un driver che gestisce un IRP_MN_REGINFOo IRP_MN_REGINFO_EX richiesta scrive la stringa del nome di base all'offset indicato da BaseNameOffset nella struttura WMIREGGUID del blocco.

    Un driver che chiama WmiSystemControl specifica la stringa del nome di base nel parametro InstanceName della routine DpWmiQueryReginfo .

  • WMIREG_FLAG_INSTANCE_PDO indica a WMI di generare nomi di istanza statici dall'ID istanza del dispositivo dell'oggetto PDO del driver.

    Un driver che gestisce un IRP_MN_REGINFO o IRP_MN_REGINFO_EX richiesta scrive un puntatore all'oggetto PDO nel membro Pdo della struttura WMIREGGUID del blocco. Se la richiesta è IRP_MN_REGINFO_EX, il driver deve aumentare il conteggio dei riferimenti su ogni oggetto PDO passato chiamando la routine ObReferenceObject . Il sistema dereferenzierà ogni OGGETTO PDO in un secondo momento.

    Un driver che chiama WmiSystemControl scrive un puntatore al pdO nel parametro Pdo della routine DpWmiQueryReginfo .

Per indicare che un blocco usa nomi di istanza dinamici, il driver non deve impostare uno dei flag seguenti: WMIREG_FLAG_INSTANCE_LIST, WMIREG_FLAG_INSTANCE_PDO o WMIREG_FLAG_INSTANCE_BASENAME.

Un driver indica che un blocco dati è costoso da raccogliere impostando WMIREG_FLAG_EXPENSIVE. In questo modo WMI indica a WMI di inviare una richiesta di IRP_MN_ENABLE_COLLECTION la prima volta che un client WMI apre il blocco dati e una richiesta di IRP_MN_DISABLE_COLLECTION quando l'ultimo client WMI chiude il blocco. Il driver non deve raccogliere dati per un blocco di questo tipo finché non riceve una richiesta di IRP_MN_ENABLE_COLLECTION .

Un driver indica un blocco di eventi impostando WMIREG_FLAG_EVENT_ONLY_GUID. Ciò indica che il blocco può essere abilitato o disabilitato solo come evento e non può essere sottoposto a query o set.

Un driver indica a WMI di rimuovere un blocco registrato in precedenza impostando WMIREG_FLAG_REMOVE_GUID. Questo flag è valido solo in risposta a una richiesta per aggiornare le informazioni di registrazione (IRP_MN_REGINFO o IRP_MN_REGINFO_EX con WMIUPDATE). Per altre informazioni, vedere Aggiornamento delle informazioni di registrazione WMI.