00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
#ifndef _VOLMGR_
00022
#define _VOLMGR_
00023
00024 #define VOLMGRCONTROLTYPE ((ULONG) 'v')
00025
00026 #define IOCTL_INTERNAL_VOLMGR_PARTITION_ARRIVED CTL_CODE(VOLMGRCONTROLTYPE, 0, METHOD_BUFFERED, FILE_ANY_ACCESS)
00027 #define IOCTL_INTERNAL_VOLMGR_PARTITION_REMOVED CTL_CODE(VOLMGRCONTROLTYPE, 1, METHOD_BUFFERED, FILE_ANY_ACCESS)
00028 #define IOCTL_INTERNAL_VOLMGR_WHOLE_DISK_REMOVED CTL_CODE(VOLMGRCONTROLTYPE, 2, METHOD_BUFFERED, FILE_ANY_ACCESS)
00029 #define IOCTL_INTERNAL_VOLMGR_REFERENCE_DEPENDANT_VOLUMES CTL_CODE(VOLMGRCONTROLTYPE, 3, METHOD_BUFFERED, FILE_ANY_ACCESS)
00030 #define IOCTL_INTERNAL_VOLMGR_LEGACY_PARTITION_ARRIVED CTL_CODE(VOLMGRCONTROLTYPE, 4, METHOD_BUFFERED, FILE_ANY_ACCESS)
00031 #define IOCTL_INTERNAL_VOLMGR_LEGACY_PARTITION_REMOVED CTL_CODE(VOLMGRCONTROLTYPE, 5, METHOD_BUFFERED, FILE_ANY_ACCESS)
00032 #define IOCTL_INTERNAL_VOLMGR_QUERY_CHANGE_PARTITION CTL_CODE(VOLMGRCONTROLTYPE, 6, METHOD_BUFFERED, FILE_ANY_ACCESS)
00033 #define IOCTL_INTERNAL_VOLMGR_CANCEL_CHANGE_PARTITION CTL_CODE(VOLMGRCONTROLTYPE, 7, METHOD_BUFFERED, FILE_ANY_ACCESS)
00034 #define IOCTL_INTERNAL_VOLMGR_PARTITION_CHANGED CTL_CODE(VOLMGRCONTROLTYPE, 8, METHOD_BUFFERED, FILE_ANY_ACCESS)
00035 #define IOCTL_INTERNAL_VOLMGR_PMWMICOUNTERLIB_CONTEXT CTL_CODE(VOLMGRCONTROLTYPE, 9, METHOD_BUFFERED, FILE_ANY_ACCESS)
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046 typedef struct _VOLMGR_PARTITION_INFORMATION {
00047 PDEVICE_OBJECT PartitionDeviceObject;
00048 PDEVICE_OBJECT WholeDiskPdo;
00049 }
VOLMGR_PARTITION_INFORMATION, *
PVOLMGR_PARTITION_INFORMATION;
00050
00051
00052
00053
00054
00055 typedef struct _VOLMGR_WHOLE_DISK_INFORMATION {
00056 PDEVICE_OBJECT WholeDiskPdo;
00057 }
VOLMGR_WHOLE_DISK_INFORMATION, *
PVOLMGR_WHOLE_DISK_INFORMATION;
00058
00059
00060
00061
00062
00063 typedef struct _VOLMGR_DEPENDANT_VOLUMES_INFORMATION {
00064 PDEVICE_RELATIONS DependantVolumeReferences;
00065 }
VOLMGR_DEPENDANT_VOLUMES_INFORMATION, *
PVOLMGR_DEPENDANT_VOLUMES_INFORMATION;
00066
00067
00068
00069
00070
00071
00072 typedef struct _VOLMGR_LEGACY_PARTITION_INFORMATION {
00073 PDEVICE_OBJECT LegacyWholeDiskDeviceObject;
00074 ULONG
DiskNumber;
00075 ULONG
PartitionNumber;
00076 }
VOLMGR_LEGACY_PARTITION_INFORMATION, *
PVOLMGR_LEGACY_PARTITION_INFORMATION;
00077
00078
00079
00080
00081
00082
typedef
00083
NTSTATUS
00084 (*PPMWMICOUNTERENABLE) (
00085 IN OUT PVOID* CounterContext
00086 );
00087
00088
typedef
00089 BOOLEAN
00090 (*PPMWMICOUNTERDISABLE) (
00091 IN PVOID* CounterContext,
00092 IN BOOLEAN ForceDisable,
00093 IN BOOLEAN DeallocateOnZero
00094 );
00095
00096
typedef
00097
VOID
00098 (*PPMWMICOUNTERIOSTART) (
00099 IN PVOID CounterContext,
00100 OUT PLARGE_INTEGER TimeStamp
00101 );
00102
00103
typedef
00104
VOID
00105 (*PPMWMICOUNTERIOCOMPLETE) (
00106 IN PVOID CounterContext,
00107 IN
PIRP Irp,
00108 IN PLARGE_INTEGER TimeStamp
00109 );
00110
00111
typedef
00112
VOID
00113 (*PPMWMICOUNTERQUERY) (
00114 IN PVOID CounterContext,
00115 IN OUT PDISK_PERFORMANCE CounterBuffer,
00116 IN PWCHAR StorageManagerName,
00117 IN ULONG StorageDeviceNumber
00118 );
00119
00120 typedef struct _PMWMICOUNTERLIB_CONTEXT {
00121 PPMWMICOUNTERENABLE PmWmiCounterEnable;
00122 PPMWMICOUNTERDISABLE PmWmiCounterDisable;
00123 PPMWMICOUNTERIOSTART PmWmiCounterIoStart;
00124 PPMWMICOUNTERIOCOMPLETE PmWmiCounterIoComplete;
00125 PPMWMICOUNTERQUERY PmWmiCounterQuery;
00126 }
PMWMICOUNTERLIB_CONTEXT, *
PPMWMICOUNTERLIB_CONTEXT;
00127
00128
00129
00130
00131
00132
DEFINE_GUID(VOLMGR_VOLUME_MANAGER_GUID, 0x53f5630e, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
00133
00134
#endif