ReactOS 0.4.16-dev-340-g0540c21
|
#include <ntifs.h>
#include <mountdev.h>
#include <ntddvol.h>
#include <ntdddisk.h>
#include <wdmguid.h>
#include <ndk/psfuncs.h>
#include <section_attribs.h>
Go to the source code of this file.
Classes | |
struct | _DEVICE_EXTENSION |
struct | _DEVICE_INFORMATION |
struct | _SYMLINK_INFORMATION |
struct | _SAVED_LINK_INFORMATION |
struct | _UNIQUE_ID_REPLICATE |
struct | _DATABASE_ENTRY |
struct | _ASSOCIATED_DEVICE_ENTRY |
struct | _DEVICE_INFORMATION_ENTRY |
struct | _ONLINE_NOTIFICATION_WORK_ITEM |
struct | _RECONCILE_WORK_ITEM_CONTEXT |
struct | _RECONCILE_WORK_ITEM |
struct | _MIGRATE_WORK_ITEM |
struct | _UNIQUE_ID_WORK_ITEM |
Macros | |
#define | AllocatePool(Size) ExAllocatePoolWithTag(PagedPool, Size, 'AtnM') |
#define | FreePool(P) ExFreePoolWithTag(P, 'AtnM') |
#define | MAX(a, b) ((a > b) ? a : b) |
#define | LETTER_POSITION 0xC |
#define | COLON_POSITION 0xD |
#define | DRIVE_LETTER_LENGTH 0x1C |
#define AllocatePool | ( | Size | ) | ExAllocatePoolWithTag(PagedPool, Size, 'AtnM') |
typedef struct _DATABASE_ENTRY DATABASE_ENTRY |
typedef struct _DEVICE_EXTENSION DEVICE_EXTENSION |
typedef struct _DATABASE_ENTRY * PDATABASE_ENTRY |
typedef struct _DEVICE_EXTENSION * PDEVICE_EXTENSION |
typedef struct _DEVICE_INFORMATION * PDEVICE_INFORMATION |
typedef struct _MIGRATE_WORK_ITEM * PMIGRATE_WORK_ITEM |
typedef struct _RECONCILE_WORK_ITEM * PRECONCILE_WORK_ITEM |
typedef struct _SYMLINK_INFORMATION * PSYMLINK_INFORMATION |
typedef struct _UNIQUE_ID_REPLICATE * PUNIQUE_ID_REPLICATE |
typedef struct _UNIQUE_ID_WORK_ITEM * PUNIQUE_ID_WORK_ITEM |
_In_ PDEVICE_OBJECT _In_reads_bytes_opt_ | ( | InputBufferLength | ) |
_IRQL_requires_ | ( | PASSIVE_LEVEL | ) |
Definition at line 2121 of file class.c.
_In_ PDEVICE_OBJECT _In_ ULONG _Out_writes_bytes_opt_ | ( | OutputBufferLength | ) |
NTSTATUS AddRemoteDatabaseEntry | ( | IN HANDLE | Database, |
IN PDATABASE_ENTRY | Entry | ||
) |
Definition at line 64 of file database.c.
Referenced by ChangeRemoteDatabaseUniqueId(), MountMgrVolumeMountPointCreated(), and ReconcileThisDatabaseWithMasterWorker().
VOID ChangeRemoteDatabaseUniqueId | ( | IN PDEVICE_INFORMATION | DeviceInformation, |
IN PMOUNTDEV_UNIQUE_ID | OldUniqueId, | ||
IN PMOUNTDEV_UNIQUE_ID | NewUniqueId | ||
) |
Definition at line 1911 of file database.c.
Referenced by MountMgrUniqueIdChangeRoutine().
Definition at line 82 of file database.c.
Referenced by ChangeRemoteDatabaseUniqueId(), MountMgrVolumeMountPointCreated(), MountMgrVolumeMountPointDeleted(), and ReconcileThisDatabaseWithMasterWorker().
NTSTATUS CreateNewVolumeName | ( | OUT PUNICODE_STRING | VolumeName, |
IN PGUID VolumeGuid | OPTIONAL | ||
) |
Definition at line 399 of file symlink.c.
Referenced by MountMgrMountedDeviceArrival(), and QuerySymbolicLinkNamesFromStorage().
VOID CreateNoDriveLetterEntry | ( | IN PMOUNTDEV_UNIQUE_ID | UniqueId | ) |
Definition at line 269 of file uniqueid.c.
Referenced by CreateNewDriveLetterName(), MountMgrDeletePoints(), MountMgrDeletePointsDbOnly(), MountMgrMountedDeviceArrival(), MountMgrNextDriveLetterWorker(), and ProcessSuggestedDriveLetters().
VOID DeleteFromLocalDatabase | ( | IN PUNICODE_STRING | SymbolicLink, |
IN PMOUNTDEV_UNIQUE_ID | UniqueId | ||
) |
Definition at line 351 of file database.c.
Referenced by MountMgrMountedDeviceArrival().
VOID DeleteNoDriveLetterEntry | ( | IN PMOUNTDEV_UNIQUE_ID | UniqueId | ) |
Definition at line 2100 of file database.c.
Referenced by MountMgrCreatePointWorker(), and MountMgrDeletePoints().
VOID DeleteRegistryDriveLetter | ( | IN PMOUNTDEV_UNIQUE_ID | UniqueId | ) |
Definition at line 2048 of file database.c.
Referenced by MountMgrCreatePointWorker().
Definition at line 233 of file database.c.
Referenced by ChangeRemoteDatabaseUniqueId(), MountMgrVolumeMountPointDeleted(), and ReconcileThisDatabaseWithMasterWorker().
VOID DeleteSymbolicLinkNameFromMemory | ( | IN PDEVICE_EXTENSION | DeviceExtension, |
IN PUNICODE_STRING | SymbolicLink, | ||
IN BOOLEAN | MarkOffline | ||
) |
Definition at line 754 of file symlink.c.
Referenced by MountMgrDeletePoints(), and MountMgrDeletePointsDbOnly().
NTSTATUS FindDeviceInfo | ( | IN PDEVICE_EXTENSION | DeviceExtension, |
IN PUNICODE_STRING | SymbolicName, | ||
IN BOOLEAN | DeviceNameGiven, | ||
OUT PDEVICE_INFORMATION * | DeviceInformation | ||
) |
Definition at line 561 of file mountmgr.c.
Referenced by MountMgrKeepLinksWhenOffline(), MountMgrQueryDosVolumePath(), MountMgrQueryDosVolumePaths(), MountMgrVolumeMountPointChanged(), MountMgrVolumeMountPointCreated(), MountMgrVolumeMountPointDeleted(), OnlineMountedVolumes(), QueryUniqueIdFromMaster(), and ReconcileThisDatabaseWithMasterWorker().
PDATABASE_ENTRY GetRemoteDatabaseEntry | ( | IN HANDLE | Database, |
IN LONG | StartingOffset | ||
) |
Definition at line 125 of file database.c.
Referenced by ChangeRemoteDatabaseUniqueId(), DeleteRemoteDatabaseEntry(), MountMgrVolumeMountPointCreated(), MountMgrVolumeMountPointDeleted(), and ReconcileThisDatabaseWithMasterWorker().
NTSTATUS GlobalCreateSymbolicLink | ( | IN PUNICODE_STRING | DosName, |
IN PUNICODE_STRING | DeviceName | ||
) |
Definition at line 120 of file symlink.c.
Referenced by CreateNewDriveLetterName(), DriverEntry(), MountMgrCreatePointWorker(), MountMgrMountedDeviceArrival(), and RedirectSavedLink().
NTSTATUS GlobalDeleteSymbolicLink | ( | IN PUNICODE_STRING | DosName | ) |
Definition at line 145 of file symlink.c.
Referenced by MountMgrCreatePointWorker(), MountMgrDeletePoints(), MountMgrFreeMountedDeviceInfo(), MountMgrFreeSavedLink(), MountMgrMountedDeviceArrival(), MountMgrMountedDeviceRemoval(), MountMgrUnload(), and RedirectSavedLink().
BOOLEAN HasDriveLetter | ( | IN PDEVICE_INFORMATION | DeviceInformation | ) |
Definition at line 167 of file mountmgr.c.
Referenced by MountMgrCreatePointWorker(), and ProcessSuggestedDriveLetters().
BOOLEAN HasNoDriveLetterEntry | ( | IN PMOUNTDEV_UNIQUE_ID | UniqueId | ) |
Definition at line 354 of file uniqueid.c.
Referenced by MountMgrMountedDeviceArrival(), MountMgrNextDriveLetterWorker(), and ProcessSuggestedDriveLetters().
BOOLEAN IsDriveLetter | ( | PUNICODE_STRING | SymbolicName | ) |
Definition at line 812 of file symlink.c.
Referenced by DeleteDriveLetterRoutine(), HasDriveLetter(), MountMgrCreatePointWorker(), MountMgrDeletePoints(), MountMgrDeletePointsDbOnly(), MountMgrMountedDeviceArrival(), MountMgrNextDriveLetterWorker(), and QuerySymbolicLinkNamesFromStorage().
VOID IssueUniqueIdChangeNotify | ( | IN PDEVICE_EXTENSION | DeviceExtension, |
IN PUNICODE_STRING | DeviceName, | ||
IN PMOUNTDEV_UNIQUE_ID | UniqueId | ||
) |
Definition at line 637 of file notify.c.
Referenced by MountMgrMountedDeviceArrival().
VOID IssueUniqueIdChangeNotifyWorker | ( | IN PUNIQUE_ID_WORK_ITEM | WorkItem, |
IN PMOUNTDEV_UNIQUE_ID | UniqueId | ||
) |
Definition at line 567 of file notify.c.
Referenced by IssueUniqueIdChangeNotify(), and UniqueIdChangeNotifyWorker().
BOOLEAN IsUniqueIdPresent | ( | IN PDEVICE_EXTENSION | DeviceExtension, |
IN PDATABASE_ENTRY | DatabaseEntry | ||
) |
Definition at line 221 of file uniqueid.c.
Referenced by ReconcileThisDatabaseWithMasterWorker().
Definition at line 1592 of file mountmgr.c.
Referenced by MountMgrChangeNotify(), and MountMgrCleanup().
NTSTATUS MountMgrCreatePointWorker | ( | IN PDEVICE_EXTENSION | DeviceExtension, |
IN PUNICODE_STRING | SymbolicLinkName, | ||
IN PUNICODE_STRING | DeviceName | ||
) |
Definition at line 35 of file point.c.
Referenced by MountMgrCreatePoint(), MountMgrNextDriveLetterWorker(), ProcessSuggestedDriveLetters(), and WriteUniqueIdToMaster().
VOID MountMgrFreeDeadDeviceInfo | ( | IN PDEVICE_INFORMATION | DeviceInformation | ) |
Definition at line 626 of file mountmgr.c.
Referenced by MountMgrCheckUnprocessedVolumes(), MountMgrMountedDeviceArrival(), MountMgrMountedDeviceRemoval(), and MountMgrUnload().
NTSTATUS MountMgrMountedDeviceArrival | ( | IN PDEVICE_EXTENSION | Extension, |
IN PUNICODE_STRING | SymbolicName, | ||
IN BOOLEAN | FromVolume | ||
) |
Definition at line 855 of file mountmgr.c.
Referenced by MountMgrCheckUnprocessedVolumes(), MountMgrMountedDeviceNotification(), and MountMgrVolumeArrivalNotification().
VOID MountMgrMountedDeviceRemoval | ( | IN PDEVICE_EXTENSION | Extension, |
IN PUNICODE_STRING | DeviceName | ||
) |
Definition at line 1362 of file mountmgr.c.
Referenced by MountMgrMountedDeviceNotification().
VOID MountMgrNotify | ( | IN PDEVICE_EXTENSION | DeviceExtension | ) |
Definition at line 288 of file notify.c.
Referenced by MountMgrCreatePointWorker(), MountMgrDeletePoints(), and MountMgrVolumeMountPointChanged().
VOID MountMgrNotifyNameChange | ( | IN PDEVICE_EXTENSION | DeviceExtension, |
IN PUNICODE_STRING | DeviceName, | ||
IN BOOLEAN | ValidateVolume | ||
) |
Definition at line 328 of file notify.c.
Referenced by MountMgrCreatePointWorker(), MountMgrDeletePoints(), MountMgrQueryDosVolumePaths(), and MountMgrVolumeMountPointChanged().
NTSTATUS MountMgrQuerySymbolicLink | ( | IN PUNICODE_STRING | SymbolicName, |
IN OUT PUNICODE_STRING | LinkTarget | ||
) |
Definition at line 849 of file symlink.c.
Referenced by MountMgrVolumeMountPointCreated(), and MountMgrVolumeMountPointDeleted().
VOID MountMgrUniqueIdChangeRoutine | ( | IN PDEVICE_EXTENSION | DeviceExtension, |
IN PMOUNTDEV_UNIQUE_ID | OldUniqueId, | ||
IN PMOUNTDEV_UNIQUE_ID | NewUniqueId | ||
) |
Definition at line 71 of file uniqueid.c.
Referenced by UniqueIdChangeNotifyWorker().
HANDLE OpenRemoteDatabase | ( | IN PDEVICE_INFORMATION | DeviceInformation, |
IN BOOLEAN | MigrateDatabase | ||
) |
Definition at line 1837 of file database.c.
Referenced by ChangeRemoteDatabaseUniqueId(), MountMgrVolumeMountPointCreated(), MountMgrVolumeMountPointDeleted(), and ReconcileThisDatabaseWithMasterWorker().
VOID PostOnlineNotification | ( | IN PDEVICE_EXTENSION | DeviceExtension, |
IN PUNICODE_STRING | SymbolicName | ||
) |
Definition at line 122 of file notify.c.
Referenced by MountMgrCreatePointWorker(), MountMgrVolumeMountPointCreated(), OnlineMountedVolumes(), and ReconcileThisDatabaseWithMasterWorker().
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 at line 274 of file mountmgr.c.
Referenced by FindDeviceInfo(), and MountMgrMountedDeviceArrival().
NTSTATUS QueryPointsFromMemory | ( | IN PDEVICE_EXTENSION | DeviceExtension, |
IN PIRP | Irp, | ||
IN PMOUNTDEV_UNIQUE_ID UniqueId | OPTIONAL, | ||
IN PUNICODE_STRING SymbolicName | OPTIONAL | ||
) |
Definition at line 236 of file point.c.
Referenced by MountMgrQueryPoints().
NTSTATUS QueryPointsFromSymbolicLinkName | ( | IN PDEVICE_EXTENSION | DeviceExtension, |
IN PUNICODE_STRING | SymbolicName, | ||
IN PIRP | Irp | ||
) |
Definition at line 463 of file point.c.
Referenced by MountMgrQueryPoints().
NTSTATUS QuerySuggestedLinkName | ( | IN PUNICODE_STRING | SymbolicName, |
OUT PUNICODE_STRING | SuggestedLinkName, | ||
OUT PBOOLEAN | UseOnlyIfThereAreNoOtherLinks | ||
) |
Definition at line 621 of file symlink.c.
Referenced by MountMgrMountedDeviceArrival().
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 at line 451 of file symlink.c.
Referenced by MountMgrMountedDeviceArrival().
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 at line 1292 of file database.c.
Referenced by MountMgrVolumeMountPointCreated(), MountMgrVolumeMountPointDeleted(), OnlineMountedVolumes(), and ReconcileThisDatabaseWithMasterWorker().
VOID ReconcileAllDatabasesWithMaster | ( | IN PDEVICE_EXTENSION | DeviceExtension | ) |
Definition at line 1659 of file database.c.
Referenced by MountMgrDeviceControl().
VOID ReconcileThisDatabaseWithMaster | ( | IN PDEVICE_EXTENSION | DeviceExtension, |
IN PDEVICE_INFORMATION | DeviceInformation | ||
) |
Definition at line 1613 of file database.c.
Referenced by MountMgrCreatePointWorker(), MountMgrMountedDeviceArrival(), MountMgrTargetDeviceNotification(), MountMgrUniqueIdChangeRoutine(), MountMgrVolumeMountPointChanged(), and ReconcileAllDatabasesWithMaster().
Definition at line 560 of file database.c.