Compartilhar via


estrutura SP_DRVINFO_DETAIL_DATA_A (setupapi.h)

Uma estrutura SP_DRVINFO_DETAIL_DATA contém informações detalhadas sobre uma estrutura de informações de driver específica.

Sintaxe

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;

Membros

cbSize

O tamanho, em bytes, da estrutura SP_DRVINFO_DETAIL_DATA.

InfDate

Data do arquivo INF para este driver.

CompatIDsOffset

O deslocamento, em caracteres, desde o início do hardwareID buffer em que a lista CompatIDs começa.

Esse valor também pode ser usado para determinar se há uma ID de hardware que precede a lista DepatIDs. Se esse valor for maior que 1, a primeira cadeia de caracteres no hardwareID buffer será a ID de hardware. Se esse valor for menor ou igual a 1, não haverá nenhuma ID de hardware.

CompatIDsLength

O comprimento, em caracteres, da lista CompatIDs começando no deslocamento CompatIDsOffset desde o início do buffer de hardwareID .

Se compatIDsLength não for zero, a lista CompatIDs conterá uma ou mais cadeias de caracteres terminadas em NULL com um caractere NULL adicional no final da lista.

Se compatIDsLength for zero, a lista CompatIDs estará vazia. Nesse caso, não há nenhum caractere NULL adicional no final da lista.

Reserved

Reservado. Somente para uso interno.

SectionName[LINE_LEN]

Uma cadeia de caracteres terminada em NULL que contém o nome da seção INF DDInstall para esse driver. Esse deve ser o nome básico da seção DDInstall, como InstallSec, sem extensões específicas do sistema operacional/arquitetura.

InfFileName[MAX_PATH]

Uma cadeia de caracteres terminada em NULL que contém o nome totalmente qualificado do arquivo INF para esse driver.

DrvDescription[LINE_LEN]

Uma cadeia de caracteres terminada em NULL que descreve o driver.

HardwareID[ANYSIZE_ARRAY]

Um buffer que contém uma lista de IDs (uma única ID de hardware seguida por uma lista de IDs compatíveis). Essas IDs correspondem à ID de hardware e às IDs compatíveis na seção modelos INF.

Cada ID na lista é uma cadeia de caracteres terminada em NULL.

Se a ID de hardware existir (ou seja, se compatIDsOffset for maior que uma), essa única cadeia de caracteres terminada por NULL será encontrada no início do buffer.

Se a lista CompatIDs não estiver vazia (ou seja, se CompatIDsLength não for zero), a lista CompatIDs começará no deslocamento compatIDsOffset do início desse buffer e será encerrada com um caractere NULL adicional no final da lista.

Observações

As IDs de hardware e compatíveis para um dispositivo são especificadas na seção modelos INF na seguinte ordem:

  • A primeira ID (se especificada) é a ID de hardware do dispositivo.
  • As IDs restantes (se especificadas) são IDs compatíveis para o dispositivo.
Ao analisar o hardwareID buffer, você deve garantir que determine corretamente o fim dos dados no buffer. Lembre-se de que o buffer não é necessariamente nulo duplo encerrado.

Por exemplo, dependendo de como a lista de ID de hardware e IDs compatíveis são especificadas na seção modelos inf , o buffer HardwareID pode ser semelhante a qualquer um dos seguintes:

  • \0
  • <HWID>\0
  • <HWID>\0<COMPATID_1>\0...<COMPATID_N>\0\0
  • \0<COMPATID_1>\0...<COMPATID_N>\0\0
Um algoritmo para analisar corretamente esse buffer deve usar os campos compatIDsOffset e CompatIDsLength para extrair os de ID de hardware e compatíveis, conforme mostrado no exemplo de código a seguir:
// 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

O cabeçalho setupapi.h define SP_DRVINFO_DETAIL_DATA como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.

Requisitos

Requisito Valor
cabeçalho setupapi.h (inclua Setupapi.h)

Consulte também

IDs compatíveis

de ID de Hardware

Seção INF DDInstall

seção modelos INF

SetupDiGetDriverInfoDetail