mirror of https://github.com/UMSKT/xpmgr.git
409 lines
13 KiB
Plaintext
409 lines
13 KiB
Plaintext
//////////////////////////////////////
|
|
// Imports
|
|
//
|
|
|
|
import "oaidl.idl";
|
|
|
|
|
|
//////////////////////////////////////
|
|
// Typedefs and enums
|
|
//
|
|
|
|
//
|
|
// FSRM object ID
|
|
//
|
|
typedef GUID FSRM_OBJECT_ID;
|
|
|
|
|
|
//
|
|
// Quota flags
|
|
//
|
|
|
|
typedef enum _FsrmQuotaFlags {
|
|
|
|
// Persistent flags
|
|
FsrmQuotaFlags_Enforce = 0x00000100,
|
|
FsrmQuotaFlags_Disable = 0x00000200,
|
|
|
|
// Quota status flags
|
|
FsrmQuotaFlags_StatusIncomplete = 0x00010000,
|
|
FsrmQuotaFlags_StatusRebuilding = 0x00020000
|
|
|
|
} FsrmQuotaFlags;
|
|
|
|
|
|
//
|
|
// File screen flags
|
|
//
|
|
|
|
typedef enum _FsrmFileScreenFlags {
|
|
|
|
// Persistent flags
|
|
FsrmFileScreenFlags_Enforce = 0x00000001
|
|
|
|
} FsrmFileScreenFlags;
|
|
|
|
|
|
//
|
|
// General Collection
|
|
//
|
|
|
|
typedef enum _FsrmCollectionState {
|
|
|
|
FsrmCollectionState_Fetching = 1,
|
|
FsrmCollectionState_Committing = 2,
|
|
FsrmCollectionState_Complete = 3,
|
|
FsrmCollectionState_Cancelled = 4
|
|
|
|
} FsrmCollectionState;
|
|
|
|
typedef enum _FsrmEnumOptions {
|
|
|
|
FsrmEnumOptions_None = 0x00000000,
|
|
FsrmEnumOptions_Asynchronous = 0x00000001,
|
|
FsrmEnumOptions_CheckRecycleBin = 0x00000002,
|
|
FsrmEnumOptions_IncludeClusterNodes = 0x00000004
|
|
|
|
} FsrmEnumOptions;
|
|
|
|
typedef enum _FsrmCommitOptions {
|
|
|
|
FsrmCommitOptions_None = 0x00000000,
|
|
FsrmCommitOptions_Asynchronous = 0x00000001
|
|
|
|
} FsrmCommitOptions;
|
|
|
|
typedef enum _FsrmTemplateApplyOptions {
|
|
|
|
FsrmTemplateApplyOptions_ApplyToDerivedMatching = 1,
|
|
FsrmTemplateApplyOptions_ApplyToDerivedAll = 2
|
|
|
|
} FsrmTemplateApplyOptions;
|
|
|
|
|
|
//
|
|
// General Action
|
|
//
|
|
|
|
typedef enum _FsrmActionType {
|
|
|
|
FsrmActionType_Unknown = 0,
|
|
FsrmActionType_EventLog = 1,
|
|
FsrmActionType_Email = 2,
|
|
FsrmActionType_Command = 3,
|
|
FsrmActionType_Report = 4
|
|
|
|
} FsrmActionType;
|
|
|
|
|
|
//
|
|
// EventLog Action
|
|
//
|
|
|
|
typedef enum _FsrmEventType {
|
|
|
|
FsrmEventType_Unknown = 0,
|
|
FsrmEventType_Information = 1,
|
|
FsrmEventType_Warning = 2,
|
|
FsrmEventType_Error = 3
|
|
|
|
} FsrmEventType;
|
|
|
|
|
|
//
|
|
// Command Action
|
|
//
|
|
|
|
typedef enum _FsrmAccountType {
|
|
|
|
FsrmAccountType_Unknown = 0,
|
|
FsrmAccountType_NetworkService = 1,
|
|
FsrmAccountType_LocalService = 2,
|
|
FsrmAccountType_LocalSystem = 3,
|
|
FsrmAccountType_InProc = 4,
|
|
FsrmAccountType_External = 5
|
|
|
|
} FsrmAccountType;
|
|
|
|
|
|
//
|
|
// Storage Reports
|
|
//
|
|
|
|
typedef enum _FsrmReportType {
|
|
|
|
FsrmReportType_Unknown = 0,
|
|
FsrmReportType_LargeFiles = 1,
|
|
FsrmReportType_FilesByType = 2,
|
|
FsrmReportType_LeastRecentlyAccessed = 3,
|
|
FsrmReportType_MostRecentlyAccessed = 4,
|
|
FsrmReportType_QuotaUsage = 5,
|
|
FsrmReportType_FilesByOwner = 6,
|
|
FsrmReportType_ExportReport = 7,
|
|
FsrmReportType_DuplicateFiles = 8,
|
|
FsrmReportType_FileScreenAudit = 9,
|
|
FsrmReportType_FilesByProperty = 10,
|
|
FsrmReportType_AutomaticClassification = 11,
|
|
FsrmReportType_Expiration = 12
|
|
|
|
} FsrmReportType;
|
|
|
|
typedef enum _FsrmReportFormat {
|
|
|
|
FsrmReportFormat_Unknown = 0,
|
|
FsrmReportFormat_DHtml = 1,
|
|
FsrmReportFormat_Html = 2,
|
|
FsrmReportFormat_Txt = 3,
|
|
FsrmReportFormat_Csv = 4,
|
|
FsrmReportFormat_Xml = 5
|
|
|
|
} FsrmReportFormat;
|
|
|
|
typedef enum _FsrmReportRunningStatus {
|
|
|
|
FsrmReportRunningStatus_Unknown = 0,
|
|
FsrmReportRunningStatus_NotRunning = 1,
|
|
FsrmReportRunningStatus_Queued = 2,
|
|
FsrmReportRunningStatus_Running = 3
|
|
|
|
} FsrmReportRunningStatus;
|
|
|
|
typedef enum _FsrmReportGenerationContext {
|
|
|
|
FsrmReportGenerationContext_Undefined = 1,
|
|
FsrmReportGenerationContext_ScheduledReport = 2,
|
|
FsrmReportGenerationContext_InteractiveReport = 3,
|
|
FsrmReportGenerationContext_IncidentReport = 4
|
|
|
|
} FsrmReportGenerationContext;
|
|
|
|
//
|
|
// Report filtering definitions
|
|
// ============================
|
|
//
|
|
// Filter Name Description Valid Reports Valid Value Types
|
|
// -------------- ---------------------- -------------------------- ------------------------------------------
|
|
// MinSize Minimum size Large Files uint64 or string representation
|
|
//
|
|
// MinAgeDays Minimum age in days Least Recently Accessed uint32 or string representation
|
|
// File Screen Audit
|
|
//
|
|
// MaxAgeDays Maximum age in days Most Recently Accessed uint32 or string representation
|
|
//
|
|
// MinQuotaUsage Minimum % quota usage Quota Usage uint32 or string representation
|
|
//
|
|
// FileGroups File group names Files by Type SAFEARRAY of strings (file group names)
|
|
//
|
|
// Owners Owners Files by Owner SAFEARRAY of strings (names or SIDs)
|
|
// File Screen Audit
|
|
//
|
|
// NamePattern File name pattern Large Files string (DOS file name pattern)
|
|
// Files by Type
|
|
// Least Recently Accessed
|
|
// Most Recently Accessed
|
|
// Files by Owner
|
|
// Export Report
|
|
// Duplicate Files
|
|
//
|
|
|
|
typedef enum _FsrmReportFilter {
|
|
|
|
FsrmReportFilter_MinSize = 1,
|
|
FsrmReportFilter_MinAgeDays = 2,
|
|
FsrmReportFilter_MaxAgeDays = 3,
|
|
FsrmReportFilter_MinQuotaUsage = 4,
|
|
FsrmReportFilter_FileGroups = 5,
|
|
FsrmReportFilter_Owners = 6,
|
|
FsrmReportFilter_NamePattern = 7,
|
|
FsrmReportFilter_Property = 8
|
|
|
|
} FsrmReportFilter;
|
|
|
|
typedef enum _FsrmReportLimit {
|
|
|
|
FsrmReportLimit_MaxFiles = 1,
|
|
FsrmReportLimit_MaxFileGroups = 2,
|
|
FsrmReportLimit_MaxOwners = 3,
|
|
FsrmReportLimit_MaxFilesPerFileGroup = 4,
|
|
FsrmReportLimit_MaxFilesPerOwner = 5,
|
|
FsrmReportLimit_MaxFilesPerDuplGroup = 6,
|
|
FsrmReportLimit_MaxDuplicateGroups = 7,
|
|
FsrmReportLimit_MaxQuotas = 8,
|
|
FsrmReportLimit_MaxFileScreenEvents = 9,
|
|
FsrmReportLimit_MaxPropertyValues = 10,
|
|
FsrmReportLimit_MaxFilesPerPropertyValue = 11
|
|
|
|
} FsrmReportLimit;
|
|
|
|
|
|
//
|
|
// Pipeline
|
|
//
|
|
|
|
typedef enum _FsrmPropertyDefinitionType {
|
|
|
|
FsrmPropertyDefinitionType_Unknown = 0,
|
|
FsrmPropertyDefinitionType_OrderedList = 1,
|
|
FsrmPropertyDefinitionType_MultiChoiceList = 2,
|
|
FsrmPropertyDefinitionType_String = 4,
|
|
FsrmPropertyDefinitionType_MultiString = 5,
|
|
FsrmPropertyDefinitionType_Int = 6,
|
|
FsrmPropertyDefinitionType_Bool = 7,
|
|
FsrmPropertyDefinitionType_Date = 8
|
|
|
|
} FsrmPropertyDefinitionType;
|
|
|
|
typedef enum _FsrmRuleType {
|
|
|
|
FsrmRuleType_Unknown = 0,
|
|
FsrmRuleType_Classification = 1,
|
|
FsrmRuleType_Generic = 2
|
|
|
|
} FsrmRuleType;
|
|
|
|
typedef enum _FsrmRuleFlags {
|
|
|
|
FsrmRuleFlags_Disabled = 0x00000100,
|
|
FsrmRuleFlags_Invalid = 0x00001000
|
|
|
|
} FsrmRuleFlags;
|
|
|
|
typedef enum _FsrmClassificationLoggingFlags {
|
|
|
|
FsrmClassificationLoggingFlags_None = 0x00000000,
|
|
FsrmClassificationLoggingFlags_ClassificationsInLogFile = 0x00000001,
|
|
FsrmClassificationLoggingFlags_ErrorsInLogFile = 0x00000002,
|
|
FsrmClassificationLoggingFlags_ClassificationsInSystemLog = 0x00000004,
|
|
FsrmClassificationLoggingFlags_ErrorsInSystemLog = 0x00000008
|
|
|
|
} FsrmClassificationLoggingFlags;
|
|
|
|
typedef enum _FsrmExecutionOption {
|
|
|
|
FsrmExecutionOption_Unknown = 0,
|
|
FsrmExecutionOption_EvaluateUnset = 1, // Apply as a default value.
|
|
FsrmExecutionOption_ReEvaluate_ConsiderExistingValue = 2, // Apply value but consider default and existing values.
|
|
FsrmExecutionOption_ReEvaluate_IgnoreExistingValue = 3 // Apply value but ignore default and existing values.
|
|
|
|
} FsrmExecutionOption;
|
|
|
|
typedef enum _FsrmStorageModuleCaps {
|
|
|
|
FsrmStorageModuleCaps_Unknown = 0x00000000,
|
|
FsrmStorageModuleCaps_CanGet = 0x00000001,
|
|
FsrmStorageModuleCaps_CanSet = 0x00000002
|
|
|
|
} FsrmStorageModuleCaps;
|
|
|
|
typedef enum _FsrmStorageModuleType {
|
|
|
|
FsrmStorageModuleType_Unknown = 0,
|
|
FsrmStorageModuleType_Cache = 1,
|
|
FsrmStorageModuleType_InFile = 2,
|
|
FsrmStorageModuleType_Database = 3
|
|
|
|
} FsrmStorageModuleType;
|
|
|
|
typedef enum _FsrmPropertyBagFlags
|
|
{
|
|
|
|
FsrmPropertyBagFlags_UpdatedByClassifier = 0x00000001, // The properties in the property bag were updated by a classifier.
|
|
FsrmPropertyBagFlags_FailedLoadingProperties = 0x00000002, // The properties in the property bag may only be partially classified because a failure occurred while loading properties from storage.
|
|
FsrmPropertyBagFlags_FailedSavingProperties = 0x00000004, // The properties in the property bag failed to be saved by the storage module with the highest precedence.
|
|
FsrmPropertyBagFlags_FailedClassifyingProperties = 0x00000008, // The properties in the property bag may only be partially classified because a failure occurred while classifying properties.
|
|
|
|
} FsrmPropertyBagFlags;
|
|
|
|
typedef enum _FsrmPropertyFlags {
|
|
|
|
FsrmPropertyFlags_Orphaned = 0x00000001, // The property does not have a corresponding definition in FSRM.
|
|
FsrmPropertyFlags_RetrievedFromCache = 0x00000002, // The property value came from the cache.
|
|
FsrmPropertyFlags_RetrievedFromStorage = 0x00000004, // The property value came from a storage module (other than the cache).
|
|
FsrmPropertyFlags_SetByClassifier = 0x00000008, // The property value came from a classifier.
|
|
FsrmPropertyFlags_Deleted = 0x00000010, // The property was deleted by a ClearFileProperty call.
|
|
FsrmPropertyFlags_Reclassified = 0x00000020, // The property value from storage was changed to a different value by a classifier.
|
|
FsrmPropertyFlags_AggregationFailed = 0x00000040, // There were values from multiple sources but they could not be aggregated together.
|
|
FsrmPropertyFlags_Existing = 0x00000080, // The property already exists in storage.
|
|
FsrmPropertyFlags_FailedLoadingProperties = 0x00000100, // The property may only be partially classified because a failure occurred while loading properties from storage.
|
|
FsrmPropertyFlags_FailedClassifyingProperties = 0x00000200, // The property may only be partially classified because a failure occurred while classifying properties.
|
|
|
|
FsrmPropertyFlags_PropertySourceMask = FsrmPropertyFlags_RetrievedFromCache |
|
|
FsrmPropertyFlags_RetrievedFromStorage |
|
|
FsrmPropertyFlags_SetByClassifier
|
|
|
|
} FsrmPropertyFlags;
|
|
|
|
typedef enum _FsrmPipelineModuleType {
|
|
|
|
FsrmPipelineModuleType_Unknown = 0,
|
|
FsrmPipelineModuleType_Storage = 1,
|
|
FsrmPipelineModuleType_Classifier = 2,
|
|
|
|
} FsrmPipelineModuleType;
|
|
|
|
typedef enum _FsrmGetFilePropertyOptions {
|
|
|
|
FsrmGetFilePropertyOptions_None = 0x00000000,
|
|
FsrmGetFilePropertyOptions_NoRuleEvaluation = 0x00000001
|
|
|
|
} FsrmGetFilePropertyOptions;
|
|
|
|
typedef enum _FsrmFileManagementType {
|
|
|
|
FsrmFileManagementType_Unknown = 0,
|
|
FsrmFileManagementType_Expiration = 1,
|
|
FsrmFileManagementType_Custom = 2
|
|
|
|
} FsrmFileManagementType;
|
|
|
|
typedef enum _FsrmFileManagementLoggingFlags {
|
|
|
|
FsrmFileManagementLoggingFlags_None = 0x00000000,
|
|
FsrmFileManagementLoggingFlags_Error = 0x00000001,
|
|
FsrmFileManagementLoggingFlags_Information = 0x00000002,
|
|
FsrmFileManagementLoggingFlags_Audit = 0x00000004
|
|
|
|
} FsrmFileManagementLoggingFlags;
|
|
|
|
typedef enum _FsrmPropertyConditionType {
|
|
|
|
FsrmPropertyConditionType_Unknown = 0,
|
|
FsrmPropertyConditionType_Equal = 1,
|
|
FsrmPropertyConditionType_NotEqual = 2,
|
|
FsrmPropertyConditionType_GreaterThan = 3,
|
|
FsrmPropertyConditionType_LessThan = 4,
|
|
FsrmPropertyConditionType_Contain = 5,
|
|
FsrmPropertyConditionType_Exist = 6,
|
|
FsrmPropertyConditionType_NotExist = 7,
|
|
FsrmPropertyConditionType_StartWith = 8,
|
|
FsrmPropertyConditionType_EndWith = 9,
|
|
FsrmPropertyConditionType_ContainedIn = 10,
|
|
FsrmPropertyConditionType_PrefixOf = 11,
|
|
FsrmPropertyConditionType_SuffixOf = 12
|
|
|
|
} FsrmPropertyConditionType;
|
|
|
|
|
|
//
|
|
// Streaming interface constants
|
|
//
|
|
|
|
typedef enum _FsrmFileStreamingMode
|
|
{
|
|
FsrmFileStreamingMode_Unknown = 0x00000000,
|
|
FsrmFileStreamingMode_Read = 0x00000001, // Gets a streaming interface for reading file content
|
|
FsrmFileStreamingMode_Write = 0x00000002, // Gets a streaming interface for writing file content
|
|
} FsrmFileStreamingMode;
|
|
|
|
|
|
typedef enum _FsrmFileStreamingInterfaceType
|
|
{
|
|
FsrmFileStreamingInterfaceType_Unknown = 0x00000000, // Gets an ILockBytes interface
|
|
FsrmFileStreamingInterfaceType_ILockBytes = 0x00000001, // Gets an ILockBytes interface
|
|
FsrmFileStreamingInterfaceType_IStream = 0x00000002, // Gets an IStream interface
|
|
} FsrmFileStreamingInterfaceType;
|
|
|
|
|
|
|
|
|