ReactOS 0.4.16-dev-2104-gb84fa49
diskpart.h
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS DiskPart
3 * LICENSE: GPL - See COPYING in the top level directory
4 * FILE: base/system/diskpart/diskpart.h
5 * PURPOSE: Manages all the partitions of the OS in an interactive way.
6 * PROGRAMMERS: Lee Schroeder
7 */
8
9#ifndef DISKPART_H
10#define DISKPART_H
11
12/* INCLUDES ******************************************************************/
13
14#include <stdio.h>
15#include <stdlib.h>
16
17#define WIN32_NO_STATUS
18#include <windef.h>
19#include <winbase.h>
20#include <winnls.h>
21#include <winreg.h>
22#include <wincon.h>
23#include <winioctl.h>
24#include <winuser.h>
25#include <ntsecapi.h>
26
27#include <errno.h>
28#include <strsafe.h>
29
30#include <conutils.h>
31
32/*
33#define NTOS_MODE_USER
34#include <ndk/exfuncs.h>
35#include <ndk/iofuncs.h>
36#include <ndk/obfuncs.h>
37#include <ndk/psfuncs.h>
38#include <ndk/rtlfuncs.h>
39#include <ndk/umfuncs.h>
40*/
41
42#define NTOS_MODE_USER
43#include <ndk/cmfuncs.h>
44#include <ndk/exfuncs.h>
45#include <ndk/iofuncs.h>
46#include <ndk/kefuncs.h>
47#include <ndk/mmfuncs.h>
48#include <ndk/obfuncs.h>
49#include <ndk/psfuncs.h>
50#include <ndk/rtlfuncs.h>
51#include <ndk/setypes.h>
52#include <ndk/umfuncs.h>
53
54#include <ntddscsi.h>
55#include <ntddstor.h>
56#include <mountmgr.h>
57
58#include <fmifs/fmifs.h>
59#include <guiddef.h>
60#include <diskguid.h>
61
62#include "resource.h"
63
64//#define DUMP_PARTITION_TABLE
65//#define DUMP_PARTITION_LIST
66
67/* DEFINES *******************************************************************/
68
69/* NOERR codes for the program */
70#undef EXIT_SUCCESS
71#undef EXIT_FAILURE
72
73typedef enum _EXIT_CODE
74{
81 EXIT_EXIT /* Only used by the exit command */
83
84typedef struct _COMMAND
85{
93
94extern COMMAND cmds[];
95
96#define MAX_STRING_SIZE 1024
97#define MAX_ARGS_COUNT 256
98
99
100typedef enum _FORMATSTATE
101{
108
109typedef enum _VOLUME_TYPE
110{
116
118{
122
124{
129
130typedef struct _PARTENTRY
131{
133
134 struct _DISKENTRY *DiskEntry;
135
138
139 union
140 {
143 };
144
148
153
155
156 /* Partition is partitioned disk space */
158
159 /* Partition is new. Table does not exist on disk yet */
160 BOOLEAN New;
161
162 /* Partition was created automatically. */
164
165 /* Partition must be checked */
167
170
171
172typedef struct _BIOSDISKENTRY
173{
182
183
184typedef struct _DISKENTRY
185{
187
191
196
200
203
206// ULONG Signature;
207// ULONG Checksum;
208
210 USHORT Port;
214
215 /* Has the partition list been modified? */
217
220
222
223 PDRIVE_LAYOUT_INFORMATION_EX LayoutBuffer;
224
226
229
231
232typedef struct _VOLENTRY
233{
235
240
242
247
252
254
256
257#define SIZE_1KB (1024ULL)
258#define SIZE_10KB (10ULL * 1024ULL)
259#define SIZE_1MB (1024ULL * 1024ULL)
260#define SIZE_10MB (10ULL * 1024ULL * 1024ULL)
261#define SIZE_1GB (1024ULL * 1024ULL * 1024ULL)
262#define SIZE_10GB (10ULL * 1024ULL * 1024ULL * 1024ULL)
263#define SIZE_1TB (1024ULL * 1024ULL * 1024ULL * 1024ULL)
264#define SIZE_10TB (10ULL * 1024ULL * 1024ULL * 1024ULL * 1024ULL)
265
266
267/* GLOBAL VARIABLES ***********************************************************/
268
272
276
277/* PROTOTYPES *****************************************************************/
278
279/* active.c */
282 _In_ INT argc,
283 _In_ PWSTR *argv);
284
285/* add.c */
288 _In_ INT argc,
289 _In_ PWSTR *argv);
290
291/* assign.c */
294 _In_ INT argc,
295 _In_ PWSTR *argv);
296
297/* attach.c */
300 _In_ INT argc,
301 _In_ PWSTR *argv);
302
303/* attributes.h */
306 _In_ INT argc,
307 _In_ PWSTR *argv);
308
309/* automount.c */
312 _In_ INT argc,
313 _In_ PWSTR *argv);
314
315/* break.c */
318 _In_ INT argc,
319 _In_ PWSTR *argv);
320
321/* clean.c */
324 _In_ INT argc,
325 _In_ PWSTR *argv);
326
327/* compact.c */
330 _In_ INT argc,
331 _In_ PWSTR *argv);
332
333/* convert.c */
336 _In_ ULONG DiskNumber,
337 _In_ PCREATE_DISK DiskInfo);
338
341 _In_ INT argc,
342 _In_ PWSTR *argv);
343
346 _In_ INT argc,
347 _In_ PWSTR *argv);
348
349/* create.c */
352 _In_ INT argc,
353 _In_ PWSTR *argv);
354
357 _In_ INT argc,
358 _In_ PWSTR *argv);
359
362 _In_ INT argc,
363 _In_ PWSTR *argv);
364
367 _In_ INT argc,
368 _In_ PWSTR *argv);
369
372 _In_ INT argc,
373 _In_ PWSTR *argv);
374
375/* delete.c */
378 _In_ INT argc,
379 _In_ PWSTR *argv);
380
383 _In_ INT argc,
384 _In_ PWSTR *argv);
385
388 _In_ INT argc,
389 _In_ PWSTR *argv);
390
391
392/* detach.c */
395 _In_ INT argc,
396 _In_ PWSTR *argv);
397
398/* detail.c */
401 INT argc,
402 PWSTR *argv);
403
406 INT argc,
407 PWSTR *argv);
408
411 INT argc,
412 PWSTR *argv);
413
414/* diskpart.c */
415
416/* dump.c */
419 _In_ INT argc,
420 _In_ LPWSTR *argv);
421
424 _In_ INT argc,
425 _In_ LPWSTR *argv);
426
427
428/* expand.c */
431 _In_ INT argc,
432 _In_ PWSTR *argv);
433
434/* extend.c */
437 _In_ INT argc,
438 _In_ PWSTR *argv);
439
440/* filesystem.c */
443 _In_ INT argc,
444 _In_ PWSTR *argv);
445
446/* format.c */
449 _In_ INT argc,
450 _In_ PWSTR *argv);
451
452/* gpt.c */
455 _In_ INT argc,
456 _In_ PWSTR *argv);
457
458/* help.c */
461 _In_ INT argc,
462 _In_ PWSTR *argv);
463
464VOID
466
469 _In_ PCOMMAND pCommand);
470
471/* import. c */
474 _In_ INT argc,
475 _In_ PWSTR *argv);
476
477/* inactive.c */
480 _In_ INT argc,
481 _In_ PWSTR *argv);
482
483/* interpreter.c */
487
490 _In_ INT argc,
491 _In_ PWSTR *argv);
492
493VOID
495
496/* list.c */
499 INT argc,
500 PWSTR *argv);
501
504 INT argc,
505 PWSTR *argv);
506
509 INT argc,
510 PWSTR *argv);
511
514 INT argc,
515 PWSTR *argv);
516
517VOID
519 _In_ PDISKENTRY DiskEntry);
520
521VOID
523 _In_ PVOLENTRY VolumeEntry);
524
525/* merge.c */
528 _In_ INT argc,
529 _In_ PWSTR *argv);
530
531/* misc.c */
532BOOL
534 _In_ PWSTR pszDecString);
535
536BOOL
538 _In_ PWSTR pszHexString);
539
540BOOL
542 _In_ PWSTR pszString,
543 _In_ PWSTR pszPrefix,
544 _Out_opt_ PWSTR *pszSuffix);
545
548 _In_ ULONGLONG Dividend,
550
551PWSTR
553 _In_ PWSTR pszInString);
554
555PWSTR
557 _In_ PWSTR pszInString);
558
559VOID
561 _Out_ GUID *pGuid);
562
563VOID
565 _Out_ PDWORD pSignature);
566
567VOID
569 _Out_ PWSTR pszBuffer,
570 _In_ GUID *pGuid);
571
572BOOL
574 _Out_ GUID *pGuid,
575 _In_ PWSTR pszString);
576
577VOID
579 _Out_ PWSTR pszBuffer,
580 _In_ INT cchBufferMax,
581 _In_ STORAGE_BUS_TYPE Bustype);
582
583/* mountmgr.h */
584BOOL
587
588BOOL
591
592BOOL
594
595BOOL
598 _In_ WCHAR DriveLetter);
599
600BOOL
603 _Out_ PWCHAR DriveLetter);
604
605BOOL
607 _In_ WCHAR DriveLetter);
608
609/* offline.c */
612 _In_ INT argc,
613 _In_ PWSTR *argv);
614
615/* online.c */
618 _In_ INT argc,
619 _In_ PWSTR *argv);
620
621/* partlist.c */
622#ifdef DUMP_PARTITION_TABLE
623VOID
624DumpPartitionTable(
625 _In_ PDISKENTRY DiskEntry);
626#endif
627
628#ifdef DUMP_PARTITION_LIST
629VOID
630DumpPartitionList(
631 _In_ PDISKENTRY DiskEntry);
632#endif
633
638
641
642VOID
644
647
648VOID
650
651VOID
653 PDISKENTRY DiskEntry);
654
655VOID
657 PDISKENTRY DiskEntry);
658
659VOID
662 _In_ PDISKENTRY DiskEntry);
663
666 _In_ PDISKENTRY DiskEntry);
667
670 _In_ PDISKENTRY DiskEntry);
671
672VOID
674 _In_ PDISKENTRY DiskEntry);
675
676VOID
678 _In_ PDISKENTRY DiskEntry,
679 _In_ BOOL DeleteEntry);
680
683 _In_ PPARTENTRY PartEntry);
684
687 _In_ PPARTENTRY PartEntry);
688
689ULONG
691 _In_ PDISKENTRY DiskEntry);
692
695 _In_ PPARTENTRY PartEntry);
696
699 _In_ PPARTENTRY PartEntry);
700
701VOID
703 _In_ PVOLENTRY VolumeEntry);
704
705
706/* recover.c */
709 _In_ INT argc,
710 _In_ PWSTR *argv);
711
712/* remove.c */
715 _In_ INT argc,
716 _In_ PWSTR *argv);
717
718/* repair.c */
721 _In_ INT argc,
722 _In_ PWSTR *argv);
723
724/* rescan.c */
727 _In_ INT argc,
728 _In_ PWSTR *argv);
729
730/* retain.c */
733 _In_ INT argc,
734 _In_ PWSTR *argv);
735
736/* san.c */
739 _In_ INT argc,
740 _In_ PWSTR *argv);
741
742/* select.c */
745 INT argc,
746 PWSTR *argv);
747
750 INT argc,
751 PWSTR *argv);
752
755 INT argc,
756 PWSTR *argv);
757/*
758EXIT_CODE
759SelectVirtualDisk(
760 INT argc,
761 PWSTR *argv);
762*/
763/* setid.c */
766 _In_ INT argc,
767 _In_ PWSTR *argv);
768
769/* shrink.c */
772 _In_ INT argc,
773 _In_ PWSTR *argv);
774
775/* uniqueid.c */
778 _In_ INT argc,
779 _In_ PWSTR *argv);
780
781#endif /* DISKPART_H */
unsigned char BOOLEAN
static int argc
Definition: ServiceArgs.c:12
LONG NTSTATUS
Definition: precomp.h:26
VOID UpdateMbrDiskLayout(_In_ PDISKENTRY DiskEntry)
Definition: partlist.c:2362
VOID RemoveVolume(_In_ PVOLENTRY VolumeEntry)
Definition: partlist.c:2832
LIST_ENTRY VolumeListHead
Definition: partlist.c:73
VOID CreateGUID(_Out_ GUID *pGuid)
Definition: misc.c:152
ULONGLONG AlignDown(_In_ ULONGLONG Value, _In_ ULONG Alignment)
Definition: partlist.c:189
EXIT_CODE DetailPartition(INT argc, PWSTR *argv)
EXIT_CODE DumpDisk(_In_ INT argc, _In_ LPWSTR *argv)
_VOLUME_TYPE
Definition: diskpart.h:110
@ VOLUME_TYPE_UNKNOWN
Definition: diskpart.h:114
@ VOLUME_TYPE_REMOVABLE
Definition: diskpart.h:113
@ VOLUME_TYPE_CDROM
Definition: diskpart.h:111
@ VOLUME_TYPE_PARTITION
Definition: diskpart.h:112
BOOL HasPrefix(_In_ PWSTR pszString, _In_ PWSTR pszPrefix, _Out_opt_ PWSTR *pszSuffix)
Definition: misc.c:58
enum _EXIT_CODE EXIT_CODE
BOOL GetAutomountState(_Out_ PBOOL State)
Definition: mountmgr.c:46
BOOL ScrubAutomount(VOID)
Definition: mountmgr.c:141
EXIT_CODE expand_main(_In_ INT argc, _In_ PWSTR *argv)
Definition: expand.c:12
EXIT_CODE recover_main(_In_ INT argc, _In_ PWSTR *argv)
Definition: recover.c:12
EXIT_CODE active_main(_In_ INT argc, _In_ PWSTR *argv)
Definition: active.c:16
LIST_ENTRY BiosDiskListHead
Definition: partlist.c:72
PPARTENTRY GetPrevUnpartitionedEntry(_In_ PPARTENTRY PartEntry)
Definition: partlist.c:2629
struct _VOLENTRY VOLENTRY
VOID PrintGUID(_Out_ PWSTR pszBuffer, _In_ GUID *pGuid)
Definition: misc.c:187
VOID UpdateGptDiskLayout(_In_ PDISKENTRY DiskEntry, _In_ BOOL DeleteEntry)
Definition: partlist.c:2539
EXIT_CODE DumpPartition(_In_ INT argc, _In_ LPWSTR *argv)
EXIT_CODE automount_main(_In_ INT argc, _In_ PWSTR *argv)
Definition: automount.c:16
EXIT_CODE DeletePartition(_In_ INT argc, _In_ PWSTR *argv)
Definition: delete.c:274
EXIT_CODE setid_main(_In_ INT argc, _In_ PWSTR *argv)
Definition: setid.c:16
enum _FORMATSTATE FORMATSTATE
EXIT_CODE CreateMsrPartition(_In_ INT argc, _In_ PWSTR *argv)
Definition: create.c:635
EXIT_CODE filesystems_main(_In_ INT argc, _In_ PWSTR *argv)
Definition: filesystems.c:88
EXIT_CODE clean_main(_In_ INT argc, _In_ PWSTR *argv)
Definition: clean.c:16
enum _FORMATSTATE * PFORMATSTATE
EXIT_CODE remove_main(_In_ INT argc, _In_ PWSTR *argv)
Definition: remove.c:15
VOID DestroyVolumeList(VOID)
Definition: partlist.c:2005
EXIT_CODE offline_main(_In_ INT argc, _In_ PWSTR *argv)
Definition: offline.c:12
EXIT_CODE CreatePrimaryPartition(_In_ INT argc, _In_ PWSTR *argv)
Definition: create.c:1094
EXIT_CODE repair_main(_In_ INT argc, _In_ PWSTR *argv)
Definition: repair.c:12
struct _MBR_PARTITION_DATA * PMBR_PARTITION_DATA
EXIT_CODE CreateEfiPartition(_In_ INT argc, _In_ PWSTR *argv)
Definition: create.c:16
NTSTATUS DismountVolume(_In_ PPARTENTRY PartEntry)
Definition: partlist.c:2687
EXIT_CODE add_main(_In_ INT argc, _In_ PWSTR *argv)
Definition: add.c:12
EXIT_CODE gpt_main(_In_ INT argc, _In_ PWSTR *argv)
Definition: gpt.c:16
PDISKENTRY CurrentDisk
Definition: partlist.c:75
EXIT_CODE shrink_main(_In_ INT argc, _In_ PWSTR *argv)
Definition: shrink.c:12
struct _COMMAND * PCOMMAND
NTSTATUS CreateVolumeList(VOID)
Definition: partlist.c:1967
BOOL DeleteDriveLetter(_In_ WCHAR DriveLetter)
Definition: mountmgr.c:338
EXIT_CODE attributes_main(_In_ INT argc, _In_ PWSTR *argv)
Definition: attributes.c:12
EXIT_CODE DetailVolume(INT argc, PWSTR *argv)
EXIT_CODE merge_main(_In_ INT argc, _In_ PWSTR *argv)
Definition: merge.c:12
struct _VOLENTRY * PVOLENTRY
EXIT_CODE DeleteVolume(_In_ INT argc, _In_ PWSTR *argv)
Definition: delete.c:341
EXIT_CODE detach_main(_In_ INT argc, _In_ PWSTR *argv)
Definition: detach.c:12
VOID DestroyPartitionList(VOID)
Definition: partlist.c:1611
NTSTATUS WriteMbrPartitions(_In_ PDISKENTRY DiskEntry)
Definition: partlist.c:2034
EXIT_CODE retain_main(_In_ INT argc, _In_ PWSTR *argv)
Definition: retain.c:12
VOID ReadLayoutBuffer(_In_ HANDLE FileHandle, _In_ PDISKENTRY DiskEntry)
Definition: partlist.c:1065
struct _PARTENTRY * PPARTENTRY
struct _BIOSDISKENTRY * PBIOSDISKENTRY
@ UnknownFormat
Definition: diskpart.h:104
@ Preformatted
Definition: diskpart.h:105
@ Formatted
Definition: diskpart.h:106
@ Unformatted
Definition: diskpart.h:102
@ UnformattedOrDamaged
Definition: diskpart.h:103
LIST_ENTRY DiskListHead
Definition: partlist.c:71
EXIT_CODE DetailDisk(INT argc, PWSTR *argv)
EXIT_CODE compact_main(_In_ INT argc, _In_ PWSTR *argv)
Definition: compact.c:12
EXIT_CODE CreateExtendedPartition(_In_ INT argc, _In_ PWSTR *argv)
Definition: create.c:214
EXIT_CODE ListVolume(INT argc, PWSTR *argv)
EXIT_CODE import_main(_In_ INT argc, _In_ PWSTR *argv)
Definition: import.c:12
EXIT_CODE ListVirtualDisk(INT argc, PWSTR *argv)
EXIT_CODE InterpretCmd(_In_ INT argc, _In_ PWSTR *argv)
EXIT_CODE ConvertMBR(_In_ INT argc, _In_ PWSTR *argv)
Definition: convert.c:148
EXIT_CODE inactive_main(_In_ INT argc, _In_ PWSTR *argv)
Definition: inactive.c:16
EXIT_CODE DeleteDisk(_In_ INT argc, _In_ PWSTR *argv)
Definition: delete.c:28
EXIT_CODE format_main(_In_ INT argc, _In_ PWSTR *argv)
Definition: format.c:95
NTSTATUS CreateDisk(_In_ ULONG DiskNumber, _In_ PCREATE_DISK DiskInfo)
Definition: convert.c:15
struct _COMMAND COMMAND
EXIT_CODE attach_main(_In_ INT argc, _In_ PWSTR *argv)
Definition: attach.c:12
EXIT_CODE ListPartition(INT argc, PWSTR *argv)
EXIT_CODE ListDisk(INT argc, PWSTR *argv)
EXIT_CODE extend_main(_In_ INT argc, _In_ PWSTR *argv)
Definition: extend.c:12
NTSTATUS CreatePartitionList(VOID)
Definition: partlist.c:1988
struct _DISKENTRY DISKENTRY
VOID ScanForUnpartitionedMbrDiskSpace(PDISKENTRY DiskEntry)
Definition: partlist.c:660
enum _VOLUME_TYPE VOLUME_TYPE
EXIT_CODE break_main(_In_ INT argc, _In_ PWSTR *argv)
Definition: break.c:12
EXIT_CODE online_main(_In_ INT argc, _In_ PWSTR *argv)
Definition: online.c:12
EXIT_CODE san_main(_In_ INT argc, _In_ PWSTR *argv)
Definition: san.c:12
PVOLENTRY CurrentVolume
Definition: partlist.c:77
EXIT_CODE rescan_main(_In_ INT argc, _In_ PWSTR *argv)
Definition: rescan.c:12
struct _GPT_PARTITION_DATA * PGPT_PARTITION_DATA
EXIT_CODE assign_main(_In_ INT argc, _In_ PWSTR *argv)
BOOL IsDecString(_In_ PWSTR pszDecString)
Definition: misc.c:14
PPARTENTRY CurrentPartition
Definition: partlist.c:76
NTSTATUS WriteGptPartitions(_In_ PDISKENTRY DiskEntry)
Definition: partlist.c:2158
PVOLENTRY GetVolumeFromPartition(_In_ PPARTENTRY PartEntry)
Definition: partlist.c:2795
BOOL SetAutomountState(_In_ BOOL bEnable)
Definition: mountmgr.c:90
EXIT_CODE SelectPartition(INT argc, PWSTR *argv)
VOID InterpretMain(VOID)
Definition: interpreter.c:232
BOOL IsHexString(_In_ PWSTR pszHexString)
Definition: misc.c:36
VOID PrintDisk(_In_ PDISKENTRY DiskEntry)
Definition: list.c:83
EXIT_CODE InterpretScript(_In_ LPWSTR line)
_EXIT_CODE
Definition: diskpart.h:74
@ EXIT_SERVICE
Definition: diskpart.h:79
@ EXIT_FATAL
Definition: diskpart.h:76
@ EXIT_EXIT
Definition: diskpart.h:81
@ EXIT_FILE
Definition: diskpart.h:78
@ EXIT_CMD_ARG
Definition: diskpart.h:77
@ EXIT_SUCCESS
Definition: diskpart.h:75
@ EXIT_SYNTAX
Definition: diskpart.h:80
COMMAND cmds[]
Definition: main.c:21
EXIT_CODE CreateLogicalPartition(_In_ INT argc, _In_ PWSTR *argv)
Definition: create.c:427
EXIT_CODE HelpCommand(_In_ PCOMMAND pCommand)
VOID HelpCommandList(VOID)
Definition: help.c:16
enum _VOLUME_TYPE * PVOLUME_TYPE
struct _MBR_PARTITION_DATA MBR_PARTITION_DATA
struct _GPT_PARTITION_DATA GPT_PARTITION_DATA
PPARTENTRY GetNextUnpartitionedEntry(_In_ PPARTENTRY PartEntry)
Definition: partlist.c:2658
BOOL AssignNextDriveLetter(_In_ PWSTR DeviceName, _Out_ PWCHAR DriveLetter)
Definition: mountmgr.c:261
EXIT_CODE help_main(_In_ INT argc, _In_ PWSTR *argv)
Definition: help.c:121
EXIT_CODE ConvertGPT(_In_ INT argc, _In_ PWSTR *argv)
Definition: convert.c:88
BOOL AssignDriveLetter(_In_ PWSTR DeviceName, _In_ WCHAR DriveLetter)
Definition: mountmgr.c:181
VOID ScanForUnpartitionedGptDiskSpace(PDISKENTRY DiskEntry)
Definition: partlist.c:921
ULONGLONG RoundingDivide(_In_ ULONGLONG Dividend, _In_ ULONGLONG Divisor)
Definition: misc.c:75
EXIT_CODE SelectVolume(INT argc, PWSTR *argv)
EXIT_CODE UniqueIdDisk(_In_ INT argc, _In_ PWSTR *argv)
Definition: uniqueid.c:17
EXIT_CODE SelectDisk(INT argc, PWSTR *argv)
PWSTR DuplicateQuotedString(_In_ PWSTR pszInString)
Definition: misc.c:84
VOID PrintBusType(_Out_ PWSTR pszBuffer, _In_ INT cchBufferMax, _In_ STORAGE_BUS_TYPE Bustype)
Definition: misc.c:295
struct _BIOSDISKENTRY BIOSDISKENTRY
VOID PrintVolume(_In_ PVOLENTRY VolumeEntry)
Definition: list.c:471
struct _DISKENTRY * PDISKENTRY
struct _PARTENTRY PARTENTRY
VOID CreateSignature(_Out_ PDWORD pSignature)
Definition: misc.c:168
BOOL StringToGUID(_Out_ GUID *pGuid, _In_ PWSTR pszString)
Definition: misc.c:227
#define MAX_PATH
Definition: compat.h:34
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE FileHandle
Definition: fltkernel.h:1231
GLenum func
Definition: glext.h:6028
_FORMATSTATE
Definition: partlist.h:33
BOOL * PBOOL
Definition: minwindef.h:137
#define argv
Definition: mplay32.c:18
#define _Out_opt_
Definition: no_sal2.h:214
#define _Out_
Definition: no_sal2.h:160
#define _In_
Definition: no_sal2.h:158
DWORD * PDWORD
Definition: pedump.c:68
unsigned short USHORT
Definition: pedump.c:61
#define INT
Definition: polytest.cpp:20
enum _STORAGE_BUS_TYPE STORAGE_BUS_TYPE
#define GetPrimaryPartitionCount(DiskEntry)
Definition: partlist.c:2527
#define DuplicateString(x)
Definition: stringutils.h:45
BOOLEAN Recognized
Definition: diskpart.h:178
LIST_ENTRY ListEntry
Definition: partlist.h:159
ULONG DiskNumber
Definition: partlist.h:162
ULONG Checksum
Definition: partlist.h:164
ULONG Signature
Definition: partlist.h:163
CM_DISK_GEOMETRY_DEVICE_DATA DiskGeometry
Definition: partlist.h:166
CM_INT13_DRIVE_PARAMETER Int13DiskData
Definition: partlist.h:167
Definition: main.c:15
INT help
Definition: diskpart.h:90
PWSTR cmd3
Definition: diskpart.h:88
DWORD help_detail
Definition: diskpart.h:91
PWSTR cmd2
Definition: diskpart.h:87
PWSTR cmd1
Definition: diskpart.h:86
ULARGE_INTEGER EndSector
Definition: diskpart.h:202
ULONG SectorAlignment
Definition: partlist.h:116
ULONG BiosDiskNumber
Definition: diskpart.h:205
PDRIVE_LAYOUT_INFORMATION_EX LayoutBuffer
Definition: diskpart.h:223
ULARGE_INTEGER SectorCount
Definition: partlist.h:115
UNICODE_STRING DriverName
Definition: partlist.h:141
STORAGE_BUS_TYPE BusType
Definition: diskpart.h:190
ULONG SectorsPerTrack
Definition: partlist.h:112
USHORT TargetId
Definition: diskpart.h:212
PPARTENTRY ExtendedPartition
Definition: partlist.h:153
LIST_ENTRY LogicalPartListHead
Definition: partlist.h:150
BOOLEAN NewDisk
Definition: partlist.h:138
ULONG DiskNumber
Definition: partlist.h:129
ULONG BytesPerSector
Definition: partlist.h:113
USHORT PathId
Definition: diskpart.h:211
BOOLEAN BiosFound
Definition: partlist.h:120
PWSTR Location
Definition: diskpart.h:189
ULONGLONG Cylinders
Definition: partlist.h:110
USHORT Lun
Definition: diskpart.h:213
LIST_ENTRY ListEntry
Definition: partlist.h:101
BOOLEAN Dirty
Definition: partlist.h:136
ULARGE_INTEGER StartSector
Definition: diskpart.h:201
USHORT Port
Definition: partlist.h:131
DWORD PartitionStyle
Definition: diskpart.h:219
ULONG TracksPerCylinder
Definition: partlist.h:111
LIST_ENTRY PrimaryPartListHead
Definition: partlist.h:149
PWSTR Description
Definition: diskpart.h:188
ULONG CylinderAlignment
Definition: partlist.h:117
DWORD64 Attributes
Definition: diskpart.h:127
Definition: typedefs.h:120
BOOLEAN BootIndicator
Definition: diskpart.h:119
BOOLEAN IsPartitioned
Definition: partlist.h:82
BOOLEAN AutoCreate
Definition: diskpart.h:163
BOOLEAN New
Definition: partlist.h:85
ULARGE_INTEGER SectorCount
Definition: partlist.h:70
CHAR VolumeLabel[17]
Definition: diskpart.h:150
struct _DISKENTRY * DiskEntry
Definition: partlist.h:66
BOOLEAN LogicalPartition
Definition: partlist.h:79
CHAR DriveLetter
Definition: diskpart.h:149
MBR_PARTITION_DATA Mbr
Definition: diskpart.h:141
FORMATSTATE FormatState
Definition: diskpart.h:152
GPT_PARTITION_DATA Gpt
Definition: diskpart.h:142
struct _FILE_SYSTEM_ITEM * FileSystem
Definition: diskpart.h:168
ULONG OnDiskPartitionNumber
Definition: partlist.h:74
BOOLEAN NeedsCheck
Definition: diskpart.h:166
LIST_ENTRY ListEntry
Definition: partlist.h:63
ULONG PartitionNumber
Definition: partlist.h:75
ULARGE_INTEGER StartSector
Definition: partlist.h:69
ULONG PartitionIndex
Definition: partlist.h:76
CHAR FileSystemName[9]
Definition: diskpart.h:151
ULARGE_INTEGER Size
Definition: diskpart.h:246
VOLUME_TYPE VolumeType
Definition: diskpart.h:245
PVOLUME_DISK_EXTENTS pExtents
Definition: diskpart.h:253
ULARGE_INTEGER TotalAllocationUnits
Definition: diskpart.h:248
ULONG VolumeNumber
Definition: diskpart.h:236
ULONG SectorsPerAllocationUnit
Definition: diskpart.h:250
ULARGE_INTEGER AvailableAllocationUnits
Definition: diskpart.h:249
PWSTR pszFilesystem
Definition: diskpart.h:244
ULONG BytesPerSector
Definition: diskpart.h:251
DWORD SerialNumber
Definition: diskpart.h:239
WCHAR VolumeName[MAX_PATH]
Definition: diskpart.h:237
LIST_ENTRY ListEntry
Entry in VolumesList.
Definition: partlist.h:45
PWSTR pszLabel
Definition: diskpart.h:243
WCHAR DriveLetter
Definition: diskpart.h:241
Definition: parser.c:49
uint16_t * PWSTR
Definition: typedefs.h:56
uint64_t DWORD64
Definition: typedefs.h:67
int32_t INT
Definition: typedefs.h:58
uint16_t * PWCHAR
Definition: typedefs.h:56
uint32_t ULONG
Definition: typedefs.h:59
uint64_t ULONGLONG
Definition: typedefs.h:67
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_opt_ PCUNICODE_STRING DeviceName
Definition: wdfdevice.h:3281
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
Definition: wdfregistry.h:413
_In_ BOOL bEnable
Definition: winddi.h:3426
_In_ LARGE_INTEGER Divisor
Definition: rtlfuncs.h:3061
unsigned char UCHAR
Definition: xmlstorage.h:181
__wchar_t WCHAR
Definition: xmlstorage.h:180
WCHAR * LPWSTR
Definition: xmlstorage.h:184
char CHAR
Definition: xmlstorage.h:175