Freigeben über


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;

Angehörige

cbSize

Die Größe der SP_DRVINFO_DETAIL_DATA Struktur in Byte.

InfDate

Datum der INF-Datei für diesen Treiber.

CompatIDsOffset

Der Offset in Zeichen vom Anfang der HardwareID Puffer, 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" vorausgeht. 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 in Zeichen der Liste "CompatIDs" beginnend beim Offset CompatIDsOffset- vom Anfang des HardwareID- Puffers.

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

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

Reserved

Reserviert. Nur für die interne Verwendung.

SectionName[LINE_LEN]

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

InfFileName[MAX_PATH]

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

DrvDescription[LINE_LEN]

Eine MIT 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 Models.

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

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

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

Bemerkungen

Die Hardware-ID und kompatiblen I Ds 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 korrekt 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-Modelleangegeben werden, kann der HardwareID- Puffer einem der folgenden Ähneln ähneln:

  • \0
  • <HWID->\0
  • <HWID>\0<COMPATID_1>\0...<COMPATID_N>\0\0
  • \0<COMPATID_1>\0...<COMPATID_N>\0\0
Ein Algorithmus zum ordnungsgemäßen Analysieren dieses Puffers muss die CompatIDsOffset- und CompatIDsLength- Felder verwenden, um die Hardware-ID zu extrahieren und kompatible IDszu , 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)
}

Anmerkung

Der header setupapi.h 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 (include Setupapi.h)

Siehe auch

kompatible IDs

Hardware-ID

ABSCHNITT "INF DDInstall"

Abschnitt "INF-Modelle"

SetupDiGetDriverInfoDetail-