Share via


SP_DRVINFO_DETAIL_DATA_W-Struktur (setupapi.h)

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

Syntax

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;

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 , an dem die CompatIDs-Liste 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, beginnend beim Offset CompatIDsOffset ab dem Anfang des HardwareID-Puffers .

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

Wenn CompatIDsLength null ist, ist die Liste CompatIDs 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 DDInstall-Abschnittsname 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-endende Zeichenfolge.

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

Wenn die Liste CompatIDs nicht leer ist (d. h. wenn CompatIDsLength nicht 0 ist), beginnt die CompatIDs-Liste am Anfang dieses Puffers mit offset CompatIDsOffset und wird mit einem zusätzlichen Zeichen NULL am Ende der Liste 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 verbleibenden 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.

Abhängig davon, 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 die kompatiblen 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 Code, der nicht Codierungsneutral ist, 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 (schließen Sie Setupapi.h ein)

Weitere Informationen

Kompatible IDs

Hardware-ID

ABSCHNITT "INF DDInstall"

Abschnitt "INF-Modelle"

SetupDiGetDriverInfoDetail