RmShutdown-Funktion (restartmanager.h)
Initiiert das Herunterfahren von Anwendungen. Diese Funktion kann nur über das Installationsprogramm aufgerufen werden, das die Restart Manager-Sitzung mit der RmStartSession-Funktion gestartet hat.
Syntax
DWORD RmShutdown(
[in] DWORD dwSessionHandle,
[in] ULONG lActionFlags,
[in, optional] RM_WRITE_STATUS_CALLBACK fnStatus
);
Parameter
[in] dwSessionHandle
Ein Handle für eine vorhandene Restart Manager-Sitzung.
[in] lActionFlags
Mindestens eine RM_SHUTDOWN_TYPE Optionen, die das Herunterfahren von Komponenten konfigurieren. Die folgenden Werte können von einem OR-Operator kombiniert werden, um anzugeben, dass anwendungen und Dienste, die nicht reagieren, zum Herunterfahren gezwungen werden sollen, wenn und nur, wenn alle Anwendungen für den Neustart registriert wurden.
Wert | Bedeutung |
---|---|
|
Erzwingen, dass nicht reagierende Anwendungen und Dienste nach dem Timeoutzeitraum heruntergefahren werden. Eine Anwendung, die nicht auf eine Herunterfahranforderung antwortet, muss innerhalb von 30 Sekunden heruntergefahren werden. Ein Dienst, der nicht auf eine Herunterfahranforderung reagiert, wird nach 20 Sekunden zum Herunterfahren gezwungen. |
|
Fahren Sie Anwendungen nur herunter, wenn alle Anwendungen mit der RegisterApplicationRestart-Funktion für den Neustart registriert wurden. Wenn Prozesse oder Dienste nicht neu gestartet werden können, werden keine Prozesse oder Dienste heruntergefahren. |
[in, optional] fnStatus
Ein Zeiger auf eine RM_WRITE_STATUS_CALLBACK Funktion, die verwendet wird, um während der Ausführung dieser Funktion detaillierte status zu kommunizieren. Bei NULL wird kein status angegeben.
Rückgabewert
Dies ist der letzte empfangene Fehler. Die Funktion kann einen der Systemfehlercodes zurückgeben, die in Winerror.h definiert sind.
Wert | Bedeutung |
---|---|
|
Alle Vorgänge zum Herunterfahren, Neustarten und Rückruf wurden erfolgreich abgeschlossen. |
|
Es wurden keine Aktionen zum Herunterfahren ausgeführt. Ein oder mehrere Prozesse oder Dienste erfordern einen Neustart des Systems, um heruntergefahren zu werden. Dieser Fehlercode wird zurückgegeben, wenn der Neustart-Manager erkennt, dass ein Neustart des Systems erforderlich ist, bevor eine Anwendung heruntergefahren wird. |
|
Einige Anwendungen konnten nicht heruntergefahren werden. Der AppStatus der RM_PROCESS_INFO-Strukturen, die von der RmGetList-Funktion zurückgegeben werden, enthalten aktualisierte status Informationen. |
|
Dieser Fehlerwert wird von der RmShutdown-Funktion zurückgegeben, wenn die Anforderung zum Abbrechen eines Vorgangs erfolgreich ist. |
|
Eine Neustart-Manager-Funktion konnte in der zugewiesenen Zeit keinen Registrierungs-Schreibmutex abrufen. Ein Systemneustart wird empfohlen, da die weitere Verwendung des Neustart-Managers wahrscheinlich fehlschlägt. |
|
Mindestens ein Argument ist falsch. Dieser Fehlerwert wird von der Funktion Restart Manager zurückgegeben, wenn ein NULL-Zeiger oder 0 in einem Parameter übergeben wird, der einen Wert ungleich NULL und ungleich Null erfordert. |
|
Ein Vorgang konnte weder lesen noch in die Registrierung schreiben. |
|
Ein Neustart-Manager-Vorgang konnte nicht abgeschlossen werden, da nicht genügend Arbeitsspeicher verfügbar ist. |
|
Für das bereitgestellte Handle ist keine Restart Manager-Sitzung vorhanden. |
Hinweise
Die RmShutdown-Funktion ruft RmGetList auf und aktualisiert die Liste der Prozesse, die derzeit registrierte Ressourcen verwenden, bevor versucht wird, Prozesse herunterzufahren. Die RmShutdown-Funktion versucht dann, die Prozesse mithilfe registrierter Ressourcen in der aktuellen Liste herunterzufahren. Die RmShutdown-Funktion aktualisiert den AppStatus-Member der RM_PROCESS_INFO-Strukturen, die von der RmGetList-Funktion zurückgegeben werden, mit detaillierten status Informationen.
Der Neustart-Manager respektiert die Berechtigungen, die verschiedene Benutzer- oder Terminalsitzungen voneinander trennen. Ein Installationsprogramm, das als Dienst mit LocalSystem-Berechtigungen ausgeführt wird, kann anwendungen in einer anderen Benutzer- oder Terminalsitzung nicht herunterfahren oder neu starten. Installationsprogramme sollten benutzerdefinierte Methoden implementieren, um Anwendungen, die in anderen Sitzungen ausgeführt werden, herunterzufahren und neu zu starten. Eine Methode wäre, einen neuen Installationsprozess in der anderen Sitzung zu starten, um Herunter- und Neustartvorgänge auszuführen.
Installer sollten Anwendung und Dienste immer mit der RmRestart-Funktion neu starten, auch wenn die RmShutdown-Funktion einen Fehler zurückgibt, der angibt, dass nicht alle Anwendungen und Dienste heruntergefahren werden können.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows Vista [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | restartmanager.h |
Bibliothek | Rstrtmgr.lib |
DLL | Rstrtmgr.dll |