mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 06:33:01 +00:00
Remove Vfat(x)Initialize and Vfat(x)Cleanup which were empty
Remove vfatlib dependancy of fmifs.dll (Providers like ufat.dll are loaded dynamically at startup) svn path=/trunk/; revision=23915
This commit is contained in:
parent
132cf4ece8
commit
90d5c19850
10 changed files with 133 additions and 73 deletions
|
@ -105,8 +105,6 @@ FormatPartition (PUNICODE_STRING DriveRoot)
|
||||||
|
|
||||||
ProgressSetStepCount (ProgressBar, 100);
|
ProgressSetStepCount (ProgressBar, 100);
|
||||||
|
|
||||||
VfatInitialize ();
|
|
||||||
|
|
||||||
Status = VfatFormat (DriveRoot,
|
Status = VfatFormat (DriveRoot,
|
||||||
0, /* MediaFlag */
|
0, /* MediaFlag */
|
||||||
NULL, /* Label */
|
NULL, /* Label */
|
||||||
|
@ -114,8 +112,6 @@ FormatPartition (PUNICODE_STRING DriveRoot)
|
||||||
0, /* ClusterSize */
|
0, /* ClusterSize */
|
||||||
(PFMIFSCALLBACK)FormatCallback); /* Callback */
|
(PFMIFSCALLBACK)FormatCallback); /* Callback */
|
||||||
|
|
||||||
VfatCleanup ();
|
|
||||||
|
|
||||||
DestroyProgressBar (ProgressBar);
|
DestroyProgressBar (ProgressBar);
|
||||||
ProgressBar = NULL;
|
ProgressBar = NULL;
|
||||||
|
|
||||||
|
|
|
@ -67,6 +67,7 @@
|
||||||
<property name="BASEADDRESS_LZ32" value="0x73d80000" />
|
<property name="BASEADDRESS_LZ32" value="0x73d80000" />
|
||||||
<property name="BASEADDRESS_COREDLL" value="0x73d80000" />
|
<property name="BASEADDRESS_COREDLL" value="0x73d80000" />
|
||||||
<property name="BASEADDRESS_ICMP" value="0x741f0000" />
|
<property name="BASEADDRESS_ICMP" value="0x741f0000" />
|
||||||
|
<property name="BASEADDRESS_UFAT" value="0x741f0000" />
|
||||||
<property name="BASEADDRESS_USERENV" value="0x74850000" />
|
<property name="BASEADDRESS_USERENV" value="0x74850000" />
|
||||||
<property name="BASEADDRESS_WS2_32" value="0x74aa0000" />
|
<property name="BASEADDRESS_WS2_32" value="0x74aa0000" />
|
||||||
<property name="BASEADDRESS_SYSSETUP" value="0x74a30000" />
|
<property name="BASEADDRESS_SYSSETUP" value="0x74a30000" />
|
||||||
|
|
|
@ -4,7 +4,6 @@
|
||||||
<define name="_DISABLE_TIDENTS" />
|
<define name="_DISABLE_TIDENTS" />
|
||||||
<define name="__USE_W32API" />
|
<define name="__USE_W32API" />
|
||||||
<define name="_WIN32_WINNT">0x0600</define>
|
<define name="_WIN32_WINNT">0x0600</define>
|
||||||
<library>vfatlib</library>
|
|
||||||
<library>ntdll</library>
|
<library>ntdll</library>
|
||||||
<library>kernel32</library>
|
<library>kernel32</library>
|
||||||
<file>chkdsk.c</file>
|
<file>chkdsk.c</file>
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
* PURPOSE: Volume format
|
* PURPOSE: Volume format
|
||||||
*
|
*
|
||||||
* PROGRAMMERS: Emanuele Aliberti
|
* PROGRAMMERS: Emanuele Aliberti
|
||||||
|
* Hervé Poussineau (hpoussin@reactos.org)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "precomp.h"
|
#include "precomp.h"
|
||||||
|
@ -14,7 +15,7 @@
|
||||||
|
|
||||||
/* FMIFS.6 */
|
/* FMIFS.6 */
|
||||||
VOID NTAPI
|
VOID NTAPI
|
||||||
Format(void)
|
Format(VOID)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29,13 +30,15 @@ FormatEx(
|
||||||
IN ULONG ClusterSize,
|
IN ULONG ClusterSize,
|
||||||
IN PFMIFSCALLBACK Callback)
|
IN PFMIFSCALLBACK Callback)
|
||||||
{
|
{
|
||||||
|
PIFS_PROVIDER Provider;
|
||||||
UNICODE_STRING usDriveRoot;
|
UNICODE_STRING usDriveRoot;
|
||||||
UNICODE_STRING usLabel;
|
UNICODE_STRING usLabel;
|
||||||
BOOLEAN Argument = FALSE;
|
BOOLEAN Argument = FALSE;
|
||||||
WCHAR VolumeName[MAX_PATH];
|
WCHAR VolumeName[MAX_PATH];
|
||||||
CURDIR CurDir;
|
CURDIR CurDir;
|
||||||
|
|
||||||
if (_wcsnicmp(Format, L"FAT", 3) != 0)
|
Provider = GetProvider(Format);
|
||||||
|
if (!Provider)
|
||||||
{
|
{
|
||||||
/* Unknown file system */
|
/* Unknown file system */
|
||||||
Callback(
|
Callback(
|
||||||
|
@ -58,16 +61,14 @@ FormatEx(
|
||||||
|
|
||||||
RtlInitUnicodeString(&usLabel, Label);
|
RtlInitUnicodeString(&usLabel, Label);
|
||||||
|
|
||||||
DPRINT1("FormatEx - FAT\n");
|
DPRINT1("FormatEx - %S\n", Format);
|
||||||
VfatInitialize();
|
Provider->FormatEx(
|
||||||
VfatFormat(
|
|
||||||
&usDriveRoot,
|
&usDriveRoot,
|
||||||
MediaFlag,
|
MediaFlag,
|
||||||
&usLabel,
|
&usLabel,
|
||||||
QuickFormat,
|
QuickFormat,
|
||||||
ClusterSize,
|
ClusterSize,
|
||||||
Callback);
|
Callback);
|
||||||
VfatCleanup();
|
|
||||||
RtlFreeUnicodeString(&usDriveRoot);
|
RtlFreeUnicodeString(&usDriveRoot);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,17 +5,93 @@
|
||||||
* PURPOSE: Initialisation
|
* PURPOSE: Initialisation
|
||||||
*
|
*
|
||||||
* PROGRAMMERS: Emanuele Aliberti
|
* PROGRAMMERS: Emanuele Aliberti
|
||||||
|
* Hervé Poussineau (hpoussin@reactos.org)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "precomp.h"
|
#include "precomp.h"
|
||||||
|
|
||||||
static BOOLEAN FmIfsInitialized = FALSE;
|
static BOOLEAN FmIfsInitialized = FALSE;
|
||||||
|
LIST_ENTRY ProviderListHead;
|
||||||
|
|
||||||
static BOOLEAN NTAPI
|
PIFS_PROVIDER
|
||||||
|
GetProvider(
|
||||||
|
IN PWCHAR FileSystem)
|
||||||
|
{
|
||||||
|
PLIST_ENTRY ListEntry;
|
||||||
|
PIFS_PROVIDER Provider;
|
||||||
|
|
||||||
|
ListEntry = ProviderListHead.Flink;
|
||||||
|
while (ListEntry != ProviderListHead.Flink)
|
||||||
|
{
|
||||||
|
Provider = CONTAINING_RECORD(ListEntry, IFS_PROVIDER, ListEntry);
|
||||||
|
if (wcscmp(Provider->Name, FileSystem) == 0)
|
||||||
|
return Provider;
|
||||||
|
ListEntry = ListEntry->Flink;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Provider not found */
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static BOOLEAN
|
||||||
|
AddProvider(
|
||||||
|
IN PWCHAR FileSystem,
|
||||||
|
IN PWCHAR DllFile)
|
||||||
|
{
|
||||||
|
PIFS_PROVIDER Provider = NULL;
|
||||||
|
ULONG RequiredSize;
|
||||||
|
HMODULE hMod = NULL;
|
||||||
|
BOOLEAN ret = FALSE;
|
||||||
|
|
||||||
|
hMod = LoadLibraryW(DllFile);
|
||||||
|
if (!hMod)
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
|
RequiredSize = FIELD_OFFSET(IFS_PROVIDER, Name)
|
||||||
|
+ wcslen(FileSystem) * sizeof(WCHAR) + sizeof(UNICODE_NULL);
|
||||||
|
Provider = (PIFS_PROVIDER)RtlAllocateHeap(
|
||||||
|
RtlGetProcessHeap(),
|
||||||
|
0,
|
||||||
|
RequiredSize);
|
||||||
|
if (!Provider)
|
||||||
|
goto cleanup;
|
||||||
|
RtlZeroMemory(Provider, RequiredSize);
|
||||||
|
|
||||||
|
/* Get function pointers */
|
||||||
|
//Provider->Chkdsk = (CHKDSK)GetProcAddress(hMod, "Chkdsk");
|
||||||
|
//Provider->ChkdskEx = (CHKDSKEX)GetProcAddress(hMod, "ChkdskEx");
|
||||||
|
//Provider->Extend = (EXTEND)GetProcAddress(hMod, "Extend");
|
||||||
|
//Provider->Format = (FORMAT)GetProcAddress(hMod, "Format");
|
||||||
|
Provider->FormatEx = (FORMATEX)GetProcAddress(hMod, "FormatEx");
|
||||||
|
//Provider->Recover = (RECOVER)GetProcAddress(hMod, "Recover");
|
||||||
|
|
||||||
|
wcscpy(Provider->Name, FileSystem);
|
||||||
|
|
||||||
|
InsertTailList(&ProviderListHead, &Provider->ListEntry);
|
||||||
|
ret = TRUE;
|
||||||
|
|
||||||
|
cleanup:
|
||||||
|
if (!ret)
|
||||||
|
{
|
||||||
|
if (hMod)
|
||||||
|
FreeLibrary(hMod);
|
||||||
|
if (Provider)
|
||||||
|
RtlFreeHeap(RtlGetProcessHeap(), 0, Provider);
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
static BOOLEAN
|
||||||
InitializeFmIfsOnce(void)
|
InitializeFmIfsOnce(void)
|
||||||
{
|
{
|
||||||
|
InitializeListHead(&ProviderListHead);
|
||||||
|
|
||||||
|
/* Add default providers */
|
||||||
|
AddProvider(L"FAT", L"ufat");
|
||||||
|
AddProvider(L"FAT32", L"ufat");
|
||||||
|
|
||||||
/* TODO: Check how many IFS are installed in the system */
|
/* TODO: Check how many IFS are installed in the system */
|
||||||
/* TOSO: and register a descriptor for each one */
|
/* TODO: and register a descriptor for each one */
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
/*
|
/*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
* PROJECT: ReactOS System Libraries
|
* PROJECT: File Management IFS Utility functions
|
||||||
* FILE: lib/fmifs/precomp.h
|
* FILE: reactos/dll/win32/fmifs/precomp.h
|
||||||
* PURPOSE: Win32 FMIFS API Libary Header
|
* PURPOSE: Win32 FMIFS API Library Header
|
||||||
* PROGRAMMER: Alex Ionescu (alex@relsoft.net)
|
*
|
||||||
|
* PROGRAMMERS: Alex Ionescu (alex@relsoft.net)
|
||||||
|
* Hervé Poussineau (hpoussin@reactos.org)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* INCLUDES ******************************************************************/
|
/* INCLUDES ******************************************************************/
|
||||||
|
@ -23,4 +25,33 @@
|
||||||
/* VFATLIB Public Header */
|
/* VFATLIB Public Header */
|
||||||
#include <fslib/vfatlib.h>
|
#include <fslib/vfatlib.h>
|
||||||
|
|
||||||
|
typedef NTSTATUS (NTAPI *FORMATEX)(
|
||||||
|
IN PUNICODE_STRING DriveRoot,
|
||||||
|
IN FMIFS_MEDIA_FLAG MediaFlag,
|
||||||
|
IN PUNICODE_STRING Label,
|
||||||
|
IN BOOLEAN QuickFormat,
|
||||||
|
IN ULONG ClusterSize,
|
||||||
|
IN PFMIFSCALLBACK Callback);
|
||||||
|
|
||||||
|
extern LIST_ENTRY ProviderListHead;
|
||||||
|
|
||||||
|
typedef struct _IFS_PROVIDER
|
||||||
|
{
|
||||||
|
LIST_ENTRY ListEntry;
|
||||||
|
|
||||||
|
PVOID Chkdsk;
|
||||||
|
PVOID ChkdskEx;
|
||||||
|
PVOID Extend;
|
||||||
|
PVOID Format;
|
||||||
|
FORMATEX FormatEx;
|
||||||
|
PVOID Recover;
|
||||||
|
|
||||||
|
WCHAR Name[1];
|
||||||
|
} IFS_PROVIDER, *PIFS_PROVIDER;
|
||||||
|
|
||||||
|
/* init.c */
|
||||||
|
PIFS_PROVIDER
|
||||||
|
GetProvider(
|
||||||
|
IN PWCHAR FileSytem);
|
||||||
|
|
||||||
/* EOF */
|
/* EOF */
|
||||||
|
|
|
@ -9,15 +9,9 @@
|
||||||
|
|
||||||
#include <fmifs/fmifs.h>
|
#include <fmifs/fmifs.h>
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS NTAPI
|
||||||
VfatInitialize (VOID);
|
|
||||||
|
|
||||||
NTSTATUS
|
|
||||||
VfatCleanup (VOID);
|
|
||||||
|
|
||||||
NTSTATUS
|
|
||||||
VfatFormat (PUNICODE_STRING DriveRoot,
|
VfatFormat (PUNICODE_STRING DriveRoot,
|
||||||
ULONG MediaFlag,
|
FMIFS_MEDIA_FLAG MediaFlag,
|
||||||
PUNICODE_STRING Label,
|
PUNICODE_STRING Label,
|
||||||
BOOLEAN QuickFormat,
|
BOOLEAN QuickFormat,
|
||||||
ULONG ClusterSize,
|
ULONG ClusterSize,
|
||||||
|
|
|
@ -9,16 +9,12 @@
|
||||||
|
|
||||||
#include <fmifs/fmifs.h>
|
#include <fmifs/fmifs.h>
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS NTAPI
|
||||||
VfatxInitialize (VOID);
|
|
||||||
|
|
||||||
NTSTATUS
|
|
||||||
VfatxCleanup (VOID);
|
|
||||||
|
|
||||||
NTSTATUS
|
|
||||||
VfatxFormat (PUNICODE_STRING DriveRoot,
|
VfatxFormat (PUNICODE_STRING DriveRoot,
|
||||||
ULONG MediaFlag,
|
FMIFS_MEDIA_FLAG MediaFlag,
|
||||||
|
PUNICODE_STRING Label,
|
||||||
BOOLEAN QuickFormat,
|
BOOLEAN QuickFormat,
|
||||||
|
ULONG ClusterSize,
|
||||||
PFMIFSCALLBACK Callback);
|
PFMIFSCALLBACK Callback);
|
||||||
|
|
||||||
#endif /*__VFATLIB_H */
|
#endif /*__VFATLIB_H */
|
||||||
|
|
|
@ -12,18 +12,9 @@
|
||||||
#define NDEBUG
|
#define NDEBUG
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS NTAPI
|
||||||
VfatInitialize(VOID)
|
|
||||||
{
|
|
||||||
DPRINT("VfatInitialize()\n");
|
|
||||||
|
|
||||||
return STATUS_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
NTSTATUS
|
|
||||||
VfatFormat (PUNICODE_STRING DriveRoot,
|
VfatFormat (PUNICODE_STRING DriveRoot,
|
||||||
ULONG MediaFlag,
|
FMIFS_MEDIA_FLAG MediaFlag,
|
||||||
PUNICODE_STRING Label,
|
PUNICODE_STRING Label,
|
||||||
BOOLEAN QuickFormat,
|
BOOLEAN QuickFormat,
|
||||||
ULONG ClusterSize,
|
ULONG ClusterSize,
|
||||||
|
@ -194,15 +185,6 @@ VfatFormat (PUNICODE_STRING DriveRoot,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
NTSTATUS
|
|
||||||
VfatCleanup(VOID)
|
|
||||||
{
|
|
||||||
DPRINT("VfatCleanup()\n");
|
|
||||||
|
|
||||||
return STATUS_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
UpdateProgress (PFORMAT_CONTEXT Context,
|
UpdateProgress (PFORMAT_CONTEXT Context,
|
||||||
ULONG Increment)
|
ULONG Increment)
|
||||||
|
|
|
@ -12,19 +12,12 @@
|
||||||
#define NDEBUG
|
#define NDEBUG
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS NTAPI
|
||||||
VfatxInitialize(VOID)
|
|
||||||
{
|
|
||||||
DPRINT("VfatxInitialize()\n");
|
|
||||||
|
|
||||||
return STATUS_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
NTSTATUS
|
|
||||||
VfatxFormat (PUNICODE_STRING DriveRoot,
|
VfatxFormat (PUNICODE_STRING DriveRoot,
|
||||||
ULONG MediaFlag,
|
FMIFS_MEDIA_FLAG MediaFlag,
|
||||||
|
PUNICODE_STRING Label,
|
||||||
BOOLEAN QuickFormat,
|
BOOLEAN QuickFormat,
|
||||||
|
ULONG ClusterSize,
|
||||||
PFMIFSCALLBACK Callback)
|
PFMIFSCALLBACK Callback)
|
||||||
{
|
{
|
||||||
OBJECT_ATTRIBUTES ObjectAttributes;
|
OBJECT_ATTRIBUTES ObjectAttributes;
|
||||||
|
@ -163,15 +156,6 @@ VfatxFormat (PUNICODE_STRING DriveRoot,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
NTSTATUS
|
|
||||||
VfatxCleanup(VOID)
|
|
||||||
{
|
|
||||||
DPRINT("VfatxCleanup()\n");
|
|
||||||
|
|
||||||
return STATUS_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
VfatxUpdateProgress (PFORMAT_CONTEXT Context,
|
VfatxUpdateProgress (PFORMAT_CONTEXT Context,
|
||||||
ULONG Increment)
|
ULONG Increment)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue