ReactOS 0.4.16-dev-2491-g3dc6630
volutil.h
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS Setup Library
3 * LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
4 * PURPOSE: Volume utility functions
5 * COPYRIGHT: Copyright 2024 Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
6 */
7
8#pragma once
9
10/* The maximum volume label length is 32 characters */
11#ifndef MAXIMUM_VOLUME_LABEL_LENGTH // Defined in wdm.h only
12#define MAXIMUM_VOLUME_LABEL_LENGTH (32 * sizeof(WCHAR))
13#endif
14
15typedef struct _VOLINFO
16{
17 // WCHAR VolumeName[MAX_PATH]; ///< Name in the DOS/Win32 namespace: "\??\Volume{GUID}\"
19
23
24 // VOLUME_TYPE VolumeType;
25 // ULARGE_INTEGER Size;
26 // PVOLUME_DISK_EXTENTS Extents;
28
29/* RawFS "RAW" file system name */
30#define IS_RAWFS(fs) \
31 ((fs)[0] == 'R' && (fs)[1] == 'A' && (fs)[2] == 'W' && (fs)[3] == 0)
32
33#define IsUnknown(VolInfo) \
34 (!*(VolInfo)->FileSystem)
35
36#define IsUnformatted(VolInfo) \
37 IS_RAWFS((VolInfo)->FileSystem)
38
39#define IsFormatted(VolInfo) \
40 (!IsUnknown(VolInfo) && !IsUnformatted(VolInfo))
41
42
46 _In_opt_ UCHAR MbrPartitionType);
47
52
53/* EOF */
unsigned char BOOLEAN
Definition: actypes.h:127
LONG NTSTATUS
Definition: precomp.h:26
_Inout_ PVCB _In_ BOOLEAN Force
Definition: cdprocs.h:1417
#define MAX_PATH
Definition: compat.h:34
UNICODE_STRING Volume
Definition: fltkernel.h:1172
#define _Inout_
Definition: no_sal2.h:162
#define _In_
Definition: no_sal2.h:158
#define _In_opt_
Definition: no_sal2.h:212
WCHAR FileSystem[MAX_PATH+1]
Definition: volutil.h:22
WCHAR DriveLetter
Definition: volutil.h:20
WCHAR VolumeLabel[MAXIMUM_VOLUME_LABEL_LENGTH/sizeof(WCHAR)+1]
Volume label, NUL-terminated.
Definition: volutil.h:21
struct _VOLINFO VOLINFO
struct _VOLINFO * PVOLINFO
NTSTATUS DismountVolume(_Inout_ PVOLINFO Volume, _In_ BOOLEAN Force)
Attempts to dismount the designated volume.
Definition: volutil.c:152
#define MAXIMUM_VOLUME_LABEL_LENGTH
Definition: volutil.h:12
NTSTATUS MountVolume(_Inout_ PVOLINFO Volume, _In_opt_ UCHAR MbrPartitionType)
Definition: volutil.c:23
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_opt_ PCUNICODE_STRING DeviceName
Definition: wdfdevice.h:3281
unsigned char UCHAR
Definition: xmlstorage.h:181
__wchar_t WCHAR
Definition: xmlstorage.h:180