3 * Copyright (C) 2002 ReactOS Team
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 * COPYRIGHT: See COPYING in the top level directory
21 * PROJECT: ReactOS text-mode setup
22 * FILE: subsys/system/usetup/drivesup.c
23 * PURPOSE: Drive support functions
24 * PROGRAMMER: Eric Kohl
27 /* INCLUDES *****************************************************************/
29 #include <ddk/ntddk.h>
30 #include <ntdll/rtl.h>
36 /* FUNCTIONS ****************************************************************/
39 GetSourcePaths(PUNICODE_STRING SourcePath,
40 PUNICODE_STRING SourceRootPath)
42 OBJECT_ATTRIBUTES ObjectAttributes;
43 UNICODE_STRING LinkName;
44 UNICODE_STRING SourceName;
45 WCHAR SourceBuffer[MAX_PATH];
51 RtlInitUnicodeString(&LinkName,
54 InitializeObjectAttributes(&ObjectAttributes,
60 Status = NtOpenSymbolicLinkObject(&Handle,
61 SYMBOLIC_LINK_ALL_ACCESS,
63 if (!NT_SUCCESS(Status))
66 SourceName.Length = 0;
67 SourceName.MaximumLength = MAX_PATH * sizeof(WCHAR);
68 SourceName.Buffer = SourceBuffer;
70 Status = NtQuerySymbolicLinkObject(Handle,
75 if (NT_SUCCESS(Status))
77 RtlCreateUnicodeString(SourcePath,
80 /* strip trailing directory */
81 Ptr = wcsrchr(SourceName.Buffer, L'\\');
82 // if ((Ptr != NULL) &&
83 // (wcsicmp(Ptr, L"\\reactos") == 0))
87 RtlCreateUnicodeString(SourceRootPath,
93 return(STATUS_SUCCESS);