/*++ Copyright (c) 1998-1999 Microsoft Corporation Module Name: filelist.h Abstract: This is a local header file for filelist.c Author: Paul McDaniel (paulmcd) 23-Jan-2000 Revision History: --*/ #ifndef _FILELIST_H_ #define _FILELIST_H_ NTSTATUS SrGetObjectName ( IN PSR_DEVICE_EXTENSION pExtension OPTIONAL, IN PVOID pObject, OUT PUNICODE_STRING pName, IN ULONG NameLength ); PWSTR SrpFindFilePartW ( IN PWSTR pPath ); PSTR SrpFindFilePart ( IN PSTR pPath ); NTSTATUS SrFindCharReverse( IN PWSTR pToken, IN ULONG TokenLength, IN WCHAR FindChar, OUT PWSTR * ppToken, OUT PULONG pTokenLength ); NTSTATUS SrGetDestFileName( IN PSR_DEVICE_EXTENSION pExtension, IN PUNICODE_STRING pFileName, OUT PUNICODE_STRING pDestFileName ); NTSTATUS SrGetNextFileNumber ( OUT PULONG pNextFileNumber ); NTSTATUS SrGetNextSeqNumber ( OUT PINT64 pNextSeqNumber ); NTSTATUS SrGetSystemVolume ( OUT PUNICODE_STRING pFileName, OUT PSR_DEVICE_EXTENSION *ppSystemVolumeExtension, IN ULONG FileNameLength ); // // a backup history, for only performing one backup per session // #define BACKUP_BUCKET_COUNT 2003 // a prime number #define BACKUP_BUCKET_LENGTH (5 * 1024 * 1024) // 5mb NTSTATUS SrMarkFileBackedUp( IN PSR_DEVICE_EXTENSION pExtension, IN PUNICODE_STRING pFileName, IN USHORT StreamNameLength, IN SR_EVENT_TYPE CurrentEvent, IN SR_EVENT_TYPE FutureEventsToIgnore ); BOOLEAN SrHasFileBeenBackedUp( IN PSR_DEVICE_EXTENSION pExtension, IN PUNICODE_STRING pFileName, IN USHORT StreamNameLength, IN SR_EVENT_TYPE EventType ); NTSTATUS SrResetBackupHistory ( IN PSR_DEVICE_EXTENSION pExtension, IN PUNICODE_STRING pFileName OPTIONAL, IN USHORT StreamNameLength OPTIONAL, IN SR_EVENT_TYPE EventType ); // // the size of the full buffer // #define SR_RENAME_BUFFER_LENGTH ( sizeof(FILE_RENAME_INFORMATION) \ +SR_MAX_FILENAME_LENGTH \ +sizeof(WCHAR) ) #define SR_FILENAME_BUFFER_LENGTH ( sizeof(UNICODE_STRING) \ +SR_MAX_FILENAME_LENGTH \ +sizeof(WCHAR) ) #define SR_FILENAME_BUFFER_DEPTH 50 PVOID SrResetHistory( IN PHASH_KEY pKey, IN PVOID pEntryContext, PUNICODE_STRING pDirectoryName ); PDEVICE_OBJECT SrGetVolumeDevice ( PFILE_OBJECT pFileObject ); NTSTATUS SrSetFileSecurity ( IN HANDLE FileHandle, IN BOOLEAN SystemOnly, IN BOOLEAN SetDacl ); NTSTATUS SrGetVolumeGuid ( IN PUNICODE_STRING pVolumeName, OUT PWCHAR pVolumeGuid ); NTSTATUS SrAllocateFileNameBuffer ( IN ULONG TokenLength, OUT PUNICODE_STRING * ppBuffer ); VOID SrFreeFileNameBuffer ( IN PUNICODE_STRING pBuffer ); NTSTATUS SrGetNumberOfLinks ( IN PDEVICE_OBJECT NextDeviceObject, IN PFILE_OBJECT FileObject, OUT ULONG * pNumberOfLinks ); NTSTATUS SrCheckVolume ( IN PSR_DEVICE_EXTENSION pExtension, IN BOOLEAN ForceCheck ); NTSTATUS SrCheckForRestoreLocation ( IN PSR_DEVICE_EXTENSION pExtension ); NTSTATUS SrGetMountVolume ( IN PFILE_OBJECT pFileObject, OUT PUNICODE_STRING * ppMountVolume ); NTSTATUS SrCheckFreeDiskSpace ( IN HANDLE FileHandle, IN PUNICODE_STRING pVolumeName OPTIONAL ); NTSTATUS SrSetSecurityObjectAsSystem ( IN HANDLE Handle, IN SECURITY_INFORMATION SecurityInformation, IN PSECURITY_DESCRIPTOR SecurityDescriptor ); NTSTATUS SrCheckForMountsInPath( IN PSR_DEVICE_EXTENSION pExtension, IN PFILE_OBJECT pFileObject, OUT BOOLEAN * pMountInPath ); NTSTATUS SrGetShortFileName ( IN PSR_DEVICE_EXTENSION pExtension, IN PFILE_OBJECT pFileObject, OUT PUNICODE_STRING pShortName ); #endif // _FILELIST_H_