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