Condividi tramite


Aggiunta di una proprietà WMI

Le proprietà nelle classi WMI descrivono i dati relativi a un oggetto gestito. Ad esempio, Handle, ProcessIde PageFaults sono definiti come proprietà della classe Win32_Process e descrivono gli aspetti di un processo del sistema operativo. Per altre informazioni, vedere Scrivere un provider di proprietà.

Definizione di una proprietà in MOF

Una proprietà WMI rappresenta un aspetto o uno stato nell'oggetto . Invece di creare metodi che semplicemente ottengono e impostano un valore, è possibile creare una proprietà. Ad esempio, la proprietà NetEnabled di Win32_NetworkAdapter indica se lo stato dell'adattatore è abilitato o disabilitato. Tuttavia, i metodi Enable e Disable eseguono effettivamente l'azione di modifica dello stato dell'adattatore.

Una proprietà deve avere un tipo di dati. Il tipo di dati della proprietà Win32_ProcessHandle è stringa e il tipo di dati della proprietà PageFaults è uint32. Se una proprietà può avere solo due stati, il tipo di dati della proprietà viene in genere impostato su valore booleano.

La proprietà può anche essere una matrice. Ad esempio, la proprietà dell'identificatore di sicurezza (SID) di Win32_Trustee è una matrice di byte (uint8) che contiene il SID. Le proprietà possono contenere oggetti incorporati che fanno riferimento a una o più istanze di un'altra classe WMI. L'elenco di controllo di accesso discrezionale (DACL) e l'elenco di controllo di accesso di sistema (SACL) proprietà di Win32_SecurityDescriptor, ad esempio, sono matrici di oggetti Win32_ACE che descrivono i gruppi e gli account a cui è possibile accedere. La proprietà Group in Win32_SecurityDescriptor contiene un riferimento a una singola istanza di Win32_Trustee. Per ulteriori informazioni, vedere Incorporare oggetti in una classe.

Una proprietà può avere diversi qualificatori . Questi qualificatori di possono essere Common Information Model (CIM) o qualificatori WMI o possono essere specifici per determinati tipi di classi, ad esempio i qualificatori di contatore delle prestazioni . I qualificatori specificano un aspetto della proprietà, ad esempio se è di sola lettura o se non può essere modificato senza privilegi specifici. Un'applicazione che tenta di scrivere nella proprietà DACLdella Win32_SecurityDescriptor, ad esempio, richiede i privilegi SeSecurityPrivilege e SeRestorePrivilege. Per ulteriori informazioni, vedere Qualificatore, aggiunta.

Infine, una proprietà deve avere un nome. È possibile assegnare un nome a una proprietà all'interno dei limiti della pratica di programmazione standard. Esistono tuttavia due eccezioni principali. In primo luogo, non è possibile usare alcuna parola chiave MOF, ad esempio "classe", come nome di proprietà. In secondo luogo, non è possibile usare parole chiave WQL, ad esempio "group", come nome di proprietà. Per ulteriori informazioni sulle parole chiave MOF e WQL, vedere Tipi di dati MOF e WQL (SQL per WMI).

Sia per il codice C++ che per il codice MOF (Managed Object Format), si dichiarano le proprietà di una classe contestualmente alla dichiarazione della classe.

Per definire una proprietà

  • Includere il tipo di dato della proprietà, il nome, un valore predefinito facoltativo e un qualificatore nelle parentesi graffe della descrizione della classe.

    class MyClass 
    {
        [key] string   strProp;
        sint32         dwProp1 = 21;
        uint32         dwProp2;
    };
    

    La classe MyClass nell'esempio precedente ha tre proprietà: una stringa di caratteri, un intero con segno a 32 bit e un intero senza segno a 32 bit. A ogni proprietà viene assegnato un nome senza distinzione tra maiuscole e minuscole e un tipo di dati MOF.

    Il qualificatore definisce la proprietà di tipo stringa come proprietà chiave che identifica in modo univoco un'istanza della classe. Per ulteriori informazioni sui qualificatori, vedere Aggiunta di un qualificatore.

Creazione di una classe