windows-nt/Source/XPSP1/NT/base/fs/hsm/inc/cli.h
2020-09-26 16:20:57 +08:00

220 lines
3.7 KiB
C

/*++
Copyright (C) Microsoft Corporation, 1996 - 1999
Module Name:
CLI.H
Abstract:
This module defines the prototype for the Command Line Interface
for HSM. These are interfaces the parse module of the CLI would
call
Author:
Ravisankar Pudipeddi (ravisp) 2/23/00
Environment:
User Mode
--*/
#ifndef _RSCLI_
#define _RSCLI_
#ifdef __cplusplus
extern "C" {
#endif
typedef enum _HSM_JOB_TYPE {
InvalidJobType = 0,
CopyFiles,
CreateFreeSpace,
Validate,
Unmanage
} HSM_JOB_TYPE;
typedef enum _HSM_JOB_FREQUENCY {
InvalidJobFrequency = 0,
Daily,
Weekly,
Monthly,
Once,
SystemStartup,
Login,
WhenIdle
} HSM_JOB_FREQUENCY;
typedef struct _HSM_JOB_SCHEDULE {
HSM_JOB_FREQUENCY Frequency;
union {
struct {
SYSTEMTIME Time;
DWORD Occurrence;
} Daily;
struct {
SYSTEMTIME Time;
DWORD Occurrence;
} Weekly;
struct {
SYSTEMTIME Time;
} Monthly;
struct {
SYSTEMTIME Time;
} Once;
struct {
} SystemStartup;
struct {
} Login;
struct {
DWORD Occurrence;
} WhenIdle;
} Parameters;
} HSM_JOB_SCHEDULE, *PHSM_JOB_SCHEDULE;
#define INVALID_DWORD_ARG ((DWORD) -1)
#define INVALID_POINTER_ARG NULL
#define CLI_ALL_STR L"*"
#ifdef CLI_IMPL
#define CLI_EXPORT __declspec(dllexport)
#else
#define CLI_EXPORT __declspec(dllimport)
#endif
CLI_EXPORT HRESULT
AdminSet(
IN DWORD RecallLimit,
IN DWORD AdminExempt,
IN DWORD MediaCopies,
IN DWORD Concurrency,
IN PVOID Schedule
);
CLI_EXPORT HRESULT
AdminShow(
IN BOOL RecallLimit,
IN BOOL AdminExempt,
IN BOOL MediaCopies,
IN BOOL Concurrency,
IN BOOL Schedule,
IN BOOL General,
IN BOOL Manageables,
IN BOOL Managed,
IN BOOL Media
);
CLI_EXPORT HRESULT
AdminJob(
IN BOOL Enable
);
CLI_EXPORT HRESULT
VolumeManage(
IN LPWSTR *Volumes,
IN DWORD NumberOfVolumes,
IN DWORD Dfs,
IN DWORD Size,
IN DWORD Access,
IN LPWSTR RulePath,
IN LPWSTR RuleFileSpec,
IN BOOL Include,
IN BOOL Recursive
);
CLI_EXPORT HRESULT
VolumeUnmanage(
IN LPWSTR *Volumes,
IN DWORD NumberOfVolumes,
IN BOOL Full
);
CLI_EXPORT HRESULT
VolumeSet(
IN LPWSTR *Volumes,
IN DWORD NumberOfVolumes,
IN DWORD Dfs,
IN DWORD Size,
IN DWORD Access,
IN LPWSTR RulePath,
IN LPWSTR RuleFileSpec,
IN BOOL Include,
IN BOOL Recursive
);
CLI_EXPORT HRESULT
VolumeShow(
IN LPWSTR *Volumes,
IN DWORD NumberOfVolumes,
IN BOOL Dfs,
IN BOOL Size,
IN BOOL Access,
IN BOOL Rules,
IN BOOL Statistics
);
CLI_EXPORT HRESULT
VolumeDeleteRule(
IN LPWSTR *Volumes,
IN DWORD NumberOfVolumes,
IN LPWSTR RulePath,
IN LPWSTR RuleFileSpec
);
CLI_EXPORT HRESULT
VolumeJob(
IN LPWSTR *Volumes,
IN DWORD NumberOfVolumes,
IN HSM_JOB_TYPE Job,
IN BOOL RunOrCancel,
IN BOOL Synchronous
);
CLI_EXPORT HRESULT
FileRecall(
IN LPWSTR *FileSpecs,
IN DWORD NumberOfFileSpecs
);
CLI_EXPORT HRESULT
MediaSynchronize(
IN DWORD CopySetNumber,
IN BOOL Synchronous
);
CLI_EXPORT HRESULT
MediaRecreateMaster(
IN LPWSTR MediaName,
IN DWORD CopySetNumber,
IN BOOL Synchronous
);
CLI_EXPORT HRESULT
MediaDelete(
IN LPWSTR *MediaNames,
IN DWORD NumberOfMedia,
IN DWORD CopySetNumber
);
CLI_EXPORT HRESULT
MediaShow(
IN LPWSTR *MediaNames,
IN DWORD NumberOfMedia,
IN BOOL Name,
IN BOOL Status,
IN BOOL Capacity,
IN BOOL FreeSpace,
IN BOOL Version,
IN BOOL Copies
);
#ifdef __cplusplus
}
#endif
#endif // _RSCLI_