UpdateDriverForPlugAndPlayDevicesW-Funktion (newdev.h)
Bei Einer INF-Datei und einer Hardware-ID installiert die UpdateDriverForPlugAndPlayDevices-Funktion aktualisierte Treiber für Geräte, die der Hardware-ID entsprechen.
Syntax
BOOL UpdateDriverForPlugAndPlayDevicesW(
[in, optional] HWND hwndParent,
[in] LPCWSTR HardwareId,
[in] LPCWSTR FullInfPath,
[in] DWORD InstallFlags,
[out, optional] PBOOL bRebootRequired
);
Parameter
[in, optional] hwndParent
Ein Handle für das Fenster der obersten Ebene, das für jede Benutzeroberfläche im Zusammenhang mit der Installation von Geräten verwendet werden soll.
[in] HardwareId
Ein Zeiger auf eine NULL-endende Zeichenfolge, die den Hardwarebezeichner bereitstellt, um vorhandene Geräte auf dem Computer abzugleichen. Die maximale Länge eines MIT NULL beendeten Hardwarebezeichners ist MAX_DEVICE_ID_LEN. Weitere Informationen zu Hardwarebezeichnern finden Sie unter Geräteidentifikationszeichenfolgen.
[in] FullInfPath
Ein Zeiger auf eine NULL-endende Zeichenfolge, die den vollständigen Pfaddateinamen einer INF-Datei bereitstellt. Die Dateien sollten sich auf dem Verteilungsmedium oder in einem vom Anbieter erstellten Verzeichnis befinden, nicht an einem Systemspeicherort wie %SystemRoot%\inf. UpdateDriverForPlugAndPlayDevices kopiert Treiberdateien an die entsprechenden Systemspeicherorte, wenn die Installation erfolgreich ist.
[in] InstallFlags
Ein vom Aufrufer bereitgestellter Wert, der mithilfe von OR erstellt wird, um null oder mehr der folgenden Bitflags zu kombinieren:
INSTALLFLAG_FORCE
Wenn dieses Flag festgelegt ist und die Funktion ein Gerät findet, das dem HardwareId-Wert entspricht, installiert die Funktion neue Treiber für das Gerät, unabhängig davon, ob auf dem Computer bereits bessere Treiber vorhanden sind.
INSTALLFLAG_READONLY
Wenn dieses Flag festgelegt ist, kopiert, benennt oder löscht die Funktion keine Installationsdateien. Die Verwendung dieses Flags sollte auf Umgebungen beschränkt sein, in denen der Dateizugriff eingeschränkt oder unmöglich ist, z. B. ein "eingebettetes" Betriebssystem.
INSTALLFLAG_NONINTERACTIVE
Wenn dieses Flag festgelegt ist, gibt die Funktion FALSE zurück, wenn versucht wird, die Benutzeroberfläche anzuzeigen. Legen Sie dieses Flag nur fest, wenn die Funktion von einer Komponente (z. B. einem Dienst) aufgerufen wird, die keine Benutzeroberfläche anzeigen kann.
[out, optional] bRebootRequired
Ein Zeiger auf eine BOOL-typisierte Variable, der angibt, ob ein Neustart erforderlich ist und wer dazu aufgefordert werden soll. Dieser Zeiger ist optional und kann NULL sein.
Wenn der Zeiger NULL ist, fordert UpdateDriverForPlugAndPlayDevices nach der Installation von Treibern bei Bedarf zum Neustart auf. Wenn der Zeiger angegeben wird, gibt die Funktion einen BOOLEschen Wert zurück, der TRUE ist, wenn das System neu gestartet werden soll. Es liegt dann in der Verantwortung des Aufrufers, zu einem Neustart aufzufordern.
Weitere Informationen finden Sie im folgenden Abschnitt "Hinweise" .
Rückgabewert
Die Funktion gibt TRUE zurück, wenn ein Gerät auf den angegebenen Treiber aktualisiert wurde.
Andernfalls wird FALSE zurückgegeben, und der protokollierte Fehler kann mit einem Aufruf von GetLastError abgerufen werden. Mögliche Fehlerwerte, die von GetLastError zurückgegeben werden, sind in der folgenden Tabelle enthalten.
Rückgabecode | Beschreibung |
---|---|
|
Der pfad, der für FullInfPath angegeben wurde, ist nicht vorhanden. |
|
Die aufrufende Anwendung ist eine 32-Bit-Anwendung, die versucht, in einer 64-Bit-Umgebung auszuführen, was nicht zulässig ist. |
|
Der für InstallFlags angegebene Wert ist ungültig. |
|
Der für HardwareId angegebene Wert stimmt mit keinem Gerät im System überein. Das heißt, das Gerät ist nicht angeschlossen. |
|
Die Funktion hat eine Übereinstimmung für den HardwareId-Wert gefunden, aber der angegebene Treiber war keine bessere Übereinstimmung als der aktuelle Treiber, und der Aufrufer hat das flag INSTALLFLAG_FORCE nicht angegeben. |
Hinweise
UpdateDriverForPlugAndPlayDevices überprüft die Geräte auf dem System und versucht, die von FullInfPath angegebenen Treiber für alle Geräte zu installieren, die dem angegebenen HardwareId-Wert entsprechen.
Das Standardverhalten besteht darin, die angegebenen Treiber nur zu installieren, wenn sie besser mit den derzeit installierten Treibern übereinstimmen und die angegebenen Treiber auch besser übereinstimmen als alle Treiber in %SystemRoot%\inf. Weitere Informationen finden Sie unter So wählt Windows Treiber aus.
UpdateDriverForPlugAndPlayDevices kann auch verwendet werden, um zu bestimmen, ob das Gerät mit dem angegebenen HardwareId-Wert eingesteckt ist. Weitere Informationen finden Sie unter Schreiben einer Geräteinstallationsanwendung.
UpdateDriverForPlugAndPlayDevices sendet eine IRP_MN_QUERY_REMOVE_DEVICE-Anforderung an das angegebene Gerät, alle untergeordneten Elemente des Geräts und alle anderen Geräte, die rekursiv Teil der Entfernungsbeziehungen für das Gerät sind. Wenn eines dieser Geräte bei einer Abfragelöschanforderung fehlschlägt, legt UpdateDriverForPlugAndPlayDevices das flag DI_NEEDREBOOT im Flags-Element der SP_DEVINSTALL_PARAMS-Struktur für das Gerät fest. Informationen zu Entfernungsbeziehungen finden Sie in der IRP_MN_QUERY_DEVICE_RELATIONS-Anforderung .
Im Allgemeinen sollten GeräteinstallationsanwendungenNULL für bRebootRequired bereitstellen. Daher initiiert das System bei Bedarf einen Neustart. Eine Anwendung sollte einen Zeigerwert nur in den folgenden Fällen angeben:
- Die Anwendung muss UpdateDriverForPlugAndPlayDevices mehrmals aufrufen, um eine Installation abzuschließen.
- Die Anwendung muss andere Vorgänge ausführen, bevor der Neustart (falls erforderlich) erfolgt.
- Die Anwendung ist ein Klasseninstallationsprogramm, das DI_NEEDREBOOT in SP_DEVINSTALL_PARAMS festlegen sollte, wenn ein Neustart erforderlich ist.
Wenn die Funktion ERROR_IN_WOW64 in einer 32-Bit-Anwendung zurückgibt, wird die Anwendung auf einem 64-Bit-System ausgeführt, was nicht zulässig ist. Weitere Informationen finden Sie unter Installieren von Geräten auf 64-Bit-Systemen.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar in Microsoft Windows 2000 und höheren Versionen von Windows. |
Zielplattform | Desktop |
Kopfzeile | newdev.h (include Newdev.h) |
Bibliothek | Newdev.lib |