SetupGetInfDriverStoreLocationW-Funktion (setupapi.h)
Die SetupGetInfDriverStoreLocation-Funktion ruft den vollqualifizierten Dateinamen (Verzeichnispfad und Dateiname) einer INF-Datei im Treiberspeicher ab, die einer angegebenen INF-Datei im System-INF-Dateiverzeichnis oder einer angegebenen INF-Datei im Treiberspeicher entspricht.
Syntax
WINSETUPAPI BOOL SetupGetInfDriverStoreLocationW(
[in] PCWSTR FileName,
[in, optional] PSP_ALTPLATFORM_INFO AlternatePlatformInfo,
[in, optional] PCWSTR LocaleName,
[out] PWSTR ReturnBuffer,
[in] DWORD ReturnBufferSize,
[out, optional] PDWORD RequiredSize
);
Parameter
[in] FileName
Ein Zeiger auf eine NULL-beendete Zeichenfolge, die den Namen und optional den vollständigen Verzeichnispfad einer INF-Datei im System-INF-Dateiverzeichnis enthält. Alternativ ist dieser Parameter ein Zeiger auf eine NULL-beendete Zeichenfolge, die den vollqualifizierten Dateinamen (Verzeichnispfad und Dateiname) einer INF-Datei im Treiberspeicher enthält.
Weitere Informationen zum Angeben der INF-Datei finden Sie im folgenden Abschnitt Hinweise .
[in, optional] AlternatePlatformInfo
Ist für das System reserviert.
[in, optional] LocaleName
Ist für das System reserviert.
[out] ReturnBuffer
Ein Zeiger auf einen Puffer, in dem die Funktion eine NULL-beendete Zeichenfolge zurückgibt, die den vollqualifizierten Dateinamen der angegebenen INF-Datei enthält. Dieser Parameter kann auf NULL festgelegt werden. Die maximale unterstützte Pfadgröße ist MAX_PATH. Informationen zum Ermitteln der erforderlichen Größe des Puffers finden Sie im folgenden Abschnitt mit den Anmerkungen .
[in] ReturnBufferSize
Die Größe des von ReturnBuffer bereitgestellten Puffers in Zeichen.
[out, optional] RequiredSize
Ein Zeiger auf eine DWORD-typisierte Variable, die die Größe des ReturnBuffer-Puffers in Zeichen empfängt. Dieser Parameter ist optional und kann auf NULL festgelegt werden.
Rückgabewert
Wenn SetupGetInfDriverStoreLocation erfolgreich ist, gibt die Funktion TRUE zurück. Andernfalls gibt die Funktion FALSE zurück. Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen abzurufen.
Wenn die Größe des vollqualifizierten Dateinamens der angeforderten INF-Datei, einschließlich eines NULL-Abschlussators, größer als ReturnBufferSize ist, schlägt die Funktion fehl, und ein Aufruf von GetLastError gibt ERROR_INSUFFICIENT_BUFFER zurück.
Hinweise
Um die Größe des Rückgabepuffers zu ermitteln, der erforderlich ist, um den vollqualifizierten Dateinamen der angegebenen INF-Datei im Treiberspeicher zu enthalten, rufen Sie SetupGetInfDriverStoreLocation auf, und legen Sie ReturnBuffer auf NULL fest, ReturnBufferSize auf Null und geben Sie RequiredSize an. SetupGetInfDriverStoreLocation gibt die erforderliche Puffergröße in RequiredSize zurück.
Wenn die Geräteinstallation ein Treiberpaket im Treiberspeicher vorinstalliert, werden zwei Kopien der INF-Datei des Treiberpakets erstellt. Die Geräteinstallation installiert eine Kopie im System-INF-Verzeichnis und weist dieser Kopie der INF-Datei einen eindeutigen veröffentlichten Dateinamen des Formulars OEMnnn.inf zu. Die Geräteinstallation installiert eine zweite Kopie der INF-Datei im Treiberspeicher und weist zu, dass der ursprüngliche INF-Dateiname kopiert wird.
SetupGetInfDriverStoreLocation gibt den vollqualifizierten Dateinamen der INF-Datei im Treiberspeicher zurück, der der von FileName bereitgestellten INF-Datei entspricht, falls vorhanden. Dateiname muss den Dateinamen und optional den Verzeichnispfad einer INF-Datei im SystemINF-Verzeichnis angeben. Alternativ muss Dateiname den vollqualifizierten Dateinamen einer INF-Datei im Treiberspeicher angeben.
Angenommen, die INF-Datei für ein Treiberpaket lautet Myinf.inf, und für dieses Treiberpaket installiert die Geräteinstallation die INF-Datei OEM1.inf im System-INF-Verzeichnis C:\Windows\inf. Gehen Sie außerdem davon aus, dass bei der Geräteinstallation die entsprechende INF-Dateikopie C:\windows\system32\driverstore\filerepository\myinf_12345678\myinf.inf im Treiberspeicher installiert wird. In diesem Fall gibt die Funktion C:\windows\system32\driverstore\filerepository\myinf_12345678\myinf.inf zurück, wenn FileName eine der folgenden Zeichenfolgen bereitstellt: OEM1.inf, C:\Windows\inf\OEM1.inf oder C:\windows\system32\driverstore\filerepository\myinf_12345678\myinf.inf.
Klasseninstallationsprogramme und Co-Installer können SetupGetInfDriverStoreLocation verwenden, um auf Dateien in einem Treiberpaket zuzugreifen, das im Treiberspeicher vorinstalliert ist. Um den Pfad des Treiberpakets im Treiberspeicher zu bestimmen, führt das Installationsprogramm die folgenden Schritte aus:
- Rufen Sie SetupDiGetDriverInfoDetail auf, um eine SP_DRVINFO_DETAIL_DATA Struktur für einen Treiber abzurufen. Das InfFileName-Element dieser Struktur enthält den vollqualifizierten Dateinamen der Treiber-INF-Datei im System-INF-Verzeichnis.
- Rufen Sie SetupGetInfDriverStoreLocation auf , und geben Sie den vollqualifizierten Dateinamen der Treiber-INF-Datei an, die durch Aufrufen von SetupDiGetDriverInfoDetail abgerufen wurde. SetupGetInfDriverStoreLocation gibt den vollqualifizierten Dateinamen der Treiber-INF-Datei im Treiberspeicher zurück. Der Verzeichnispfadteil des vollqualifizierten Dateinamens der INF-Datei ist der Pfad der Treiberpaketdateien .
Hinweis
Der setupapi.h-Header definiert SetupGetInfDriverStoreLocation 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 |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar in Windows Vista und späteren Windows-Versionen. |
Zielplattform | Desktop |
Kopfzeile | setupapi.h (einschließlich Setupapi.h) |
Bibliothek | Setupapi.lib |