mxStartup; micekeychip fix; SDCM fix
This commit is contained in:
336
lib/ewfapi.h
Normal file
336
lib/ewfapi.h
Normal file
@@ -0,0 +1,336 @@
|
||||
/****************************************************************************
|
||||
|
||||
Copyright (c) 2003 Microsoft Corporation
|
||||
|
||||
Module Name:
|
||||
|
||||
ewfapi.h
|
||||
|
||||
Abstract:
|
||||
|
||||
Defines the EWF APIs
|
||||
|
||||
Environment:
|
||||
|
||||
User mode
|
||||
|
||||
Revision History:
|
||||
|
||||
|
||||
****************************************************************************/
|
||||
#ifndef __EWFAPI_H__
|
||||
#define __EWFAPI_H__
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#ifndef EWFIMP
|
||||
#define EWFIMP __declspec(dllimport)
|
||||
#endif
|
||||
|
||||
|
||||
typedef struct _EWF_VOLUME_NAME_ENTRY
|
||||
{
|
||||
struct _EWF_VOLUME_NAME_ENTRY * Next;
|
||||
WCHAR Name[1];
|
||||
} EWF_VOLUME_NAME_ENTRY, *PEWF_VOLUME_NAME_ENTRY;
|
||||
|
||||
|
||||
typedef enum
|
||||
{
|
||||
EWF_NO_CMD = 0, // no pending command
|
||||
EWF_ENABLE, // overlay will be enabled
|
||||
EWF_DISABLE, // overlay will be disabled
|
||||
EWF_SET_LEVEL, // overlay level will be set
|
||||
EWF_COMMIT // current level will be committed to the protected volume
|
||||
} EWF_CMD;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
EWF_ENABLED, // The overlay is enabled on the volume
|
||||
EWF_DISABLED // The overlay is disabled on the volume
|
||||
} EWF_STATE;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
EWF_DISK, // DISK overlay
|
||||
EWF_RAM, // RAM overlay, with an associated overlay volume store
|
||||
EWF_RAM_REG, // RAM overlay, without an associated overlay volume store
|
||||
} EWF_TYPE, *PEWF_TYPE;
|
||||
|
||||
|
||||
#define EWF_MAX_DEVICE_NAME_LENGTH (256)
|
||||
#define EWF_VOLUME_ID_SIZE (16)
|
||||
|
||||
typedef struct _EWF_VOLUME_DESC
|
||||
{
|
||||
WCHAR DeviceName[EWF_MAX_DEVICE_NAME_LENGTH]; // Device name of the volume
|
||||
UCHAR VolumeID[EWF_VOLUME_ID_SIZE]; // 16 byte volume identifier
|
||||
} EWF_VOLUME_DESC, * PEWF_VOLUME_DESC;
|
||||
|
||||
|
||||
//
|
||||
// This is a variable size structure depending on how many protected overlay
|
||||
// volumes there are.
|
||||
//
|
||||
typedef struct _EWF_OVERLAY_STORE_CONFIG
|
||||
{
|
||||
ULONG FormatVersion; // Version of Overlay-Store format
|
||||
LONGLONG VolumeSize; // Size of the overlay volume in bytes
|
||||
|
||||
ULONG NumSegments; // Number of segments that the volume is divided into
|
||||
ULONG FreeSegments; // Number of segments that are free
|
||||
ULONG SegmentSize; // Size of each segment in bytes
|
||||
|
||||
ULONG MaxVolumes; // Maximum number of protected volumes
|
||||
ULONG NumVolumes; // Number of currently protected volumes
|
||||
USHORT MaxLevels; // Maximum number of overlay levels
|
||||
EWF_VOLUME_DESC VolumeDescArray[1];
|
||||
// The array holds NumVolume count volume descriptions
|
||||
} EWF_OVERLAY_STORE_CONFIG, * PEWF_OVERLAY_STORE_CONFIG;
|
||||
|
||||
|
||||
typedef struct _EWF_COMMAND
|
||||
{
|
||||
EWF_CMD Command; // ENABLE, DISABLE, etc..
|
||||
ULONG Param1; // command first parameter.
|
||||
ULONG Param2; // command second parameter.
|
||||
|
||||
} EWF_COMMAND, *PEWF_COMMAND;
|
||||
|
||||
|
||||
#define EWF_MAX_LEVEL_NAME_LENGTH (64)
|
||||
|
||||
typedef struct _EWF_LEVEL_DESC
|
||||
{
|
||||
WCHAR LevelName[EWF_MAX_LEVEL_NAME_LENGTH];
|
||||
// friendly name of the level
|
||||
// If the length is equal to EWF_MAX_LEVEL_NAME_LENGTH
|
||||
// then no null terminator is stored.
|
||||
FILETIME LevelEndTime; // time at which the level was ended
|
||||
LONGLONG LevelDataSize; // Size of the data in the level in bytes
|
||||
} EWF_LEVEL_DESC, * PEWF_LEVEL_DESC;
|
||||
|
||||
|
||||
#define EWF_MAX_PERSISTENT_DATA (32) // maximum number of bytes that can be persisted
|
||||
|
||||
|
||||
typedef struct _EWF_VOLUME_CONFIG
|
||||
{
|
||||
EWF_TYPE Type; // Type of overlay for this volume
|
||||
EWF_STATE State; // state of the overlay for this volume, ENABLED or DISABLED
|
||||
EWF_COMMAND BootCommand; // Command to execute on next restart
|
||||
|
||||
UCHAR PersistentData[EWF_MAX_PERSISTENT_DATA];
|
||||
// Small amount of persistent data that survives a restore
|
||||
|
||||
USHORT MaxLevels; // Maximum number of checkpoint levels for this volume
|
||||
ULONG ClumpSize; // 512 bytes
|
||||
USHORT CurrentLevel; // Current checkpoint level
|
||||
|
||||
union
|
||||
{
|
||||
struct
|
||||
{
|
||||
LONGLONG DiskMapSize; // Size of the mapping data on disk
|
||||
LONGLONG DiskDataSize; // Size of the data stored on disk for this protected volume
|
||||
} DiskOverlay;
|
||||
|
||||
struct
|
||||
{
|
||||
LONGLONG RamDataSize; // Size of the data stored in RAM for this protected volume
|
||||
} RamOverlay;
|
||||
};
|
||||
ULONG MemMapSize; // Size of the mapping data in memory
|
||||
|
||||
EWF_VOLUME_DESC VolumeDesc; // volume device name, and volume ID
|
||||
|
||||
EWF_LEVEL_DESC LevelDescArray[1]; // Level descripton and end time, and level data size
|
||||
|
||||
} EWF_VOLUME_CONFIG, * PEWF_VOLUME_CONFIG;
|
||||
|
||||
|
||||
EWFIMP
|
||||
WCHAR
|
||||
WINAPI
|
||||
EwfMgrGetDriveLetterFromVolumeName(
|
||||
IN LPCWSTR lpVolumeName
|
||||
);
|
||||
|
||||
|
||||
EWFIMP
|
||||
BOOL
|
||||
WINAPI
|
||||
EwfMgrVolumeNameListIsEmpty(
|
||||
IN PEWF_VOLUME_NAME_ENTRY pVolumeNameList
|
||||
);
|
||||
|
||||
|
||||
EWFIMP
|
||||
VOID
|
||||
WINAPI
|
||||
EwfMgrVolumeNameEntryPop(
|
||||
IN PEWF_VOLUME_NAME_ENTRY * ppVolumeNameList
|
||||
);
|
||||
|
||||
|
||||
EWFIMP
|
||||
VOID
|
||||
WINAPI
|
||||
EwfMgrVolumeNameListDelete(
|
||||
IN PEWF_VOLUME_NAME_ENTRY pVolumeNameList
|
||||
);
|
||||
|
||||
|
||||
EWFIMP
|
||||
HANDLE
|
||||
WINAPI
|
||||
EwfMgrOpenProtected(
|
||||
IN LPCWSTR lpVolume
|
||||
);
|
||||
|
||||
EWFIMP
|
||||
BOOL
|
||||
WINAPI
|
||||
EwfMgrClose(
|
||||
IN HANDLE hDevice
|
||||
);
|
||||
|
||||
EWFIMP
|
||||
BOOL
|
||||
WINAPI
|
||||
EwfMgrClearCommand(
|
||||
IN HANDLE hDevice
|
||||
);
|
||||
|
||||
|
||||
EWFIMP
|
||||
BOOL
|
||||
WINAPI
|
||||
EwfMgrSetPersistentData(
|
||||
IN HANDLE hDevice,
|
||||
IN LPBYTE lpPersistentData,
|
||||
IN DWORD cbPersistentData
|
||||
);
|
||||
|
||||
|
||||
EWFIMP
|
||||
BOOL
|
||||
WINAPI
|
||||
EwfMgrGetPersistentData(
|
||||
IN HANDLE hDevice,
|
||||
OUT LPBYTE lpPersistentData,
|
||||
IN DWORD cbPersistentData
|
||||
);
|
||||
|
||||
|
||||
|
||||
EWFIMP
|
||||
BOOL
|
||||
WINAPI
|
||||
EwfMgrCheckpoint(
|
||||
IN HANDLE hDevice,
|
||||
IN OPTIONAL LPCWSTR lpDescription
|
||||
);
|
||||
|
||||
|
||||
EWFIMP
|
||||
BOOL
|
||||
WINAPI
|
||||
EwfMgrRestore(
|
||||
IN HANDLE hDevice
|
||||
);
|
||||
|
||||
EWFIMP
|
||||
BOOL
|
||||
WINAPI
|
||||
EwfMgrDisable(
|
||||
IN HANDLE hDevice,
|
||||
IN BOOL fCommit
|
||||
);
|
||||
|
||||
|
||||
EWFIMP
|
||||
BOOL
|
||||
WINAPI
|
||||
EwfMgrEnable(
|
||||
IN HANDLE hDevice
|
||||
);
|
||||
|
||||
EWFIMP
|
||||
BOOL
|
||||
WINAPI
|
||||
EwfMgrCommit(
|
||||
IN HANDLE hDevice
|
||||
);
|
||||
|
||||
EWFIMP
|
||||
BOOL
|
||||
WINAPI
|
||||
EwfMgrCommitAndDisableLive(
|
||||
IN HANDLE hDevice
|
||||
);
|
||||
|
||||
EWFIMP
|
||||
BOOL
|
||||
WINAPI
|
||||
EwfMgrCommitFile(
|
||||
IN HANDLE hDevice,
|
||||
IN LPWSTR lpFile
|
||||
);
|
||||
|
||||
EWFIMP
|
||||
BOOL
|
||||
WINAPI
|
||||
EwfMgrSetLevel(
|
||||
IN HANDLE hDevice,
|
||||
IN OPTIONAL LPCWSTR lpDescription,
|
||||
IN int Level,
|
||||
IN BOOL fDeleteLevel
|
||||
);
|
||||
|
||||
EWFIMP
|
||||
PEWF_VOLUME_CONFIG
|
||||
WINAPI
|
||||
EwfMgrGetProtectedVolumeConfig(
|
||||
IN HANDLE hDevice
|
||||
);
|
||||
|
||||
EWFIMP
|
||||
PEWF_VOLUME_NAME_ENTRY
|
||||
WINAPI
|
||||
EwfMgrGetProtectedVolumeList(
|
||||
VOID
|
||||
);
|
||||
|
||||
EWFIMP
|
||||
HANDLE
|
||||
WINAPI
|
||||
EwfMgrOpenOverlayStore(
|
||||
IN BOOL fOpenForAsyncIO
|
||||
);
|
||||
|
||||
EWFIMP
|
||||
PEWF_OVERLAY_STORE_CONFIG
|
||||
WINAPI
|
||||
EwfMgrGetOverlayStoreConfig(
|
||||
IN HANDLE hDevice
|
||||
);
|
||||
|
||||
EWFIMP
|
||||
BOOL
|
||||
WINAPI
|
||||
EwfMgrRegisterLowSpaceNotification(
|
||||
IN HANDLE hDevice,
|
||||
IN LONGLONG FreeBytesRemaining,
|
||||
IN LPOVERLAPPED lpOverlapped
|
||||
);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // __EWFAPI_H__
|
||||
|
||||
BIN
lib/ewfapi.lib
Normal file
BIN
lib/ewfapi.lib
Normal file
Binary file not shown.
Reference in New Issue
Block a user