Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
#ifndef _INC_ASR_FMT__DR_STATE_H_
#define _INC_ASR_FMT__DR_STATE_H_
#define ASRFMT_WSZ_DOS_DEVICES_PREFIX L"\\DosDevices\\"
#define ASRFMT_CB_DOS_DEVICES_PREFIX 24
#define ASRFMT_LOOKS_LIKE_DOS_DEVICE(name, length) \
((length > ASRFMT_CB_DOS_DEVICES_PREFIX) && \ (!memcmp(name, ASRFMT_WSZ_DOS_DEVICES_PREFIX, ASRFMT_CB_DOS_DEVICES_PREFIX)))
#define ASRFMT_WSZ_VOLUME_GUID_PREFIX L"\\??\\Volume{"
#define ASRFMT_CB_VOLUME_GUID_PREFIX 22
#define ASRFMT_LOOKS_LIKE_VOLUME_GUID(name, length) \
((length > ASRFMT_CB_VOLUME_GUID_PREFIX) && \ (!memcmp(name, ASRFMT_WSZ_VOLUME_GUID_PREFIX, ASRFMT_CB_VOLUME_GUID_PREFIX)))
#define ASRFMT_CCH_VOLUME_GUID 64
#define ASRFMT_CCH_DOS_PATH 1024
#define ASRFMT_CCH_FS_NAME 16
#define ASRFMT_CCH_VOLUME_LABEL 256
#define ASRFMT_CCH_DEVICE_PATH 1024
typedef struct _ASRFMT_VOLUME_INFO {
struct _ASRFMT_VOLUME_INFO *pNext;
DWORD dwIndex;
WCHAR szGuid[ASRFMT_CCH_VOLUME_GUID];
WCHAR szDosPath[ASRFMT_CCH_DOS_PATH];
WCHAR szFsName[ASRFMT_CCH_FS_NAME];
WCHAR szLabel[ASRFMT_CCH_VOLUME_LABEL];
DWORD dwClusterSize;
BOOL IsDosPathAssigned;
} ASRFMT_VOLUME_INFO, *PASRFMT_VOLUME_INFO;
typedef struct _ASRFMT_REMOVABLE_MEDIA_INFO {
struct _ASRFMT_REMOVABLE_MEDIA_INFO *pNext;
DWORD dwIndex;
WCHAR szDevicePath[ASRFMT_CCH_DEVICE_PATH];
WCHAR szVolumeGuid[ASRFMT_CCH_VOLUME_GUID];
WCHAR szDosPath[ASRFMT_CCH_DOS_PATH];
} ASRFMT_REMOVABLE_MEDIA_INFO, *PASRFMT_REMOVABLE_MEDIA_INFO;
typedef struct _ASRFMT_STATE_INFO {
PASRFMT_VOLUME_INFO pVolume;
DWORD countVolume;
PASRFMT_REMOVABLE_MEDIA_INFO pRemovableMedia;
DWORD countMedia;
} ASRFMT_STATE_INFO, *PASRFMT_STATE_INFO;
typedef enum __AsrfmtpMessageSeverity { _SeverityInfo = 0, _SeverityWarning, _SeverityError } _AsrfmtpMessageSeverity;
// Public functions
//
// From format.cpp
//
extern BOOL g_bFormatInProgress; extern BOOL g_bFormatSuccessful; extern INT g_iFormatPercentComplete;
BOOL FormatInitialise();
BOOL IsFsTypeOkay( IN PASRFMT_VOLUME_INFO pVolume, OUT PBOOL pIsLabelIntact );
BOOL IsVolumeIntact( IN PASRFMT_VOLUME_INFO pVolume );
BOOL FormatVolume( PASRFMT_VOLUME_INFO pVolume );
BOOL FormatCleanup();
VOID MountFileSystem( IN PASRFMT_VOLUME_INFO pVolume );
//
// dr_state.cpp
//
BOOL BuildStateInfo( IN PASRFMT_STATE_INFO pState );
VOID FreeStateInfo( IN OUT PASRFMT_STATE_INFO *ppState );
BOOL ReadStateInfo( IN PCWSTR lpwszFilePath, OUT PASRFMT_STATE_INFO *ppState );
BOOL SetDosName( IN PWSTR lpVolumeGuid, IN PWSTR lpDosPath );
BOOL SetRemovableMediaGuid( IN PWSTR lpDeviceName, IN PWSTR lpGuid );
BOOL WriteStateInfo( IN DWORD_PTR AsrContext, // AsrContext to pass in to AsrAddSifEntry
IN PASRFMT_STATE_INFO pState // data to write.
);
//
// Functions for logging error messages
//
VOID AsrfmtpInitialiseErrorFile();
VOID AsrfmtpCloseErrorFile();
VOID AsrfmtpLogErrorMessage( IN _AsrfmtpMessageSeverity Severity, IN const LPCTSTR Message );
#endif // ifndef _INC_ASR_FMT__DR_STATE_H_
|