Rellenar una estructura de NDIS_GUID
Una estructura de NDIS_GUID se define de la siguiente manera:
typedef struct _NDIS_GUID {
GUID Guid;
union {
NDIS_OID Oid;
NDIS_STATUS Status;
};
ULONG Size;
ULONG Flags;
} NDIS_GUID, *PNDIS_GUID;
Para obtener un GUID para el miembro GUID de la estructura, puede ejecutar la aplicación Uuidgen.exe. Para obtener más información sobre esta aplicación, vea Generar UUID de interfaz.
El miembro Oid o Status es un ULONG que es un código OID. NDIS 6.0 no asigna indicaciones de estado personalizadas a guid de WMI.
Si la estructura NDIS_GUID asigna un OID que devuelve una matriz de elementos de datos, el miembro Size especifica el tamaño, en bytes, de cada elemento de datos de la matriz. Si los datos no son una matriz, el miembro Size especifica el tamaño de los datos. Si el tamaño de los elementos de datos es variable o si el OID no devuelve datos, el miembro Size debe ser -1.
Un OR bit a bit de los siguientes valores para el miembro Flags indica el tipo de datos que está asociado con el GUID:
fNDIS_GUID_TO_OID
Cuando se establece esta marca, la estructura de NDIS_GUID asigna un GUID a un OID.
fNDIS_GUID_TO_STATUS
Reservado para NDIS. Los controladores de minipuerto no deben usar esta marca.
fNDIS_GUID_ANSI_STRING
Cuando se establece esta marca, se proporciona una cadena ANSI terminada en null para el GUID.
fNDIS_GUID_UNICODE_STRING
Cuando se establece esta marca, se proporciona una cadena Unicode para el GUID.
fNDIS_GUID_ARRAY
Cuando se establece esta marca, se proporciona una matriz de elementos de datos para el GUID. El valor size especificado indica la longitud de cada elemento de datos de la matriz.
fNDIS_GUID_ALLOW_READ
Cuando se establece esta marca, todos los usuarios pueden usar este GUID para obtener información.
fNDIS_GUID_ALLOW_WRITE
Cuando se establece esta marca, todos los usuarios pueden usar este GUID para establecer información.
Nota De forma predeterminada, los GUID de WMI personalizados a los que proporciona un controlador de minipuerto solo son accesibles para los usuarios con privilegios de administrador. Un usuario con privilegios de administrador siempre puede leer o escribir en un GUID personalizado si el controlador de miniporte admite la operación de lectura o escritura para ese GUID. Puede establecer las marcas de fNDIS_GUID_ALLOW_READ y fNDIS_GUID_ALLOW_WRITE para permitir que todos los usuarios accedan a un GUID personalizado.
Tenga en cuenta que para todos los GUID personalizados que registra un controlador, el controlador debe establecer fNDIS_GUID_TO_OID. Los controladores de minipuerto nunca deben establecer fNDIS_GUID_TO_STATUS. Todas las demás marcas se pueden combinar mediante una operación OR bit a bit.