Riempimento di una struttura di NDIS_GUID
Una struttura NDIS_GUID è definita come segue:
typedef struct _NDIS_GUID {
GUID Guid;
union {
NDIS_OID Oid;
NDIS_STATUS Status;
};
ULONG Size;
ULONG Flags;
} NDIS_GUID, *PNDIS_GUID;
Per ottenere un GUID per il membro Guid della struttura, è possibile eseguire l'applicazione Uuidgen.exe. Per altre informazioni su questa applicazione, vedere Generazione di UUID dell'interfaccia.
Il membro Oid o Status è un oggetto ULONG che è un codice OID. NDIS 6.0 non esegue il mapping delle indicazioni di stato personalizzate ai GUID WMI.
Se la struttura NDIS_GUID esegue il mapping di un OID che restituisce una matrice di elementi di dati, il membro Size specifica le dimensioni, in byte, di ogni elemento di dati nella matrice. Se i dati non sono una matrice, il membro Size specifica le dimensioni dei dati. Se le dimensioni degli elementi di dati sono variabili o se l'OID non restituisce dati, il membro Size deve essere -1.
Un OR bit per bit dei valori seguenti per il membro Flags indica il tipo di dati associati al GUID:
fNDIS_GUID_TO_OID
Quando questo flag viene impostato, la struttura NDIS_GUID esegue il mapping di un GUID a un OID.
fNDIS_GUID_TO_STATUS
Riservato per NDIS. I driver miniport non devono usare questo flag.
fNDIS_GUID_ANSI_STRING
Quando questo flag è impostato, viene fornita una stringa ANSI con terminazione null per il GUID.
fNDIS_GUID_UNICODE_STRING
Quando questo flag è impostato, viene fornita una stringa Unicode per il GUID.
fNDIS_GUID_ARRAY
Quando questo flag è impostato, viene fornita una matrice di elementi di dati per il GUID. Il valore Size specificato indica la lunghezza di ogni elemento dati nella matrice.
fNDIS_GUID_ALLOW_READ
Quando questo flag è impostato, tutti gli utenti possono usare questo GUID per ottenere informazioni.
fNDIS_GUID_ALLOW_WRITE
Quando questo flag è impostato, tutti gli utenti possono usare questo GUID per impostare le informazioni.
Nota Per impostazione predefinita, i GUID WMI personalizzati forniti da un driver miniport sono accessibili solo agli utenti con privilegi di amministratore. Un utente con privilegi di amministratore può sempre leggere o scrivere in un GUID personalizzato se il driver miniport supporta l'operazione di lettura o scrittura per tale GUID. È possibile impostare i flag fNDIS_GUID_ALLOW_READ e fNDIS_GUID_ALLOW_WRITE per consentire a tutti gli utenti di accedere a un GUID personalizzato.
Si noti che per tutti i GUID personalizzati registrati da un driver, il driver deve impostare fNDIS_GUID_TO_OID. I driver miniport non devono mai impostare fNDIS_GUID_TO_STATUS. Tutti gli altri flag possono essere combinati usando un'operazione OR bit per bit.