SetupScanFileQueueW-Funktion (setupapi.h)
[Diese Funktion steht für die Verwendung in den im Abschnitt "Anforderungen" angegebenen Betriebssystemen zur Verfügung. Sie kann in nachfolgenden Versionen geändert oder nicht verfügbar sein. SetupAPI sollte nicht mehr für die Installation von Anwendungen verwendet werden. Verwenden Sie stattdessen den Windows Installer zum Entwickeln von Anwendungsinstallationsprogrammen. SetupAPI wird weiterhin für die Installation von Gerätetreibern verwendet.]
Die SetupScanFileQueue--Funktion scannt eine Setupdateiwarteschlange und führt einen Vorgang für jeden Knoten in der Kopierliste aus. Der Vorgang wird durch eine Reihe von Flags angegeben. Diese Funktion kann entweder vor oder nach dem Commit der Warteschlange aufgerufen werden.
Syntax
WINSETUPAPI BOOL SetupScanFileQueueW(
[in] HSPFILEQ FileQueue,
[in] DWORD Flags,
[in] HWND Window,
[in] PSP_FILE_CALLBACK_W CallbackRoutine,
[in] PVOID CallbackContext,
[out] PDWORD Result
);
Parameter
[in] FileQueue
Behandeln Sie die Setupdateiwarteschlange, deren Kopierliste gescannt oder durchlaufen werden soll.
[in] Flags
Flags, die kombiniert werden sollen, um den Scanvorgang der Dateiwarteschlange zu steuern. Beachten Sie, dass entweder SPQ_SCAN_FILE_PRESENCE, SPQ_SCAN_USE_CALLBACK, SPQ_SCAN_USE_CALLBACKEX oder SPQ_SCAN_FILE_VALIDITY angegeben werden müssen.
Flagge | Bedeutung |
---|---|
|
Zieldateien in der Kopierwarteschlange sind bereits auf dem Ziel vorhanden. |
|
Zieldateien in der Kopierwarteschlange sind bereits mit gültigen Signaturen auf dem Ziel vorhanden. Verfügbar mit Windows 2000 und höheren Versionen. |
|
Rückrufroutine für jeden Knoten der Warteschlange. Wenn die Rückrufroutine einen Wert ungleich Null zurückgibt, wird die Warteschlangenverarbeitung beendet und SetupScanFileQueue null zurückgegeben. Ausgeben eines SPFILENOTIFY_QUEUESCAN Benachrichtigungscodes und übergeben Sie einen Zeiger auf den Zielpfad als Param1-. |
|
Rückrufroutine für jeden Knoten der Warteschlange. Wenn die Rückrufroutine einen Wert ungleich Null zurückgibt, wird die Warteschlangenverarbeitung beendet und SetupScanFileQueue null zurückgegeben. Ausgeben einer SPFILENOTIFY_QUEUESCAN_EX Benachrichtigung und Übergeben eines Zeigers an eine FILEPATHS- Struktur als Param1-. SPQ_SCAN_USE_CALLBACKEX überprüft außerdem, ob die Datei über eine gültige Signatur verfügt. Ab Windows 2000 verfügbar. Unter Windows XP können Sie die Signaturüberprüfung nur deaktivieren, indem Sie diese Kennzeichnung mit SPQ_SCAN_FILE_PRESENCE kombinieren. |
|
Flag angegeben, wenn alle Dateien in der Warteschlange die Überprüfung auf gültige Signaturen übergeben. SetupScanFileQueue informiert den Benutzer darüber, dass für den Vorgang Dateien erforderlich sind, die bereits auf dem Ziel vorhanden sind. Dieses Kennzeichen wird ignoriert, wenn SPQ_SCAN_FILE_PRESENCE oder SPQ_SCAN_FILE_VALIDITY nicht angegeben ist. Dieses Kennzeichen kann nicht mit SPQ_SCAN_PRUNE_COPY_QUEUE oder SPQ_SCAN_PRUNE_DELREN verwendet werden. |
|
In Kombination mit SPQ_SCAN_FILE_PRESENCE werden vorhandene Einträge aus der Kopierwarteschlange entfernt. In Kombination mit SPQ_SCAN_FILE_VALIDITY werden signierte Einträge aus der Kopierwarteschlange entfernt. Ab Windows 2000 verfügbar. Nur unter Windows XP werden Dateien, die auch in der Löschwarteschlange angegeben sind, oder umbenennen Warteschlangen nicht gelöscht, es sei denn, SPQ_SCAN_PRUNE_DELREN wird angegeben. |
|
Verfügbar ab Windows XP. Probleme SPFILENOTIFY_QUEUESCAN_SIGNERINFO Benachrichtigung und übergibt einen Zeiger an eine FILEPATHS_SIGNERINFO Struktur als Param1. Überprüft jede Datei auf eine gültige Signatur und meldet Signaturinformationen über die Rückruffunktion. |
|
In Kombination mit SPQ_SCAN_FILE_PRESENCE oder SPQ_SCAN_FILE_VALIDITY werden Einträge in der Lösch- oder Umbenennungswarteschlange entfernt, die sich auch in der Kopierwarteschlange befinden. In Kombination mit SPQ_SCAN_PRUNE_COPY_QUEUE werden Dateien, die aus der Kopierwarteschlange entfernt werden, auf Dateien beschränkt, die sich nicht in den Lösch- oder Umbenennenswarteschlangen befinden. Verfügbar ab Windows XP. |
[in] Window
Optionaler Handle für das Fenster für eigene Dialogfelder, die angezeigt werden. Dieser Parameter wird nicht verwendet, wenn der parameter Flags nicht SPQ_SCAN_FILE_PRESENCE enthält oder wenn Flags keine SPQ_SCAN_INFORM_USER enthält.
[in] CallbackRoutine
Optionaler Zeiger auf eine FileCallback- Rückruffunktion, die für jeden Knoten der Kopierwarteschlange aufgerufen werden soll. Der an die Rückruffunktion übergebene Benachrichtigungscode ist SPFILENOTIFY_QUEUESCAN. Dieser Parameter ist erforderlich, wenn Flags SPQ_SCAN_USE_CALLBACK enthält.
[in] CallbackContext
Optionaler Zeiger auf einen Kontext, der aufruferdefinierte Daten enthält, die an die Rückrufroutine übergeben werden, auf die von CallbackRoutineverwiesen wird.
[out] Result
Zeigen Sie auf eine Variable, die das Ergebnis des Scanvorgangs empfängt.
Rückgabewert
Die Funktion gibt einen Wert ungleich Null zurück, wenn alle Knoten in der Warteschlange verarbeitet wurden.
Wenn das SPQ_SCAN_USE_CALLBACK Flag festgelegt wurde, ist der Wert in Result 0. Die durch CallbackRoutine angegebene Rückrufroutine wird die Benachrichtigung SPFILENOTIFY_QUEUESCAN gesendet. CallbackRoutine.Param1 gibt einen Zeiger auf ein Array an, das die Zielpfadinformationen enthält. Der Zeiger wurde in eine nicht signierte ganze Zahl umgewandelt und muss in ein TCHAR-Array von MAX_PATH Elementen neu umgewandelt werden, bevor eine Rückrufroutine auf die Informationen zugreifen kann. CallbackRoutine.Param2 wird auf SPQ_DELAYED_COPY festgelegt, wenn der aktuelle Warteschlangenknoten verwendet wird und erst kopiert werden kann, wenn das System neu gestartet wird. Andernfalls übernimmt CallbackRoutine.Param2 den Wert 0.
Wenn SPQ_SCAN_USE_CALLBACK nicht festgelegt wurde, gibt Ergebnis- an, ob die Warteschlange die Anwesenheits- oder Gültigkeitsprüfung wie in der folgenden Tabelle gezeigt bestanden hat.
Rückgabecode | Beschreibung |
---|---|
|
Die Warteschlange hat die Überprüfung fehlgeschlagen oder die Prüfung bestanden, aber SPQ_SCAN_INFORM_USER angegeben wurde, und der Benutzer möchte neue Kopien der Dateien. |
|
Die Warteschlange hat die Prüfung bestanden, und wenn SPQ_SCAN_INFORM_USER angegeben wurde, hat der Benutzer angegeben, dass das Kopieren nicht erforderlich ist. Die Kopierwarteschlange ist leer und es gibt keine Elemente in den Lösch- oder Umbenennenswarteschlangen, sodass der Anrufer den Commit der Warteschlange überspringen kann. |
|
Die Warteschlange hat die Prüfung bestanden, und wenn SPQ_SCAN_INFORM_USER angegeben wurde, hat der Benutzer angegeben, dass das Kopieren nicht erforderlich ist. Die Kopierwarteschlange ist leer, aber es gibt Elemente in den Lösch- oder Umbenennungswarteschlangen, sodass der Anrufer den Commit der Warteschlange nicht überspringen kann. |
Die Funktion gibt null zurück, wenn ein Fehler aufgetreten ist oder wenn die Rückruffunktion ungleich Null zurückgegeben hat. Wenn Ergebnis- ungleich Null ist, handelt es sich um den Wert, der von der Rückruffunktion zurückgegeben wird, die die Warteschlangenverarbeitung beendet hat. Wenn Ergebnis- null ist, können erweiterte Fehlerinformationen durch einen Aufruf von GetLastErrorabgerufen werden.
Bemerkungen
Anmerkung
Der Header setupapi.h definiert SetupScanFileQueue als Alias, der automatisch die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante 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 |
---|---|
mindestens unterstützte Client- | Windows XP [nur Desktop-Apps] |
mindestens unterstützte Server- | Windows Server 2003 [Nur Desktop-Apps] |
Zielplattform- | Fenster |
Header- | setupapi.h |
Library | Setupapi.lib |
DLL- | Setupapi.dll |