https://git.reactos.org/?p=reactos.git;a=commitdiff;h=6b6163a5d9e64ed980b36…
commit 6b6163a5d9e64ed980b36f757b0b96043e25520a
Author: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
AuthorDate: Tue May 30 00:15:54 2017 +0000
Commit: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
CommitDate: Sun Jun 3 22:12:43 2018 +0200
[USETUP] Minor fixes & simplifications.
- Remove a redundant NtClose() call;
- Return failure if NtQuerySymbolicLinkObject() fails;
- Use RTL_CONSTANT_STRING and RtlInitEmptyUnicodeString() where needed;
- Reduce code indent level;
- Add old-style function annotations;
- Remove the deprecated code copyright notice, since the copyright in usage is already
reported in the COPYING file in the top level ReactOS source code directory.
svn path=/branches/setup_improvements/; revision=74698
---
base/setup/usetup/drivesup.c | 69 +++++++++++++++-----------------------------
base/setup/usetup/drivesup.h | 24 ++-------------
2 files changed, 26 insertions(+), 67 deletions(-)
diff --git a/base/setup/usetup/drivesup.c b/base/setup/usetup/drivesup.c
index c81b987fc1..b8561d77ed 100644
--- a/base/setup/usetup/drivesup.c
+++ b/base/setup/usetup/drivesup.c
@@ -1,21 +1,3 @@
-/*
- * ReactOS kernel
- * Copyright (C) 2002 ReactOS Team
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS text-mode setup
@@ -35,22 +17,19 @@
NTSTATUS
GetSourcePaths(
- PUNICODE_STRING SourcePath,
- PUNICODE_STRING SourceRootPath,
- PUNICODE_STRING SourceRootDir)
+ OUT PUNICODE_STRING SourcePath,
+ OUT PUNICODE_STRING SourceRootPath,
+ OUT PUNICODE_STRING SourceRootDir)
{
+ NTSTATUS Status;
OBJECT_ATTRIBUTES ObjectAttributes;
- UNICODE_STRING LinkName;
+ UNICODE_STRING LinkName = RTL_CONSTANT_STRING(L"\\SystemRoot");
UNICODE_STRING SourceName;
- WCHAR SourceBuffer[MAX_PATH] = {L'\0'};
+ WCHAR SourceBuffer[MAX_PATH] = L"";
HANDLE Handle;
- NTSTATUS Status;
ULONG Length;
PWCHAR Ptr;
- RtlInitUnicodeString(&LinkName,
- L"\\SystemRoot");
-
InitializeObjectAttributes(&ObjectAttributes,
&LinkName,
OBJ_CASE_INSENSITIVE,
@@ -63,35 +42,33 @@ GetSourcePaths(
if (!NT_SUCCESS(Status))
return Status;
- SourceName.Length = 0;
- SourceName.MaximumLength = MAX_PATH * sizeof(WCHAR);
- SourceName.Buffer = SourceBuffer;
+ RtlInitEmptyUnicodeString(&SourceName, SourceBuffer, sizeof(SourceBuffer));
Status = NtQuerySymbolicLinkObject(Handle,
&SourceName,
&Length);
NtClose(Handle);
- if (NT_SUCCESS(Status))
- {
- RtlCreateUnicodeString(SourcePath,
- SourceName.Buffer);
+ if (!NT_SUCCESS(Status))
+ return Status;
- /* strip trailing directory */
- Ptr = wcsrchr(SourceName.Buffer, L'\\');
- if (Ptr)
- {
- RtlCreateUnicodeString(SourceRootDir, Ptr);
- *Ptr = 0;
- }
- else
- RtlCreateUnicodeString(SourceRootDir, L"");
+ RtlCreateUnicodeString(SourcePath,
+ SourceName.Buffer);
- RtlCreateUnicodeString(SourceRootPath,
- SourceName.Buffer);
+ /* Strip trailing directory */
+ Ptr = wcsrchr(SourceName.Buffer, OBJ_NAME_PATH_SEPARATOR);
+ if (Ptr)
+ {
+ RtlCreateUnicodeString(SourceRootDir, Ptr);
+ *Ptr = UNICODE_NULL;
+ }
+ else
+ {
+ RtlCreateUnicodeString(SourceRootDir, L"");
}
- NtClose(Handle);
+ RtlCreateUnicodeString(SourceRootPath,
+ SourceName.Buffer);
return STATUS_SUCCESS;
}
diff --git a/base/setup/usetup/drivesup.h b/base/setup/usetup/drivesup.h
index 5cd200d8fc..01b38a3c57 100644
--- a/base/setup/usetup/drivesup.h
+++ b/base/setup/usetup/drivesup.h
@@ -1,21 +1,3 @@
-/*
- * ReactOS kernel
- * Copyright (C) 2002 ReactOS Team
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS text-mode setup
@@ -28,8 +10,8 @@
NTSTATUS
GetSourcePaths(
- PUNICODE_STRING SourcePath,
- PUNICODE_STRING SourceRootPath,
- PUNICODE_STRING SourceRootDir);
+ OUT PUNICODE_STRING SourcePath,
+ OUT PUNICODE_STRING SourceRootPath,
+ OUT PUNICODE_STRING SourceRootDir);
/* EOF */