[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
This commit is contained in:
Hermès Bélusca-Maïto 2017-05-30 00:15:54 +00:00
parent 6681fb8af5
commit 6b6163a5d9
No known key found for this signature in database
GPG key ID: 3B2539C65E7B93D0
2 changed files with 29 additions and 70 deletions

View file

@ -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)
{
OBJECT_ATTRIBUTES ObjectAttributes;
UNICODE_STRING LinkName;
UNICODE_STRING SourceName;
WCHAR SourceBuffer[MAX_PATH] = {L'\0'};
HANDLE Handle;
NTSTATUS Status;
OBJECT_ATTRIBUTES ObjectAttributes;
UNICODE_STRING LinkName = RTL_CONSTANT_STRING(L"\\SystemRoot");
UNICODE_STRING SourceName;
WCHAR SourceBuffer[MAX_PATH] = L"";
HANDLE Handle;
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))
if (!NT_SUCCESS(Status))
return Status;
RtlCreateUnicodeString(SourcePath,
SourceName.Buffer);
/* Strip trailing directory */
Ptr = wcsrchr(SourceName.Buffer, OBJ_NAME_PATH_SEPARATOR);
if (Ptr)
{
RtlCreateUnicodeString(SourcePath,
SourceName.Buffer);
/* strip trailing directory */
Ptr = wcsrchr(SourceName.Buffer, L'\\');
if (Ptr)
{
RtlCreateUnicodeString(SourceRootDir, Ptr);
*Ptr = 0;
}
else
RtlCreateUnicodeString(SourceRootDir, L"");
RtlCreateUnicodeString(SourceRootPath,
SourceName.Buffer);
RtlCreateUnicodeString(SourceRootDir, Ptr);
*Ptr = UNICODE_NULL;
}
else
{
RtlCreateUnicodeString(SourceRootDir, L"");
}
NtClose(Handle);
RtlCreateUnicodeString(SourceRootPath,
SourceName.Buffer);
return STATUS_SUCCESS;
}

View file

@ -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 */