140 lines
4.3 KiB
C
140 lines
4.3 KiB
C
|
/*++
|
||
|
|
||
|
Copyright (c) 1997 Microsoft Corporation
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
volmgr.h
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
This file defines the services supplied by the volume managers.
|
||
|
|
||
|
Author:
|
||
|
|
||
|
norbertk
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
--*/
|
||
|
|
||
|
#ifndef _VOLMGR_
|
||
|
#define _VOLMGR_
|
||
|
|
||
|
#include <volmgrx.h>
|
||
|
|
||
|
#define IOCTL_INTERNAL_VOLMGR_PARTITION_ARRIVED CTL_CODE(VOLMGRCONTROLTYPE, 0, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
||
|
#define IOCTL_INTERNAL_VOLMGR_PARTITION_REMOVED CTL_CODE(VOLMGRCONTROLTYPE, 1, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
||
|
#define IOCTL_INTERNAL_VOLMGR_WHOLE_DISK_REMOVED CTL_CODE(VOLMGRCONTROLTYPE, 2, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
||
|
#define IOCTL_INTERNAL_VOLMGR_REFERENCE_DEPENDANT_VOLUMES CTL_CODE(VOLMGRCONTROLTYPE, 3, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
||
|
#define IOCTL_INTERNAL_VOLMGR_LEGACY_PARTITION_ARRIVED CTL_CODE(VOLMGRCONTROLTYPE, 4, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
||
|
#define IOCTL_INTERNAL_VOLMGR_LEGACY_PARTITION_REMOVED CTL_CODE(VOLMGRCONTROLTYPE, 5, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
||
|
#define IOCTL_INTERNAL_VOLMGR_QUERY_CHANGE_PARTITION CTL_CODE(VOLMGRCONTROLTYPE, 6, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
||
|
#define IOCTL_INTERNAL_VOLMGR_CANCEL_CHANGE_PARTITION CTL_CODE(VOLMGRCONTROLTYPE, 7, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
||
|
#define IOCTL_INTERNAL_VOLMGR_PARTITION_CHANGED CTL_CODE(VOLMGRCONTROLTYPE, 8, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
||
|
#define IOCTL_INTERNAL_VOLMGR_PMWMICOUNTERLIB_CONTEXT CTL_CODE(VOLMGRCONTROLTYPE, 9, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
||
|
#define IOCTL_INTERNAL_VOLMGR_SET_POWER_STATE CTL_CODE(VOLMGRCONTROLTYPE, 10, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
||
|
|
||
|
//
|
||
|
// Input structure for IOCTL_INTERNAL_VOLMGR_PARTITION_ARRIVED,
|
||
|
// IOCTL_INTERNAL_VOLMGR_PARTITION_REMOVED,
|
||
|
// IOCTL_INTERNAL_VOLMGR_REFERENCE_DEPENDANT_VOLUMES,
|
||
|
// IOCTL_INTERNAL_VOLMGR_QUERY_CHANGE_PARTITION,
|
||
|
// IOCTL_INTERNAL_VOLMGR_CANCEL_CHANGE_PARTITION, and
|
||
|
// IOCTL_INTERNAL_VOLMGR_PARTITION_CHANGED.
|
||
|
//
|
||
|
|
||
|
typedef struct _VOLMGR_PARTITION_INFORMATION {
|
||
|
PDEVICE_OBJECT PartitionDeviceObject;
|
||
|
PDEVICE_OBJECT WholeDiskPdo;
|
||
|
} VOLMGR_PARTITION_INFORMATION, *PVOLMGR_PARTITION_INFORMATION;
|
||
|
|
||
|
//
|
||
|
// Input structure for IOCTL_INTERNAL_VOLMGR_WHOLE_DISK_REMOVED.
|
||
|
//
|
||
|
|
||
|
typedef struct _VOLMGR_WHOLE_DISK_INFORMATION {
|
||
|
PDEVICE_OBJECT WholeDiskPdo;
|
||
|
} VOLMGR_WHOLE_DISK_INFORMATION, *PVOLMGR_WHOLE_DISK_INFORMATION;
|
||
|
|
||
|
//
|
||
|
// Output structure for IOCTL_INTERNAL_VOLMGR_REFERENCE_DEPENDANT_VOLUMES.
|
||
|
//
|
||
|
|
||
|
typedef struct _VOLMGR_DEPENDANT_VOLUMES_INFORMATION {
|
||
|
PDEVICE_RELATIONS DependantVolumeReferences;
|
||
|
} VOLMGR_DEPENDANT_VOLUMES_INFORMATION, *PVOLMGR_DEPENDANT_VOLUMES_INFORMATION;
|
||
|
|
||
|
//
|
||
|
// Input structure for IOCTL_INTERNAL_VOLMGR_LEGACY_PARTITION_ARRIVED and
|
||
|
// IOCTL_INTERNAL_VOLMGR_LEGACY_PARTITION_REMOVED.
|
||
|
//
|
||
|
|
||
|
typedef struct _VOLMGR_LEGACY_PARTITION_INFORMATION {
|
||
|
PDEVICE_OBJECT LegacyWholeDiskDeviceObject;
|
||
|
ULONG DiskNumber;
|
||
|
ULONG PartitionNumber;
|
||
|
} VOLMGR_LEGACY_PARTITION_INFORMATION, *PVOLMGR_LEGACY_PARTITION_INFORMATION;
|
||
|
|
||
|
//
|
||
|
// Input structure for IOCTL_INTERNAL_VOLMGR_PMWMICOUNTERLIB_CONTEXT
|
||
|
//
|
||
|
|
||
|
typedef
|
||
|
NTSTATUS
|
||
|
(*PPMWMICOUNTERENABLE) (
|
||
|
IN OUT PVOID* CounterContext
|
||
|
);
|
||
|
|
||
|
typedef
|
||
|
BOOLEAN
|
||
|
(*PPMWMICOUNTERDISABLE) (
|
||
|
IN PVOID* CounterContext,
|
||
|
IN BOOLEAN ForceDisable,
|
||
|
IN BOOLEAN DeallocateOnZero
|
||
|
);
|
||
|
|
||
|
typedef
|
||
|
VOID
|
||
|
(*PPMWMICOUNTERIOSTART) (
|
||
|
IN PVOID CounterContext,
|
||
|
OUT PLARGE_INTEGER TimeStamp
|
||
|
);
|
||
|
|
||
|
typedef
|
||
|
VOID
|
||
|
(*PPMWMICOUNTERIOCOMPLETE) (
|
||
|
IN PVOID CounterContext,
|
||
|
IN PIRP Irp,
|
||
|
IN PLARGE_INTEGER TimeStamp
|
||
|
);
|
||
|
|
||
|
typedef
|
||
|
VOID
|
||
|
(*PPMWMICOUNTERQUERY) (
|
||
|
IN PVOID CounterContext,
|
||
|
IN OUT PDISK_PERFORMANCE CounterBuffer,
|
||
|
IN PWCHAR StorageManagerName,
|
||
|
IN ULONG StorageDeviceNumber
|
||
|
);
|
||
|
|
||
|
typedef struct _PMWMICOUNTERLIB_CONTEXT {
|
||
|
PPMWMICOUNTERENABLE PmWmiCounterEnable;
|
||
|
PPMWMICOUNTERDISABLE PmWmiCounterDisable;
|
||
|
PPMWMICOUNTERIOSTART PmWmiCounterIoStart;
|
||
|
PPMWMICOUNTERIOCOMPLETE PmWmiCounterIoComplete;
|
||
|
PPMWMICOUNTERQUERY PmWmiCounterQuery;
|
||
|
} PMWMICOUNTERLIB_CONTEXT, *PPMWMICOUNTERLIB_CONTEXT;
|
||
|
|
||
|
//
|
||
|
// Input structure for IOCTL_INTERNAL_VOLMGR_SET_POWER_STATE
|
||
|
//
|
||
|
|
||
|
typedef struct _VOLMGR_POWER_STATE {
|
||
|
PDEVICE_OBJECT PartitionDeviceObject;
|
||
|
PDEVICE_OBJECT WholeDiskPdo;
|
||
|
DEVICE_POWER_STATE PowerState;
|
||
|
} VOLMGR_POWER_STATE, *PVOLMGR_POWER_STATE;
|
||
|
|
||
|
#endif
|