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.
Al analizar el búfer hardwareID , debe asegurarse de que determine correctamente el final de los datos en el búfer. Tenga en cuenta que el búfer no es necesariamente doble NULL terminado.

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
Un algoritmo para analizar correctamente este búfer debe usar los campos CompatIDsOffset y CompatIDsLength para extraer el identificador de hardware e identificadores compatibles, como se muestra en el ejemplo de código siguiente:
// 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)

Consulte también

Identificadores compatibles

Id. de hardware

Sección INF DDInstall

Sección modelos INF

SetupDiGetDriverInfoDetail