Embed:
(wiki syntax)
Show/hide line numbers
mountmgr.h
00001 /* 00002 * mountmgr.h 00003 * 00004 * Mount point manager interface. 00005 * 00006 * This file is part of the w32api package. 00007 * 00008 * Contributors: 00009 * Created by Casper S. Hornstrup <chorns@users.sourceforge.net> 00010 * 00011 * THIS SOFTWARE IS NOT COPYRIGHTED 00012 * 00013 * This source code is offered for use in the public domain. You may 00014 * use, modify or distribute it freely. 00015 * 00016 * This code is distributed in the hope that it will be useful but 00017 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY 00018 * DISCLAIMED. This includes but is not limited to warranties of 00019 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00020 * 00021 */ 00022 00023 #ifndef __MOUNTMGR_H 00024 #define __MOUNTMGR_H 00025 00026 #if __GNUC__ >=3 00027 #pragma GCC system_header 00028 #endif 00029 00030 #ifdef __cplusplus 00031 extern "C" { 00032 #endif 00033 00034 #include "ntddk.h" 00035 00036 DEFINE_GUID(MOUNTDEV_MOUNTED_DEVICE_GUID, 00037 0x53f5630d, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b); 00038 00039 #define MOUNTMGRCONTROLTYPE ((ULONG)'m') 00040 #define MOUNTDEVCONTROLTYPE ((ULONG)'M') 00041 00042 #define MOUNTMGR_DEVICE_NAME L"\\Device\\MountPointManager" 00043 #define MOUNTMGR_DOS_DEVICE_NAME L"\\\\.\\MountPointManager" 00044 00045 #define IOCTL_MOUNTMGR_CREATE_POINT \ 00046 CTL_CODE(MOUNTMGRCONTROLTYPE, 0, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) 00047 00048 #define IOCTL_MOUNTMGR_QUERY_POINTS \ 00049 CTL_CODE(MOUNTMGRCONTROLTYPE, 2, METHOD_BUFFERED, FILE_ANY_ACCESS) 00050 00051 #define IOCTL_MOUNTMGR_DELETE_POINTS \ 00052 CTL_CODE(MOUNTMGRCONTROLTYPE, 1, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) 00053 00054 #define IOCTL_MOUNTMGR_DELETE_POINTS_DBONLY \ 00055 CTL_CODE(MOUNTMGRCONTROLTYPE, 3, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) 00056 00057 #define IOCTL_MOUNTMGR_NEXT_DRIVE_LETTER \ 00058 CTL_CODE(MOUNTMGRCONTROLTYPE, 4, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) 00059 00060 #define IOCTL_MOUNTMGR_AUTO_DL_ASSIGNMENTS \ 00061 CTL_CODE(MOUNTMGRCONTROLTYPE, 5, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) 00062 00063 #define IOCTL_MOUNTMGR_VOLUME_MOUNT_POINT_CREATED \ 00064 CTL_CODE(MOUNTMGRCONTROLTYPE, 6, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) 00065 00066 #define IOCTL_MOUNTMGR_VOLUME_MOUNT_POINT_DELETED \ 00067 CTL_CODE(MOUNTMGRCONTROLTYPE, 7, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) 00068 00069 #define IOCTL_MOUNTMGR_CHANGE_NOTIFY \ 00070 CTL_CODE(MOUNTMGRCONTROLTYPE, 8, METHOD_BUFFERED, FILE_READ_ACCESS) 00071 00072 #define IOCTL_MOUNTMGR_KEEP_LINKS_WHEN_OFFLINE \ 00073 CTL_CODE(MOUNTMGRCONTROLTYPE, 9, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) 00074 00075 #define IOCTL_MOUNTMGR_CHECK_UNPROCESSED_VOLUMES \ 00076 CTL_CODE(MOUNTMGRCONTROLTYPE, 10, METHOD_BUFFERED, FILE_READ_ACCESS) 00077 00078 #define IOCTL_MOUNTMGR_VOLUME_ARRIVAL_NOTIFICATION \ 00079 CTL_CODE(MOUNTMGRCONTROLTYPE, 11, METHOD_BUFFERED, FILE_READ_ACCESS) 00080 00081 00082 typedef struct _MOUNTDEV_NAME { 00083 USHORT NameLength; 00084 WCHAR Name[1]; 00085 } MOUNTDEV_NAME, *PMOUNTDEV_NAME; 00086 00087 typedef struct _MOUNTMGR_CHANGE_NOTIFY_INFO { 00088 ULONG EpicNumber; 00089 } MOUNTMGR_CHANGE_NOTIFY_INFO, *PMOUNTMGR_CHANGE_NOTIFY_INFO; 00090 00091 typedef struct _MOUNTMGR_CREATE_POINT_INPUT { 00092 USHORT SymbolicLinkNameOffset; 00093 USHORT SymbolicLinkNameLength; 00094 USHORT DeviceNameOffset; 00095 USHORT DeviceNameLength; 00096 } MOUNTMGR_CREATE_POINT_INPUT, *PMOUNTMGR_CREATE_POINT_INPUT; 00097 00098 typedef struct _MOUNTMGR_DRIVE_LETTER_INFORMATION { 00099 BOOLEAN DriveLetterWasAssigned; 00100 UCHAR CurrentDriveLetter; 00101 } MOUNTMGR_DRIVE_LETTER_INFORMATION, *PMOUNTMGR_DRIVE_LETTER_INFORMATION; 00102 00103 typedef struct _MOUNTMGR_DRIVE_LETTER_TARGET { 00104 USHORT DeviceNameLength; 00105 WCHAR DeviceName[1]; 00106 } MOUNTMGR_DRIVE_LETTER_TARGET, *PMOUNTMGR_DRIVE_LETTER_TARGET; 00107 00108 typedef struct _MOUNTMGR_MOUNT_POINT { 00109 ULONG SymbolicLinkNameOffset; 00110 USHORT SymbolicLinkNameLength; 00111 ULONG UniqueIdOffset; 00112 USHORT UniqueIdLength; 00113 ULONG DeviceNameOffset; 00114 USHORT DeviceNameLength; 00115 } MOUNTMGR_MOUNT_POINT, *PMOUNTMGR_MOUNT_POINT; 00116 00117 typedef struct _MOUNTMGR_MOUNT_POINTS { 00118 ULONG Size; 00119 ULONG NumberOfMountPoints; 00120 MOUNTMGR_MOUNT_POINT MountPoints[1]; 00121 } MOUNTMGR_MOUNT_POINTS, *PMOUNTMGR_MOUNT_POINTS; 00122 00123 typedef struct _MOUNTMGR_TARGET_NAME { 00124 USHORT DeviceNameLength; 00125 WCHAR DeviceName[1]; 00126 } MOUNTMGR_TARGET_NAME, *PMOUNTMGR_TARGET_NAME; 00127 00128 typedef struct _MOUNTMGR_VOLUME_MOUNT_POINT { 00129 USHORT SourceVolumeNameOffset; 00130 USHORT SourceVolumeNameLength; 00131 USHORT TargetVolumeNameOffset; 00132 USHORT TargetVolumeNameLength; 00133 } MOUNTMGR_VOLUME_MOUNT_POINT, *PMOUNTMGR_VOLUME_MOUNT_POINT; 00134 00135 #ifdef __cplusplus 00136 } 00137 #endif 00138 00139 #endif /* __MOUNTMGR_H */
Generated on Tue Jul 12 2022 19:59:54 by
1.7.2