https://git.reactos.org/?p=reactos.git;a=commitdiff;h=1fadfea05327c7532b79d…
commit 1fadfea05327c7532b79db6287838b5d4ad9f287
Author: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
AuthorDate: Sun Apr 1 15:06:45 2018 +0200
Commit: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
CommitDate: Sun Apr 1 22:39:32 2018 +0200
[NTOSKRNL] Update Doxygen descriptions for NtRaiseHardError, ExRaiseHardError, ExpRaiseHardError and NtSetDefaultHardErrorPort.
---
ntoskrnl/ex/harderr.c | 55 ++++++++++++++++++---------------------------------
1 file changed, 19 insertions(+), 36 deletions(-)
diff --git a/ntoskrnl/ex/harderr.c b/ntoskrnl/ex/harderr.c
index a5200e3e74..30fdce8f0a 100644
--- a/ntoskrnl/ex/harderr.c
+++ b/ntoskrnl/ex/harderr.c
@@ -85,30 +85,15 @@ ExpSystemErrorHandler(IN NTSTATUS ErrorStatus,
/*++
* @name ExpRaiseHardError
+ * @implemented
*
- * For now it's a stub
- *
- * @param ErrorStatus
- * FILLME
- *
- * @param NumberOfParameters
- * FILLME
- *
- * @param UnicodeStringParameterMask
- * FILLME
- *
- * @param Parameters
- * FILLME
- *
- * @param ValidResponseOptions
- * FILLME
- *
- * @param Response
- * FILLME
- *
- * @return None
+ * See ExRaiseHardError and NtRaiseHardError, same parameters.
*
- * @remarks None
+ * This function performs the central work for both ExRaiseHardError
+ * and NtRaiseHardError. ExRaiseHardError is the service for kernel-mode
+ * that copies the parameters to user-mode, and NtRaiseHardError is the
+ * service for both kernel-mode and user-mode that performs parameters
+ * validation and capture if necessary.
*
*--*/
NTSTATUS
@@ -342,7 +327,7 @@ ExSystemExceptionFilter(VOID)
* @name ExRaiseHardError
* @implemented
*
- * See NtRaiseHardError
+ * See NtRaiseHardError and ExpRaiseHardError.
*
* @param ErrorStatus
* Error Code
@@ -362,9 +347,7 @@ ExSystemExceptionFilter(VOID)
* @param Response
* Pointer to HARDERROR_RESPONSE enumeration
*
- * @return None
- *
- * @remarks None
+ * @return Status
*
*--*/
NTSTATUS
@@ -489,9 +472,9 @@ ExRaiseHardError(IN NTSTATUS ErrorStatus,
* @name NtRaiseHardError
* @implemented
*
- * This function sends HARDERROR_MSG LPC message to listener
- * (typically CSRSS.EXE). See NtSetDefaultHardErrorPort for more information
- * See: http://undocumented.ntinternals.net/UserMode/Undocumented%20Functions/Error…
+ * This function sends HARDERROR_MSG LPC message to a hard-error listener,
+ * typically CSRSS.EXE. See NtSetDefaultHardErrorPort for more information.
+ * See also: http://undocumented.ntinternals.net/UserMode/Undocumented%20Functions/Error…
*
* @param ErrorStatus
* Error Code
@@ -513,8 +496,8 @@ ExRaiseHardError(IN NTSTATUS ErrorStatus,
*
* @return Status
*
- * @remarks NtRaiseHardError is easy way to display message in GUI
- * without loading Win32 API libraries
+ * @remarks NtRaiseHardError constitutes an easy way to display messages
+ * in GUI without loading any Win32 API libraries.
*
*--*/
NTSTATUS
@@ -696,11 +679,11 @@ NtRaiseHardError(IN NTSTATUS ErrorStatus,
* @name NtSetDefaultHardErrorPort
* @implemented
*
- * NtSetDefaultHardErrorPort is typically called only once. After call,
- * kernel set BOOLEAN flag named ExReadyForErrors to TRUE, and all other
- * tries to change default port are broken with STATUS_UNSUCCESSFUL error code
- * See: http://www.windowsitlibrary.com/Content/356/08/2.html
- * http://undocumented.ntinternals.net/UserMode/Undocumented%20Functions/Error…
+ * NtSetDefaultHardErrorPort is typically called only once. After the call,
+ * the kernel sets a BOOLEAN flag named ExReadyForErrors to TRUE, and all other
+ * attempts to change the default port fail with STATUS_UNSUCCESSFUL error code.
+ * See: http://undocumented.ntinternals.net/UserMode/Undocumented%20Functions/Error…
+ * https://web.archive.org/web/20070716133753/http://www.windowsitlibrary.com/…
*
* @param PortHandle
* Handle to named port object
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=f0729b30bb79d6f538cf2…
commit f0729b30bb79d6f538cf2b9578ff8ebe7989f8d3
Author: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
AuthorDate: Sun Apr 1 14:46:19 2018 +0200
Commit: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
CommitDate: Sun Apr 1 22:39:31 2018 +0200
[NTOSKRNL] Forbid processes without the Tcb prvilege to perform a user-mode hard-error BSOD.
---
ntoskrnl/ex/harderr.c | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/ntoskrnl/ex/harderr.c b/ntoskrnl/ex/harderr.c
index 84f409a1bb..a5200e3e74 100644
--- a/ntoskrnl/ex/harderr.c
+++ b/ntoskrnl/ex/harderr.c
@@ -132,8 +132,18 @@ ExpRaiseHardError(IN NTSTATUS ErrorStatus,
/* Check if this error will shutdown the system */
if (ValidResponseOptions == OptionShutdownSystem)
{
- /* Check for privilege */
- if (!SeSinglePrivilegeCheck(SeShutdownPrivilege, PreviousMode))
+ /*
+ * Check if we have the privileges.
+ *
+ * NOTE: In addition to the Shutdown privilege we also check whether
+ * the caller has the Tcb privilege. The purpose is to allow only
+ * SYSTEM processes to "shutdown" the system on hard errors (BSOD)
+ * while forbidding regular processes to do so. This behaviour differs
+ * from Windows, where any user-mode process, as soon as it has the
+ * Shutdown privilege, can trigger a hard-error BSOD.
+ */
+ if (!SeSinglePrivilegeCheck(SeTcbPrivilege, PreviousMode) ||
+ !SeSinglePrivilegeCheck(SeShutdownPrivilege, PreviousMode))
{
/* No rights */
*Response = ResponseNotHandled;
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=f745a97bfe9ba924cacd8…
commit f745a97bfe9ba924cacd807278f1df2ee62c9eaa
Author: Bișoc George <fraizeraust99(a)gmail.com>
AuthorDate: Sun Apr 1 18:30:36 2018 +0200
Commit: Hermès BÉLUSCA - MAÏTO <hermes.belusca-maito(a)reactos.org>
CommitDate: Sun Apr 1 18:30:36 2018 +0200
[TRANSLATION][RAPPS] Translation update for Italian and Romanian (#460)
- Small Italian translation update;
- Translation update for Romanian;
- Small update (just two strings translated based on the latest RAPPS commits);
- Header E-mail changed.
---
base/applications/rapps/lang/it-IT.rc | 4 ++--
base/applications/rapps/lang/ro-RO.rc | 6 +++---
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/base/applications/rapps/lang/it-IT.rc b/base/applications/rapps/lang/it-IT.rc
index 69f58d715a..689efdfe46 100644
--- a/base/applications/rapps/lang/it-IT.rc
+++ b/base/applications/rapps/lang/it-IT.rc
@@ -203,7 +203,7 @@ BEGIN
IDS_UNABLE_TO_DOWNLOAD2 "Impossibile scaricare il pacchetto! Controlla la tua connessione internet!"
IDS_UNABLE_TO_REMOVE "Impossibile cancellare i dati dal registro!"
IDS_UNABLE_TO_INSTALL "Impossibile aprire l'installer!"
- IDS_UNABLE_TO_QUERY_CERT "Unable to retrieve certificate info.\n\nDo you want to continue anyway?"
+ IDS_UNABLE_TO_QUERY_CERT "Impossibile recuperare le informazioni del certificato.\n\nVuoi continuare comunque?"
IDS_INTEG_CHECK_TITLE "Verifica integrità pacchetto…"
IDS_INTEG_CHECK_FAIL "Il pacchetto non ha superato il controllo di integrità, potrebbe essere stato danneggiato o manomesso durante lo scaricamento. L'esecuzione del software non è raccomandata."
IDS_INTERRUPTED_DOWNLOAD "Lo scaricamento è stato interrotto. Verificare la connessione a Internet."
@@ -211,7 +211,7 @@ BEGIN
IDS_SELECT_ALL "Seleziona/Deseleziona Tutte"
IDS_INSTALL_SELECTED "Installa le selezionate"
IDS_SELECTEDFORINST "Selezionate per l'installazione"
- IDS_MISMATCH_CERT_INFO "The certificate used is unknown:\nSubject: %s\nIssuer: %s\nDo you want to continue anyway?"
+ IDS_MISMATCH_CERT_INFO "Il certificato in uso è sconosciuto:\nSoggetto: %s\nEmittente: %s\nVuoi continuare comunque?"
END
STRINGTABLE
diff --git a/base/applications/rapps/lang/ro-RO.rc b/base/applications/rapps/lang/ro-RO.rc
index 0bb9498618..0654ca7446 100644
--- a/base/applications/rapps/lang/ro-RO.rc
+++ b/base/applications/rapps/lang/ro-RO.rc
@@ -4,7 +4,7 @@
* PURPOSE: Romanian Translation for RAPPS
* TRANSLATORS:
* Ștefan Fulea (stefan dot fulea at mail dot md)
- * Bișoc George (fraizeraust99(a)gmail.com)
+ * Bișoc George (fraizeraust99 at gmail dot com)
*/
LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL
@@ -212,7 +212,7 @@ BEGIN
IDS_UNABLE_TO_DOWNLOAD2 "Pachetul nu poate fi descărcat! Verificați conexiunea de Internet!"
IDS_UNABLE_TO_REMOVE "Datele de registru pentru acest program nu au putut fi eliminate!"
IDS_UNABLE_TO_INSTALL "Programul de instalare nu poate fi executat!"
- IDS_UNABLE_TO_QUERY_CERT "Unable to retrieve certificate info.\n\nDo you want to continue anyway?"
+ IDS_UNABLE_TO_QUERY_CERT "Regăsirea informații despre certificat a eșuat.\n\nVreți să continuați oricum?"
IDS_INTEG_CHECK_TITLE "Integritatea pachetului în verificare…"
IDS_INTEG_CHECK_FAIL "Pachetul nu a trecut de verificarea de integritate. Utilizarea programului nu este recomandată."
IDS_INTERRUPTED_DOWNLOAD "Descărcarea a fost întreruptă. Verificați conexiunea la Internet."
@@ -220,7 +220,7 @@ BEGIN
IDS_SELECT_ALL "Selectează/Deselectează Toate"
IDS_INSTALL_SELECTED "Instalează selecționate"
IDS_SELECTEDFORINST "Selectate pentru instalare"
- IDS_MISMATCH_CERT_INFO "The certificate used is unknown:\nSubject: %s\nIssuer: %s\nDo you want to continue anyway?"
+ IDS_MISMATCH_CERT_INFO "Certificatul în uz este necunoscut:\nSubiect: %s\nEmitent: %s\nVreți să continuați oricum?"
END
STRINGTABLE