RmRestart-Funktion (restartmanager.h)

Startet Anwendungen und Dienste neu, die von der RmShutdown-Funktion heruntergefahren und für den Neustart mit der Funktion RegisterApplicationRestart registriert wurden. Diese Funktion kann nur vom primären Installationsprogramm aufgerufen werden, das die RmStartSession-Funktion aufgerufen hat, um die Restart Manager-Sitzung zu starten.

Syntax

DWORD RmRestart(
  [in]           DWORD                    dwSessionHandle,
                 DWORD                    dwRestartFlags,
  [in, optional] RM_WRITE_STATUS_CALLBACK fnStatus
);

Parameter

[in] dwSessionHandle

Ein Handle für die vorhandene Restart Manager-Sitzung.

dwRestartFlags

Reserviert. Dieser Parameter sollte 0 sein.

[in, optional] fnStatus

Ein Zeiger auf eine status Nachrichtenrückruffunktion, die zum Kommunizieren status verwendet wird, während die RmRestart-Funktion ausgeführt wird. Bei NULL wird kein status angegeben.

Rückgabewert

Dies ist der neueste Fehler, der empfangen wurde. Die Funktion kann einen der Systemfehlercodes zurückgeben, die in Winerror.h definiert sind.

Wert Bedeutung
ERROR_REQUEST_OUT_OF_SEQUENCE
776
Dieser Fehlerwert wird zurückgegeben, wenn die RmRestart-Funktion mit einem gültigen Sitzungshandle aufgerufen wird, bevor die RmShutdown-Funktion aufgerufen wird.
ERROR_FAIL_RESTART
352
Mindestens eine Anwendung konnte nicht neu gestartet werden. Die RM_PROCESS_INFO Strukturen, die von der RmGetList-Funktion zurückgegeben werden, enthalten aktualisierte status Informationen.
ERROR_SEM_TIMEOUT
121
Eine Neustart-Manager-Funktion konnte in der zugewiesenen Zeit keinen Registrierungsschreibmutex abrufen. Ein Systemneustart wird empfohlen, da bei der weiteren Verwendung des Neustart-Managers wahrscheinlich ein Fehler auftritt.
ERROR_CANCELLED
1223
Dieser Fehlerwert wird von der RmRestart-Funktion zurückgegeben, wenn die Anforderung zum Abbrechen eines Vorgangs erfolgreich ist.
ERROR_BAD_ARGUMENTS
160
Mindestens ein Argument ist falsch. Dieser Fehlerwert wird von der Funktion Neustart-Manager zurückgegeben, wenn ein NULL-Zeiger oder 0 in einem Parameter übergeben wird, der einen Ungleich-NULL- und ungleich null-Wert erfordert.
ERROR_WRITE_FAULT
29
Ein Vorgang konnte weder lesen noch in die Registrierung schreiben.
ERROR_OUTOFMEMORY
14
Ein Neustart-Manager-Vorgang konnte nicht abgeschlossen werden, da nicht genügend Arbeitsspeicher verfügbar war.
ERROR_INVALID_HANDLE
6
Für das angegebene Handle ist keine Restart Manager-Sitzung vorhanden.
ERROR_SUCCESS
0
Die Funktion ist erfolgreich und gibt zurück.

Hinweise

Nach dem Aufrufen der RmRestart-Funktion enthalten die RM_PROCESS_INFO Strukturen, die von der RmGetList-Funktion zurückgegeben werden, aktualisierte status Informationen.

Der Neustart-Manager respektiert die Berechtigungen, die verschiedene Benutzer- oder Terminalsitzungen trennen. Ein Installationsprogramm, das als Dienst mit LocalSystem-Berechtigungen ausgeführt wird, kann keine Anwendungen in einer anderen Benutzer- oder Terminalsitzung herunterfahren oder neu starten. Installer 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.

Wenn eine Konsolenanwendung heruntergefahren und vom Neustart-Manager neu gestartet wird, wird die Anwendung in einer neuen Konsole neu gestartet.

Installationsprogramme sollten Anwendungen und Dienste immer mit der RmRestart-Funktion neu starten, auch wenn die RmShutdown-Funktion einen Fehler zurückgibt, der darauf hinweist, dass nicht alle Anwendungen und Dienste heruntergefahren werden konnten.

Die RmRestart-Funktion startet keine Anwendungen neu, die mit erhöhten Rechten ausgeführt werden. Auch wenn die Anwendung durch Neustart-Manager heruntergefahren wurde.

Die RmRestart-Funktion startet keine Anwendungen neu, die nicht als aktuell angemeldeter Benutzer ausgeführt werden. Auch wenn die Anwendung durch Neustart-Manager heruntergefahren wurde. Die RmRestart-Funktion startet beispielsweise keine Anwendungen neu, die mit dem Befehl Ausführen als gestartet wurden und nicht als aktuell angemeldeter Benutzer ausgeführt werden. Diese Anwendungen müssen manuell neu gestartet werden.

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

Weitere Informationen

RegisterApplicationRestart

RmCancelCurrentTask

RmShutdown