estructura de SP_DRVINFO_DETAIL_DATA_W (setupapi.h)
Una estructura de SP_DRVINFO_DETAIL_DATA contiene información detallada sobre una estructura de información de controlador determinada.
Sintaxis
typedef struct _SP_DRVINFO_DETAIL_DATA_W {
DWORD cbSize;
FILETIME InfDate;
DWORD CompatIDsOffset;
DWORD CompatIDsLength;
ULONG_PTR Reserved;
WCHAR SectionName[LINE_LEN];
WCHAR InfFileName[MAX_PATH];
WCHAR DrvDescription[LINE_LEN];
WCHAR HardwareID[ANYSIZE_ARRAY];
} SP_DRVINFO_DETAIL_DATA_W, *PSP_DRVINFO_DETAIL_DATA_W;
Miembros
cbSize
Tamaño, en bytes, de la estructura SP_DRVINFO_DETAIL_DATA.
InfDate
Fecha del archivo INF para este controlador.
CompatIDsOffset
Desplazamiento, en caracteres, desde el principio del búfer HardwareID donde comienza la lista CompatIDs.
Este valor también se puede usar para determinar si hay un identificador de hardware que precede a la lista CompatIDs. Si este valor es mayor que 1, la primera cadena del búfer hardwareID es el identificador de hardware. Si este valor es menor o igual que 1, no hay ningún identificador de hardware.
CompatIDsLength
Longitud, en caracteres, de la lista CompatIDs a partir del desplazamiento CompatIDsOffset desde el principio del búfer hardwareID .
Si CompatIDsLength es distinto de cero, la lista CompatIDs contiene una o varias cadenas terminadas en NULL con un carácter NULL adicional al final de la lista.
Si CompatIDsLength es cero, la lista CompatIDs está vacía. En ese caso, no hay ningún carácter NULL adicional al final de la lista.
Reserved
Reservado. Solo para uso interno.
SectionName[LINE_LEN]
Cadena terminada en NULL que contiene el nombre de la sección INF DDInstall para este controlador. Debe ser el nombre básico de la sección DDInstall , como InstallSec, sin extensiones específicas del sistema operativo o la arquitectura.
InfFileName[MAX_PATH]
Cadena terminada en NULL que contiene el nombre completo del archivo INF para este controlador.
DrvDescription[LINE_LEN]
Cadena terminada en NULL que describe el controlador.
HardwareID[ANYSIZE_ARRAY]
Un búfer que contiene una lista de identificadores (un identificador de hardware único seguido de una lista de identificadores compatibles). Estos identificadores corresponden al identificador de hardware y a los identificadores compatibles en la sección Modelos INF.
Cada identificador de la lista es una cadena terminada en NULL.
Si el identificador de hardware existe (es decir, si CompatIDsOffset es mayor que uno), esta única cadena terminada en NULL se encuentra al principio del búfer.
Si la lista CompatIDs no está vacía (es decir, si CompatIDsLength no es cero), la lista CompatIDs comienza en el desplazamiento CompatIDsOffset desde el principio de este búfer y finaliza con un carácter NULL adicional al final de la lista.
Comentarios
Los identificadores de hardware y los identificadores compatibles para un dispositivo se especifican en la sección Modelos INF en el orden siguiente:
- El primer identificador (si se especifica) es el identificador de hardware del dispositivo.
- Los identificadores restantes (si se especifican) son identificadores compatibles para el dispositivo.
Por ejemplo, en función de cómo se especifica la lista de identificadores de hardware e identificadores compatibles en la sección Modelos INF, el búfer HardwareID puede ser similar a cualquiera de los siguientes:
- \0
- <HWID>\0
- <HWID>\0<COMPATID_1>\0...<>COMPATID_N\0\0
- \0<COMPATID_1>\0...<>COMPATID_N\0\0
// parse the hardware ID, if it exists
if (CompatIDsOffset > 1)
{
// Parse for hardware ID from index 0.
// This is a single NULL-terminated string
}
// Parse the compatible IDs, if they exist
if (CompatIDsLength > 0)
{
// Parse for list of compatible IDs from CompatIDsOffset.
// This is a double NULL-terminated list of strings (i.e. MULTI-SZ)
}
Nota
El encabezado setupapi.h define SP_DRVINFO_DETAIL_DATA como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.
Requisitos
Requisito | Valor |
---|---|
Header | setupapi.h (incluya Setupapi.h) |