From 4dc1dea0a63be9c34926fea619dbe18c6dd061d6 Mon Sep 17 00:00:00 2001 From: Pierre Schweitzer Date: Wed, 30 Apr 2008 21:35:23 +0000 Subject: [PATCH] - Added a stub for NtfsLib - Added a stub for untfs.dll - Added the support of untfs.dll to autochk.exe (and a bit reviewed code when loading provider) That way, autochk won't complain anymore... And it creates places to work! svn path=/trunk/; revision=33199 --- reactos/base/system/autochk/autochk.c | 16 +++++++--- reactos/baseaddress.rbuild | 1 + reactos/boot/bootdata/packages/reactos.dff | 1 + reactos/dll/win32/untfs/untfs.c | 27 ++++++++++++++++ reactos/dll/win32/untfs/untfs.def | 4 +++ reactos/dll/win32/untfs/untfs.rbuild | 10 ++++++ reactos/dll/win32/untfs/untfs.rc | 5 +++ reactos/dll/win32/win32.rbuild | 3 ++ reactos/lib/fslib/directory.rbuild | 3 ++ reactos/lib/fslib/ntfslib/ntfslib.c | 36 ++++++++++++++++++++++ reactos/lib/fslib/ntfslib/ntfslib.h | 10 ++++++ reactos/lib/fslib/ntfslib/ntfslib.rbuild | 7 +++++ 12 files changed, 119 insertions(+), 4 deletions(-) create mode 100644 reactos/dll/win32/untfs/untfs.c create mode 100644 reactos/dll/win32/untfs/untfs.def create mode 100644 reactos/dll/win32/untfs/untfs.rbuild create mode 100644 reactos/dll/win32/untfs/untfs.rc create mode 100644 reactos/lib/fslib/ntfslib/ntfslib.c create mode 100644 reactos/lib/fslib/ntfslib/ntfslib.h create mode 100644 reactos/lib/fslib/ntfslib/ntfslib.rbuild diff --git a/reactos/base/system/autochk/autochk.c b/reactos/base/system/autochk/autochk.c index 43710a7adb8..8fa15d403df 100644 --- a/reactos/base/system/autochk/autochk.c +++ b/reactos/base/system/autochk/autochk.c @@ -243,16 +243,24 @@ static PVOID LoadProvider( IN PWCHAR FileSystem) { - UNICODE_STRING ProviderDll = RTL_CONSTANT_STRING(L"ufat.dll"); + UNICODE_STRING ProviderDll; PVOID BaseAddress; NTSTATUS Status; /* FIXME: add more providers here */ - if (wcscmp(FileSystem, L"FAT") != 0 - && wcscmp(FileSystem, L"FAT32") != 0) + if (wcscmp(FileSystem, L"NTFS") == 0) { - return NULL; + RtlInitUnicodeString(&ProviderDll, L"untfs.dll"); + } + else if (wcscmp(FileSystem, L"FAT") == 0 + || wcscmp(FileSystem, L"FAT32") == 0) + { + RtlInitUnicodeString(&ProviderDll, L"ufat.dll"); + } + else + { + return NULL; } Status = LdrLoadDll(NULL, NULL, &ProviderDll, &BaseAddress); diff --git a/reactos/baseaddress.rbuild b/reactos/baseaddress.rbuild index db1390f2694..2ad5b2cf0cd 100644 --- a/reactos/baseaddress.rbuild +++ b/reactos/baseaddress.rbuild @@ -13,6 +13,7 @@ + diff --git a/reactos/boot/bootdata/packages/reactos.dff b/reactos/boot/bootdata/packages/reactos.dff index 0903cb28ed4..38e8755d84d 100644 --- a/reactos/boot/bootdata/packages/reactos.dff +++ b/reactos/boot/bootdata/packages/reactos.dff @@ -293,6 +293,7 @@ dll\win32\tapiui\tapiui.dll 1 dll\win32\twain_32\twain_32.dll 1 dll\win32\ufat\ufat.dll 1 dll\win32\ufatx\ufatx.dll 1 optional +dll\win32\untfs\untfs.dll 1 dll\win32\urlmon\urlmon.dll 1 dll\win32\user32\user32.dll 1 dll\win32\userenv\userenv.dll 1 diff --git a/reactos/dll/win32/untfs/untfs.c b/reactos/dll/win32/untfs/untfs.c new file mode 100644 index 00000000000..f359e5f90e6 --- /dev/null +++ b/reactos/dll/win32/untfs/untfs.c @@ -0,0 +1,27 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: NTFS File System Management + * FILE: dll/win32/untfs/untfs.c + * PURPOSE: untfs DLL initialisation + * + * PROGRAMMERS: Pierre Schweitzer + */ + +#define WIN32_NO_STATUS +#include +#define NTOS_MODE_USER +#include +#include + +INT WINAPI +DllMain( + IN HINSTANCE hinstDLL, + IN DWORD dwReason, + IN LPVOID lpvReserved) +{ + UNREFERENCED_PARAMETER(hinstDLL); + UNREFERENCED_PARAMETER(dwReason); + UNREFERENCED_PARAMETER(lpvReserved); + + return TRUE; +} diff --git a/reactos/dll/win32/untfs/untfs.def b/reactos/dll/win32/untfs/untfs.def new file mode 100644 index 00000000000..cd77fc5c491 --- /dev/null +++ b/reactos/dll/win32/untfs/untfs.def @@ -0,0 +1,4 @@ +LIBRARY UNTFS.DLL +EXPORTS +ChkdskEx=NtfsChkdsk@24 +FormatEx=NtfsFormat@24 \ No newline at end of file diff --git a/reactos/dll/win32/untfs/untfs.rbuild b/reactos/dll/win32/untfs/untfs.rbuild new file mode 100644 index 00000000000..7652bd6ec11 --- /dev/null +++ b/reactos/dll/win32/untfs/untfs.rbuild @@ -0,0 +1,10 @@ + + + . + + 0x0600 + ntfslib + ntdll + untfs.c + untfs.rc + diff --git a/reactos/dll/win32/untfs/untfs.rc b/reactos/dll/win32/untfs/untfs.rc new file mode 100644 index 00000000000..6ea22fa8da4 --- /dev/null +++ b/reactos/dll/win32/untfs/untfs.rc @@ -0,0 +1,5 @@ +#define REACTOS_VERSION_DLL +#define REACTOS_STR_FILE_DESCRIPTION "NTFS File System Management\0" +#define REACTOS_STR_INTERNAL_NAME "untfs\0" +#define REACTOS_STR_ORIGINAL_FILENAME "untfs.dll\0" +#include diff --git a/reactos/dll/win32/win32.rbuild b/reactos/dll/win32/win32.rbuild index 130094ec25a..cd1765dea5f 100644 --- a/reactos/dll/win32/win32.rbuild +++ b/reactos/dll/win32/win32.rbuild @@ -316,6 +316,9 @@ + + + diff --git a/reactos/lib/fslib/directory.rbuild b/reactos/lib/fslib/directory.rbuild index f61334b2c44..272f5de776c 100644 --- a/reactos/lib/fslib/directory.rbuild +++ b/reactos/lib/fslib/directory.rbuild @@ -4,6 +4,9 @@ + + + diff --git a/reactos/lib/fslib/ntfslib/ntfslib.c b/reactos/lib/fslib/ntfslib/ntfslib.c new file mode 100644 index 00000000000..ce365078999 --- /dev/null +++ b/reactos/lib/fslib/ntfslib/ntfslib.c @@ -0,0 +1,36 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS NTFS FS library + * FILE: lib/fslib/ntfslib/ntfslib.c + * PURPOSE: NTFS lib + * PROGRAMMERS: Pierre Schweitzer + */ +#include "ntfslib.h" + +#define NDEBUG +#include + +NTSTATUS NTAPI +NtfsFormat(PUNICODE_STRING DriveRoot, + FMIFS_MEDIA_FLAG MediaFlag, + PUNICODE_STRING Label, + BOOLEAN QuickFormat, + ULONG ClusterSize, + PFMIFSCALLBACK Callback) +{ + UNIMPLEMENTED; + return STATUS_SUCCESS; +} + + +NTSTATUS WINAPI +NtfsChkdsk(IN PUNICODE_STRING DriveRoot, + IN BOOLEAN FixErrors, + IN BOOLEAN Verbose, + IN BOOLEAN CheckOnlyIfDirty, + IN BOOLEAN ScanDrive, + IN PFMIFSCALLBACK Callback) +{ + UNIMPLEMENTED; + return STATUS_SUCCESS; +} diff --git a/reactos/lib/fslib/ntfslib/ntfslib.h b/reactos/lib/fslib/ntfslib/ntfslib.h new file mode 100644 index 00000000000..b50dfbf16c6 --- /dev/null +++ b/reactos/lib/fslib/ntfslib/ntfslib.h @@ -0,0 +1,10 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS NTFS FS library + * FILE: lib/fslib/ntfslib/ntfslib.h + */ +#define WIN32_NO_STATUS +#include +#define NTOS_MODE_USER +#include +#include diff --git a/reactos/lib/fslib/ntfslib/ntfslib.rbuild b/reactos/lib/fslib/ntfslib/ntfslib.rbuild new file mode 100644 index 00000000000..345246dcc2d --- /dev/null +++ b/reactos/lib/fslib/ntfslib/ntfslib.rbuild @@ -0,0 +1,7 @@ + + + + . + + ntfslib.c + \ No newline at end of file