Compartir a través de


estructura SP_DRVINFO_DETAIL_DATA_A (setupapi.h)

Una estructura SP_DRVINFO_DETAIL_DATA contiene información detallada sobre una estructura de información del controlador determinada.

Sintaxis

typedef struct _SP_DRVINFO_DETAIL_DATA_A {
  DWORD     cbSize;
  FILETIME  InfDate;
  DWORD     CompatIDsOffset;
  DWORD     CompatIDsLength;
  ULONG_PTR Reserved;
  CHAR      SectionName[LINE_LEN];
  CHAR      InfFileName[MAX_PATH];
  CHAR      DrvDescription[LINE_LEN];
  CHAR      HardwareID[ANYSIZE_ARRAY];
} SP_DRVINFO_DETAIL_DATA_A, *PSP_DRVINFO_DETAIL_DATA_A;

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 HardwareID búfer 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 hardwareID búfer es el identificador de hardware. Si este valor es menor o igual que 1, no hay ningún identificador de hardware.

CompatIDsLength

La longitud, en caracteres, de la lista CompatIDs a partir del desplazamiento CompatIDsOffset desde el principio del búfer de hardwareID de .

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 de sección básico 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]

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 de la sección modelos inf de .

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 cadena terminada en NULL única 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 offset CompatIDsOffset desde el principio de este búfer y finaliza con un carácter NULL adicional al final de la lista.

Observaciones

Los identificadores de hardware y identificadores compatibles para un dispositivo se especifican en la sección modelos inf de 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 de 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 double NULL terminado.

Por ejemplo, en función de cómo se especifica la lista de identificadores de hardware y identificadores compatibles en la sección modelos inf de , el búfer HardwareID puede parecerse 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 campos compatIDsLength para extraer el identificador de hardware de y 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 neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.

Requisitos

Requisito Valor
encabezado de setupapi.h (incluya Setupapi.h)

Consulte también

identificadores compatibles

de identificador de hardware de

sección INF DDInstall

sección modelos inf de

setupDiGetDriverInfoDetail