ReactOS 0.4.15-dev-8434-g155a7c7
mntmgr.h
Go to the documentation of this file.
1#ifndef _MNTMGR_H_
2#define _MNTMGR_H_
3
4#include <ntifs.h>
5#include <mountdev.h>
6#include <ntddvol.h>
7#include <ntdddisk.h>
8#include <wdmguid.h>
9#include <ndk/psfuncs.h>
10#include <ntdddisk.h>
11#include <section_attribs.h>
12
13typedef struct _DEVICE_EXTENSION
14{
41
42typedef struct _DEVICE_INFORMATION
43{
64
66{
71
73{
78
80{
84
85typedef struct _DATABASE_ENTRY
86{
94
96{
101
103{
107
109{
114
116{
120
122{
129
130typedef struct _MIGRATE_WORK_ITEM
131{
138
140{
151
152/* Memory allocation helpers */
153#define AllocatePool(Size) ExAllocatePoolWithTag(PagedPool, Size, 'AtnM')
154#define FreePool(P) ExFreePoolWithTag(P, 'AtnM')
155
156/* Misc macros */
157#define MAX(a, b) ((a > b) ? a : b)
158
159#define LETTER_POSITION 0xC
160#define COLON_POSITION 0xD
161#define DRIVE_LETTER_LENGTH 0x1C
162
163/* mountmgr.c */
164
176extern KEVENT UnloadEvent;
177extern LONG Unloading;
178
179CODE_SEG("INIT")
180DRIVER_INITIALIZE DriverEntry;
181
184MountMgrSendSyncDeviceIoCtl(
192
193VOID
194NTAPI
197 IN PIRP Irp
198);
199
204 IN BOOLEAN FromVolume
205);
206
207VOID
211);
212
215 IN PDEVICE_EXTENSION DeviceExtension,
217 IN BOOLEAN DeviceNameGiven,
218 OUT PDEVICE_INFORMATION * DeviceInformation
219);
220
221VOID
223 IN PDEVICE_INFORMATION DeviceInformation
224);
225
232 _Out_opt_ PBOOLEAN GptDriveLetter,
233 _Out_opt_ PBOOLEAN HasGuid,
234 _Inout_opt_ LPGUID StableGuid,
235 _Out_opt_ PBOOLEAN IsFT);
236
239 IN PDEVICE_INFORMATION DeviceInformation
240);
241
242/* database.c */
243
244extern PWSTR DatabasePath;
245extern PWSTR OfflinePath;
246
247VOID
249 IN PDEVICE_EXTENSION DeviceExtension,
250 IN PDEVICE_INFORMATION DeviceInformation
251);
252
255 IN PDEVICE_EXTENSION DeviceExtension
256);
257
258VOID
260 IN PDEVICE_EXTENSION DeviceExtension
261);
262
263VOID
265 IN PDEVICE_INFORMATION DeviceInformation,
266 IN PMOUNTDEV_UNIQUE_ID OldUniqueId,
267 IN PMOUNTDEV_UNIQUE_ID NewUniqueId
268);
269
270VOID
272 IN PDEVICE_EXTENSION DeviceExtension
273);
274
275VOID
278 IN PMOUNTDEV_UNIQUE_ID UniqueId
279);
280
281VOID
283 IN PMOUNTDEV_UNIQUE_ID UniqueId
284);
285
286VOID
288 IN PMOUNTDEV_UNIQUE_ID UniqueId
289);
290
294 IN PFILE_REPARSE_POINT_INFORMATION ReparsePointInformation,
298);
299
300HANDLE
302 IN PDEVICE_INFORMATION DeviceInformation,
303 IN BOOLEAN MigrateDatabase
304);
305
310);
311
315 IN LONG Offset,
317);
318
322);
323
328);
329
334);
335
336VOID
337NTAPI
340);
341
342/* device.c */
343
345
346/* notify.c */
347VOID
350 IN PMOUNTDEV_UNIQUE_ID UniqueId
351);
352
353VOID
355 IN PDEVICE_EXTENSION DeviceExtension
356);
357
358VOID
360 IN PDEVICE_EXTENSION DeviceExtension,
361 IN PDEVICE_INFORMATION DeviceInformation
362);
363
364VOID
367);
368
369VOID
371 IN PDEVICE_EXTENSION DeviceExtension,
373 IN PMOUNTDEV_UNIQUE_ID UniqueId
374);
375
376VOID
378 IN PDEVICE_EXTENSION DeviceExtension,
380);
381
382VOID
384 IN PDEVICE_EXTENSION DeviceExtension
385);
386
387VOID
389 IN PDEVICE_EXTENSION DeviceExtension,
391 IN BOOLEAN ValidateVolume
392);
393
394/* uniqueid.c */
395VOID
397 IN PDEVICE_EXTENSION DeviceExtension,
398 IN PMOUNTDEV_UNIQUE_ID OldUniqueId,
399 IN PMOUNTDEV_UNIQUE_ID NewUniqueId
400);
401
402VOID
404 IN PMOUNTDEV_UNIQUE_ID UniqueId
405);
406
409 IN PMOUNTDEV_UNIQUE_ID UniqueId
410);
411
412VOID
414 IN PDEVICE_INFORMATION DeviceInformation,
415 IN PDATABASE_ENTRY DatabaseEntry
416);
417
420 IN PDEVICE_EXTENSION DeviceExtension,
421 IN PDATABASE_ENTRY DatabaseEntry
422);
423
424/* point.c */
427 IN PDEVICE_EXTENSION DeviceExtension,
430);
431
434 IN PDEVICE_EXTENSION DeviceExtension,
436 IN PIRP Irp
437);
438
441 IN PDEVICE_EXTENSION DeviceExtension,
442 IN PIRP Irp,
445);
446
447/* symlink.c */
452);
453
457);
458
462 OUT PUNICODE_STRING SuggestedLinkName,
463 OUT PBOOLEAN UseOnlyIfThereAreNoOtherLinks
464);
465
468 IN PDEVICE_EXTENSION DeviceExtension,
469 IN PDEVICE_INFORMATION DeviceInformation,
470 IN PUNICODE_STRING SuggestedLinkName,
471 IN BOOLEAN UseOnlyIfThereAreNoOtherLinks,
472 OUT PUNICODE_STRING * SymLinks,
473 OUT PULONG SymLinkCount,
474 IN BOOLEAN HasGuid,
476);
477
480 IN PDEVICE_EXTENSION DeviceExtension,
481 IN PMOUNTDEV_UNIQUE_ID UniqueId
482);
483
486 IN PSAVED_LINK_INFORMATION SavedLinkInformation,
488 IN PUNICODE_STRING NewLink
489);
490
491VOID
494);
495
499 IN PGUID VolumeGuid OPTIONAL
500);
501
505);
506
507VOID
509 IN PDEVICE_EXTENSION DeviceExtension,
511 IN BOOLEAN MarkOffline
512);
513
518);
519
520#endif /* _MNTMGR_H_ */
#define CODE_SEG(...)
unsigned char BOOLEAN
LONG NTSTATUS
Definition: precomp.h:26
WCHAR RootDirectory[MAX_PATH]
Definition: format.c:74
_In_ PFCB _In_ LONGLONG StartingOffset
Definition: cdprocs.h:291
_In_ PIRP Irp
Definition: csq.h:116
static const WCHAR SymbolicLink[]
Definition: interface.c:31
#define _IRQL_requires_(irql)
Definition: driverspecs.h:229
#define PASSIVE_LEVEL
Definition: env_spec_w32.h:693
ULONG KSPIN_LOCK
Definition: env_spec_w32.h:72
_Must_inspect_result_ _Inout_opt_ PUNICODE_STRING VolumeName
Definition: fltkernel.h:1117
_Inout_opt_ PUNICODE_STRING Extension
Definition: fltkernel.h:1092
NTSTATUS QuerySymbolicLinkNamesFromStorage(IN PDEVICE_EXTENSION DeviceExtension, IN PDEVICE_INFORMATION DeviceInformation, IN PUNICODE_STRING SuggestedLinkName, IN BOOLEAN UseOnlyIfThereAreNoOtherLinks, OUT PUNICODE_STRING *SymLinks, OUT PULONG SymLinkCount, IN BOOLEAN HasGuid, IN LPGUID Guid)
Definition: symlink.c:451
NTSTATUS CloseRemoteDatabase(IN HANDLE Database)
Definition: database.c:82
struct _RECONCILE_WORK_ITEM_CONTEXT * PRECONCILE_WORK_ITEM_CONTEXT
struct _RECONCILE_WORK_ITEM * PRECONCILE_WORK_ITEM
LONG Unloading
Definition: mountmgr.c:37
VOID SendLinkCreated(IN PUNICODE_STRING SymbolicName)
Definition: symlink.c:169
struct _DEVICE_INFORMATION DEVICE_INFORMATION
NTSTATUS DeleteRemoteDatabaseEntry(IN HANDLE Database, IN LONG StartingOffset)
Definition: database.c:233
VOID SendOnlineNotification(IN PUNICODE_STRING SymbolicName)
Definition: notify.c:38
NTSTATUS GlobalCreateSymbolicLink(IN PUNICODE_STRING DosName, IN PUNICODE_STRING DeviceName)
Definition: symlink.c:120
struct _SAVED_LINK_INFORMATION SAVED_LINK_INFORMATION
UNICODE_STRING SafeVolumes
Definition: symlink.c:47
NTSTATUS GlobalDeleteSymbolicLink(IN PUNICODE_STRING DosName)
Definition: symlink.c:145
NTSTATUS WaitForRemoteDatabaseSemaphore(IN PDEVICE_EXTENSION DeviceExtension)
Definition: database.c:371
struct _UNIQUE_ID_REPLICATE * PUNIQUE_ID_REPLICATE
NTSTATUS MountMgrQuerySymbolicLink(IN PUNICODE_STRING SymbolicName, IN OUT PUNICODE_STRING LinkTarget)
Definition: symlink.c:849
struct _DEVICE_EXTENSION DEVICE_EXTENSION
NTSTATUS QueryDeviceInformation(_In_ PUNICODE_STRING SymbolicName, _Out_opt_ PUNICODE_STRING DeviceName, _Out_opt_ PMOUNTDEV_UNIQUE_ID *UniqueId, _Out_opt_ PBOOLEAN Removable, _Out_opt_ PBOOLEAN GptDriveLetter, _Out_opt_ PBOOLEAN HasGuid, _Inout_opt_ LPGUID StableGuid, _Out_opt_ PBOOLEAN IsFT)
Definition: mountmgr.c:274
VOID ReconcileThisDatabaseWithMaster(IN PDEVICE_EXTENSION DeviceExtension, IN PDEVICE_INFORMATION DeviceInformation)
Definition: database.c:1613
VOID DeleteRegistryDriveLetter(IN PMOUNTDEV_UNIQUE_ID UniqueId)
Definition: database.c:2048
VOID MountMgrMountedDeviceRemoval(IN PDEVICE_EXTENSION Extension, IN PUNICODE_STRING DeviceName)
Definition: mountmgr.c:1362
struct _RECONCILE_WORK_ITEM_CONTEXT RECONCILE_WORK_ITEM_CONTEXT
UNICODE_STRING Volume
Definition: fltkernel.h:1172
DRIVER_DISPATCH MountMgrDeviceControl
Definition: mntmgr.h:344
KEVENT UnloadEvent
Definition: mountmgr.c:36
UNICODE_STRING DeviceFloppy
Definition: symlink.c:43
UNICODE_STRING Global
Definition: symlink.c:46
UNICODE_STRING DosDevicesMount
Definition: symlink.c:41
UNICODE_STRING ReparseIndex
Definition: symlink.c:49
DRIVER_INITIALIZE DriverEntry
Definition: mntmgr.h:180
PWSTR OfflinePath
Definition: database.c:32
struct _MIGRATE_WORK_ITEM * PMIGRATE_WORK_ITEM
struct _SYMLINK_INFORMATION * PSYMLINK_INFORMATION
struct _DATABASE_ENTRY DATABASE_ENTRY
VOID NTAPI ReconcileThisDatabaseWithMasterWorker(IN PVOID Parameter)
Definition: database.c:560
struct _DATABASE_ENTRY * PDATABASE_ENTRY
UNICODE_STRING DosGlobal
Definition: symlink.c:45
struct _UNIQUE_ID_WORK_ITEM * PUNIQUE_ID_WORK_ITEM
NTSTATUS FindDeviceInfo(IN PDEVICE_EXTENSION DeviceExtension, IN PUNICODE_STRING SymbolicName, IN BOOLEAN DeviceNameGiven, OUT PDEVICE_INFORMATION *DeviceInformation)
Definition: mountmgr.c:561
struct _UNIQUE_ID_WORK_ITEM UNIQUE_ID_WORK_ITEM
VOID MountMgrNotifyNameChange(IN PDEVICE_EXTENSION DeviceExtension, IN PUNICODE_STRING DeviceName, IN BOOLEAN ValidateVolume)
Definition: notify.c:328
NTSTATUS MountMgrCreatePointWorker(IN PDEVICE_EXTENSION DeviceExtension, IN PUNICODE_STRING SymbolicLinkName, IN PUNICODE_STRING DeviceName)
Definition: point.c:35
VOID PostOnlineNotification(IN PDEVICE_EXTENSION DeviceExtension, IN PUNICODE_STRING SymbolicName)
Definition: notify.c:122
BOOLEAN IsDriveLetter(PUNICODE_STRING SymbolicName)
Definition: symlink.c:812
struct _UNIQUE_ID_REPLICATE UNIQUE_ID_REPLICATE
VOID UpdateReplicatedUniqueIds(IN PDEVICE_INFORMATION DeviceInformation, IN PDATABASE_ENTRY DatabaseEntry)
Definition: uniqueid.c:376
VOID DeleteNoDriveLetterEntry(IN PMOUNTDEV_UNIQUE_ID UniqueId)
Definition: database.c:2100
VOID ReleaseRemoteDatabaseSemaphore(IN PDEVICE_EXTENSION DeviceExtension)
Definition: database.c:391
PWSTR DatabasePath
Definition: database.c:31
NTSTATUS AddRemoteDatabaseEntry(IN HANDLE Database, IN PDATABASE_ENTRY Entry)
Definition: database.c:64
UNICODE_STRING DeviceMount
Definition: symlink.c:40
PDEVICE_OBJECT gdeviceObject
Definition: mountmgr.c:35
NTSTATUS CreateNewVolumeName(OUT PUNICODE_STRING VolumeName, IN PGUID VolumeGuid OPTIONAL)
Definition: symlink.c:399
UNICODE_STRING DeviceCdRom
Definition: symlink.c:44
struct _DEVICE_INFORMATION_ENTRY * PDEVICE_INFORMATION_ENTRY
VOID RegisterForTargetDeviceNotification(IN PDEVICE_EXTENSION DeviceExtension, IN PDEVICE_INFORMATION DeviceInformation)
Definition: notify.c:250
NTSTATUS QueryPointsFromSymbolicLinkName(IN PDEVICE_EXTENSION DeviceExtension, IN PUNICODE_STRING SymbolicName, IN PIRP Irp)
Definition: point.c:463
VOID NTAPI MountMgrCancel(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
Definition: mountmgr.c:1592
struct _MIGRATE_WORK_ITEM MIGRATE_WORK_ITEM
struct _DEVICE_INFORMATION * PDEVICE_INFORMATION
VOID IssueUniqueIdChangeNotify(IN PDEVICE_EXTENSION DeviceExtension, IN PUNICODE_STRING DeviceName, IN PMOUNTDEV_UNIQUE_ID UniqueId)
Definition: notify.c:637
NTSTATUS WriteRemoteDatabaseEntry(IN HANDLE Database, IN LONG Offset, IN PDATABASE_ENTRY Entry)
Definition: database.c:200
NTSTATUS QuerySuggestedLinkName(IN PUNICODE_STRING SymbolicName, OUT PUNICODE_STRING SuggestedLinkName, OUT PBOOLEAN UseOnlyIfThereAreNoOtherLinks)
Definition: symlink.c:621
VOID MountMgrNotify(IN PDEVICE_EXTENSION DeviceExtension)
Definition: notify.c:288
BOOLEAN IsUniqueIdPresent(IN PDEVICE_EXTENSION DeviceExtension, IN PDATABASE_ENTRY DatabaseEntry)
Definition: uniqueid.c:221
struct _DEVICE_INFORMATION_ENTRY DEVICE_INFORMATION_ENTRY
VOID ReconcileAllDatabasesWithMaster(IN PDEVICE_EXTENSION DeviceExtension)
Definition: database.c:1659
VOID IssueUniqueIdChangeNotifyWorker(IN PUNIQUE_ID_WORK_ITEM WorkItem, IN PMOUNTDEV_UNIQUE_ID UniqueId)
Definition: notify.c:567
VOID WaitForOnlinesToComplete(IN PDEVICE_EXTENSION DeviceExtension)
Definition: notify.c:174
struct _ONLINE_NOTIFICATION_WORK_ITEM ONLINE_NOTIFICATION_WORK_ITEM
struct _DEVICE_EXTENSION * PDEVICE_EXTENSION
HANDLE OpenRemoteDatabase(IN PDEVICE_INFORMATION DeviceInformation, IN BOOLEAN MigrateDatabase)
Definition: database.c:1837
VOID MountMgrFreeDeadDeviceInfo(IN PDEVICE_INFORMATION DeviceInformation)
Definition: mountmgr.c:626
PSAVED_LINK_INFORMATION RemoveSavedLinks(IN PDEVICE_EXTENSION DeviceExtension, IN PMOUNTDEV_UNIQUE_ID UniqueId)
Definition: symlink.c:577
struct _SAVED_LINK_INFORMATION * PSAVED_LINK_INFORMATION
PDATABASE_ENTRY GetRemoteDatabaseEntry(IN HANDLE Database, IN LONG StartingOffset)
Definition: database.c:125
VOID ChangeRemoteDatabaseUniqueId(IN PDEVICE_INFORMATION DeviceInformation, IN PMOUNTDEV_UNIQUE_ID OldUniqueId, IN PMOUNTDEV_UNIQUE_ID NewUniqueId)
Definition: database.c:1911
VOID DeleteSymbolicLinkNameFromMemory(IN PDEVICE_EXTENSION DeviceExtension, IN PUNICODE_STRING SymbolicLink, IN BOOLEAN MarkOffline)
Definition: symlink.c:754
VOID MountMgrUniqueIdChangeRoutine(IN PDEVICE_EXTENSION DeviceExtension, IN PMOUNTDEV_UNIQUE_ID OldUniqueId, IN PMOUNTDEV_UNIQUE_ID NewUniqueId)
Definition: uniqueid.c:71
struct _ASSOCIATED_DEVICE_ENTRY ASSOCIATED_DEVICE_ENTRY
VOID DeleteFromLocalDatabase(IN PUNICODE_STRING SymbolicLink, IN PMOUNTDEV_UNIQUE_ID UniqueId)
Definition: database.c:351
NTSTATUS QueryPointsFromMemory(IN PDEVICE_EXTENSION DeviceExtension, IN PIRP Irp, IN PMOUNTDEV_UNIQUE_ID UniqueId OPTIONAL, IN PUNICODE_STRING SymbolicName OPTIONAL)
Definition: point.c:236
struct _ASSOCIATED_DEVICE_ENTRY * PASSOCIATED_DEVICE_ENTRY
BOOLEAN HasDriveLetter(IN PDEVICE_INFORMATION DeviceInformation)
Definition: mountmgr.c:167
struct _ONLINE_NOTIFICATION_WORK_ITEM * PONLINE_NOTIFICATION_WORK_ITEM
UNICODE_STRING DosDevices
Definition: symlink.c:42
struct _RECONCILE_WORK_ITEM RECONCILE_WORK_ITEM
NTSTATUS QueryVolumeName(IN HANDLE RootDirectory, IN PFILE_REPARSE_POINT_INFORMATION ReparsePointInformation, IN PUNICODE_STRING FileName OPTIONAL, OUT PUNICODE_STRING SymbolicName, OUT PUNICODE_STRING VolumeName)
Definition: database.c:1292
struct _SYMLINK_INFORMATION SYMLINK_INFORMATION
VOID CreateNoDriveLetterEntry(IN PMOUNTDEV_UNIQUE_ID UniqueId)
Definition: uniqueid.c:269
BOOLEAN HasNoDriveLetterEntry(IN PMOUNTDEV_UNIQUE_ID UniqueId)
Definition: uniqueid.c:354
NTSTATUS MountMgrMountedDeviceArrival(IN PDEVICE_EXTENSION Extension, IN PUNICODE_STRING SymbolicName, IN BOOLEAN FromVolume)
Definition: mountmgr.c:855
BOOLEAN RedirectSavedLink(IN PSAVED_LINK_INFORMATION SavedLinkInformation, IN PUNICODE_STRING DosName, IN PUNICODE_STRING NewLink)
Definition: symlink.c:717
#define _Out_opt_
Definition: ms_sal.h:346
#define _Inout_opt_
Definition: ms_sal.h:379
#define _In_
Definition: ms_sal.h:308
#define _In_reads_bytes_opt_(size)
Definition: ms_sal.h:322
#define _In_opt_
Definition: ms_sal.h:309
#define _Out_writes_bytes_opt_(size)
Definition: ms_sal.h:351
_In_ PNDIS_STRING _In_ PNDIS_STRING SymbolicName
Definition: ndis.h:4677
DRIVER_DISPATCH(nfs41_FsdDispatch)
_In_ ULONG _In_ ULONG Offset
Definition: ntddpcm.h:101
long LONG
Definition: pedump.c:60
unsigned short USHORT
Definition: pedump.c:61
@ Removable
Definition: arc.h:81
PULONG MinorVersion OPTIONAL
Definition: CrossNt.h:68
base of all file and directory entries
Definition: entries.h:83
Definition: mntmgr.h:96
LIST_ENTRY AssociatedDevicesEntry
Definition: mntmgr.h:97
UNICODE_STRING String
Definition: mntmgr.h:99
PDEVICE_INFORMATION DeviceInformation
Definition: mntmgr.h:98
Definition: mntmgr.h:86
USHORT UniqueIdOffset
Definition: mntmgr.h:91
USHORT SymbolicNameLength
Definition: mntmgr.h:90
USHORT UniqueIdLength
Definition: mntmgr.h:92
ULONG EntrySize
Definition: mntmgr.h:87
ULONG EntryReferences
Definition: mntmgr.h:88
USHORT SymbolicNameOffset
Definition: mntmgr.h:89
KSEMAPHORE WorkerSemaphore
Definition: mntmgr.h:29
ULONG OnlineNotificationCount
Definition: mntmgr.h:38
LONG WorkerThreadStatus
Definition: mntmgr.h:35
PDEVICE_OBJECT DeviceObject
Definition: processr.h:16
PDRIVER_OBJECT DriverObject
Definition: mpu401.h:86
KSEMAPHORE RemoteDatabaseLock
Definition: mntmgr.h:21
LIST_ENTRY OfflineDeviceListHead
Definition: mntmgr.h:18
PMOUNTDEV_UNIQUE_ID DriveLetterData
Definition: mntmgr.h:33
KSPIN_LOCK WorkerLock
Definition: mntmgr.h:31
ULONG OnlineNotificationWorkerActive
Definition: mntmgr.h:37
LONG WorkerReferences
Definition: mntmgr.h:30
PVOID NotificationEntry
Definition: mntmgr.h:19
ULONG EpicNumber
Definition: mntmgr.h:24
BOOLEAN AutomaticDriveLetter
Definition: mntmgr.h:22
LIST_ENTRY IrpListHead
Definition: mntmgr.h:23
LIST_ENTRY OnlineNotificationListHead
Definition: mntmgr.h:36
UNICODE_STRING RegistryPath
Definition: mntmgr.h:34
BOOLEAN NoAutoMount
Definition: mntmgr.h:27
KEVENT OnlineNotificationEvent
Definition: mntmgr.h:39
LIST_ENTRY UniqueIdWorkerItemListHead
Definition: mntmgr.h:32
KSEMAPHORE DeviceLock
Definition: mntmgr.h:20
LIST_ENTRY WorkerQueueListHead
Definition: mntmgr.h:28
BOOLEAN ProcessedSuggestions
Definition: mntmgr.h:26
LIST_ENTRY DeviceListHead
Definition: mntmgr.h:17
LIST_ENTRY SavedLinksListHead
Definition: mntmgr.h:25
Definition: mntmgr.h:103
PDEVICE_INFORMATION DeviceInformation
Definition: mntmgr.h:105
LIST_ENTRY DeviceInformationEntry
Definition: mntmgr.h:104
BOOLEAN Removable
Definition: mntmgr.h:54
PVOID TargetDeviceNotificationEntry
Definition: mntmgr.h:61
BOOLEAN LetterAssigned
Definition: mntmgr.h:55
PDEVICE_EXTENSION DeviceExtension
Definition: mntmgr.h:62
UNICODE_STRING SymbolicName
Definition: mntmgr.h:48
BOOLEAN ManuallyRegistered
Definition: mntmgr.h:53
BOOLEAN KeepLinks
Definition: mntmgr.h:51
BOOLEAN NoDatabase
Definition: mntmgr.h:57
UCHAR SuggestedDriveLetter
Definition: mntmgr.h:52
PMOUNTDEV_UNIQUE_ID UniqueId
Definition: mntmgr.h:49
BOOLEAN SkipNotifications
Definition: mntmgr.h:58
UNICODE_STRING DeviceName
Definition: mntmgr.h:50
BOOLEAN NeedsReconcile
Definition: mntmgr.h:56
LIST_ENTRY ReplicatedUniqueIdsListHead
Definition: mntmgr.h:46
LIST_ENTRY AssociatedDevicesHead
Definition: mntmgr.h:47
LIST_ENTRY SymbolicLinksListHead
Definition: mntmgr.h:45
LIST_ENTRY DeviceListEntry
Definition: mntmgr.h:44
Definition: typedefs.h:120
NTSTATUS Status
Definition: mntmgr.h:135
PIO_WORKITEM WorkItem
Definition: mntmgr.h:132
PKEVENT Event
Definition: mntmgr.h:134
HANDLE Database
Definition: mntmgr.h:136
PDEVICE_INFORMATION DeviceInformation
Definition: mntmgr.h:133
PDEVICE_EXTENSION DeviceExtension
Definition: mntmgr.h:111
WORK_QUEUE_ITEM WorkItem
Definition: mntmgr.h:110
UNICODE_STRING SymbolicName
Definition: mntmgr.h:112
PDEVICE_INFORMATION DeviceInformation
Definition: mntmgr.h:118
PDEVICE_EXTENSION DeviceExtension
Definition: mntmgr.h:117
PIO_WORKITEM WorkItem
Definition: mntmgr.h:124
PWORKER_THREAD_ROUTINE WorkerRoutine
Definition: mntmgr.h:125
LIST_ENTRY WorkerQueueListEntry
Definition: mntmgr.h:123
PMOUNTDEV_UNIQUE_ID UniqueId
Definition: mntmgr.h:82
LIST_ENTRY ReplicatedUniqueIdsListEntry
Definition: mntmgr.h:81
ULONG IrpBufferLength
Definition: mntmgr.h:148
LIST_ENTRY UniqueIdWorkerItemListEntry
Definition: mntmgr.h:141
UNICODE_STRING DeviceName
Definition: mntmgr.h:147
PDEVICE_EXTENSION DeviceExtension
Definition: mntmgr.h:143
PIO_WORKITEM WorkItem
Definition: mntmgr.h:142
uint16_t * PWSTR
Definition: typedefs.h:56
uint32_t * PULONG
Definition: typedefs.h:59
unsigned char * PBOOLEAN
Definition: typedefs.h:53
#define NTAPI
Definition: typedefs.h:36
#define IN
Definition: typedefs.h:39
uint32_t ULONG
Definition: typedefs.h:59
#define OUT
Definition: typedefs.h:40
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:550
_Must_inspect_result_ _In_ WDFDEVICE _In_ PCUNICODE_STRING SymbolicLinkName
Definition: wdfdevice.h:3739
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_opt_ PCUNICODE_STRING DeviceName
Definition: wdfdevice.h:3275
_In_ WDFREQUEST _In_ size_t _In_ size_t _In_ ULONG IoControlCode
Definition: wdfio.h:325
_In_ WDFREQUEST _In_ size_t OutputBufferLength
Definition: wdfio.h:320
_In_ WDFREQUEST _In_ size_t _In_ size_t InputBufferLength
Definition: wdfio.h:322
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR OutputBuffer
Definition: wdfiotarget.h:863
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR InputBuffer
Definition: wdfiotarget.h:953
_Must_inspect_result_ _In_ WDFOBJECT _In_ CONST GUID * Guid
Definition: wdfobject.h:762
_Must_inspect_result_ _In_ PWDF_WORKITEM_CONFIG _In_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFWORKITEM * WorkItem
Definition: wdfworkitem.h:115
WORKER_THREAD_ROUTINE * PWORKER_THREAD_ROUTINE
Definition: extypes.h:200
* PFILE_OBJECT
Definition: iotypes.h:1998
_Out_ PUNICODE_STRING DosName
Definition: rtlfuncs.h:1269
_Inout_opt_ PVOID Parameter
Definition: rtltypes.h:336
unsigned char UCHAR
Definition: xmlstorage.h:181
_Inout_ PUNICODE_STRING LinkTarget
Definition: zwfuncs.h:292