Share via


SP_DRVINFO_DETAIL_DATA_A Struktur (setupapi.h)

Eine SP_DRVINFO_DETAIL_DATA-Struktur enthält detaillierte Informationen zu einer bestimmten Treiberinformationsstruktur.

Syntax

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;

Member

cbSize

Die Größe der SP_DRVINFO_DETAIL_DATA Struktur in Bytes.

InfDate

Datum der INF-Datei für diesen Treiber.

CompatIDsOffset

Der Offset in Zeichen vom Anfang des HardwareID-Puffers , in dem die Liste CompatIDs beginnt.

Dieser Wert kann auch verwendet werden, um zu bestimmen, ob eine Hardware-ID vorhanden ist, die der Liste "CompatIDs" vorangestellt ist. Wenn dieser Wert größer als 1 ist, ist die erste Zeichenfolge im HardwareID-Puffer die Hardware-ID. Wenn dieser Wert kleiner oder gleich 1 ist, gibt es keine Hardware-ID.

CompatIDsLength

Die Länge der CompatIDs-Liste in Zeichen, die beim Offset CompatIDsOffset ab dem Anfang des HardwareID-Puffers beginnt.

Wenn CompatIDsLength nonzero ist, enthält die CompatIDs-Liste eine oder mehrere NULL-Zeichenfolgen mit einem zusätzlichen NULL-Zeichen am Ende der Liste.

Wenn CompatIDsLength null ist, ist die CompatIDs-Liste leer. In diesem Fall befindet sich am Ende der Liste kein zusätzliches NULL-Zeichen.

Reserved

Reserviert. Nur zur internen Verwendung.

SectionName[LINE_LEN]

Eine NULL-beendete Zeichenfolge, die den Namen des INF DDInstall-Abschnitts für diesen Treiber enthält. Dies muss der grundlegende Name des DDInstall-Abschnitts sein, z. B . InstallSec, ohne betriebssystem-/architekturspezifische Erweiterungen.

InfFileName[MAX_PATH]

Eine NULL-beendete Zeichenfolge, die den vollqualifizierten Namen der INF-Datei für diesen Treiber enthält.

DrvDescription[LINE_LEN]

Eine NULL-beendete Zeichenfolge, die den Treiber beschreibt.

HardwareID[ANYSIZE_ARRAY]

Ein Puffer, der eine Liste von IDs enthält (eine einzelne Hardware-ID gefolgt von einer Liste kompatibler IDs). Diese IDs entsprechen der Hardware-ID und kompatiblen IDs im Abschnitt INF-Modelle.

Jede ID in der Liste ist eine NULL-beendete Zeichenfolge.

Wenn die Hardware-ID vorhanden ist (d. h. wenn CompatIDsOffset größer als eins ist), wird diese einzelne NULL-Zeichenfolge am Anfang des Puffers gefunden.

Wenn die CompatIDs-Liste nicht leer ist (d. h. wenn CompatIDsLength nicht 0 ist), beginnt die CompatIDs-Liste am Anfang dieses Puffers beim Offset CompatIDsOffset und wird am Ende der Liste mit einem zusätzlichen NULL-Zeichen beendet.

Hinweise

Die Hardware-ID und die kompatiblen IDs für ein Gerät werden im Abschnitt INF-Modelle in der folgenden Reihenfolge angegeben:

  • Die erste ID (sofern angegeben) ist die Hardware-ID für das Gerät.
  • Die restlichen IDs (sofern angegeben) sind kompatible IDs für das Gerät.
Wenn Sie den HardwareID-Puffer analysieren, müssen Sie sicherstellen, dass Sie das Ende der Daten im Puffer richtig bestimmen. Beachten Sie, dass der Puffer nicht unbedingt doppelt NULL beendet ist.

Je nachdem, wie die Liste der Hardware-ID und kompatiblen IDs im Abschnitt INF-Modelle angegeben werden, kann der HardwareID-Puffer beispielsweise wie folgt aussehen:

  • \0
  • <HWID>\0
  • <HWID>\0<COMPATID_1>\0...<>COMPATID_N\0\0
  • \0<COMPATID_1>\0...<>COMPATID_N\0\0
Ein Algorithmus, um diesen Puffer ordnungsgemäß zu analysieren, muss die Felder CompatIDsOffset und CompatIDsLength verwenden, um die Hardware-ID und kompatible IDs zu extrahieren, wie im folgenden Codebeispiel gezeigt:
// 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)
}

Hinweis

Der setupapi.h-Header definiert SP_DRVINFO_DETAIL_DATA als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit nicht codierungsneutralem Code kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
Header setupapi.h (einschließlich Setupapi.h)

Weitere Informationen

Kompatible IDs

Hardware-ID

ABSCHNITT INF DDInstall

Abschnitt "INF-Modelle"

SetupDiGetDriverInfoDetail