Headers diff for virtdisk.dll between 6.3.9600.17415-Windows 8.1 and 10.0.10586.0-Windows 10 1511 10586.494 versions



 virtdisk.h (6.3.9600.17415-Windows 8.1)   virtdisk.h (10.0.10586.0-Windows 10 1511 10586.494) 
skipping to change at line 25 skipping to change at line 25
User mode User mode
--*/ --*/
#ifndef VIRT_DISK_API_DEF #ifndef VIRT_DISK_API_DEF
#define VIRT_DISK_API_DEF #define VIRT_DISK_API_DEF
#include <winapifamily.h> #include <winapifamily.h>
#pragma region Desktop Family #pragma region Desktop Family or VHD Package
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_PKG_VHD)
#if ((WINVER >= _WIN32_WINNT_WIN7) || defined(VIRTDISK_DEFINE_FLAGS)) #if ((WINVER >= _WIN32_WINNT_WIN7) || defined(VIRTDISK_DEFINE_FLAGS))
#if _MSC_VER >= 1200
#pragma warning(push) #pragma warning(push)
#pragma warning(disable : 4200) #pragma warning(disable:4820) /* padding added after data member */
#pragma warning(disable : 4201) #endif
#pragma warning(disable:4200) /* nonstandard extension used : zero-sized array i
n struct/union */
#pragma warning(disable:4201) /* nonstandard extension used : nameless struct/un
ion */
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
// //
// Identifiers for virtual storage types and providers // Identifiers for virtual storage types and providers
// //
#ifndef _VIRTUAL_STORAGE_TYPE_DEFINED #ifndef _VIRTUAL_STORAGE_TYPE_DEFINED
skipping to change at line 62 skipping to change at line 65
DEFINE_GUID(VIRTUAL_STORAGE_TYPE_VENDOR_UNKNOWN, 0x00000000, 0x0000, 0x0000, 0x0 0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00); DEFINE_GUID(VIRTUAL_STORAGE_TYPE_VENDOR_UNKNOWN, 0x00000000, 0x0000, 0x0000, 0x0 0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
// {EC984AEC-A0F9-47e9-901F-71415A66345B} // {EC984AEC-A0F9-47e9-901F-71415A66345B}
DEFINE_GUID(VIRTUAL_STORAGE_TYPE_VENDOR_MICROSOFT, 0xec984aec, 0xa0f9, 0x47e9, 0 x90, 0x1f, 0x71, 0x41, 0x5a, 0x66, 0x34, 0x5b); DEFINE_GUID(VIRTUAL_STORAGE_TYPE_VENDOR_MICROSOFT, 0xec984aec, 0xa0f9, 0x47e9, 0 x90, 0x1f, 0x71, 0x41, 0x5a, 0x66, 0x34, 0x5b);
#endif #endif
#define VIRTUAL_STORAGE_TYPE_DEVICE_UNKNOWN 0 #define VIRTUAL_STORAGE_TYPE_DEVICE_UNKNOWN 0
#define VIRTUAL_STORAGE_TYPE_DEVICE_ISO 1 #define VIRTUAL_STORAGE_TYPE_DEVICE_ISO 1
#define VIRTUAL_STORAGE_TYPE_DEVICE_VHD 2 #define VIRTUAL_STORAGE_TYPE_DEVICE_VHD 2
#define VIRTUAL_STORAGE_TYPE_DEVICE_VHDX 3 #define VIRTUAL_STORAGE_TYPE_DEVICE_VHDX 3
#define VIRTUAL_STORAGE_TYPE_DEVICE_VHDSET 4
#if !defined(VIRTDISK_DEFINE_FLAGS) #if !defined(VIRTDISK_DEFINE_FLAGS)
// The default RW Depth parameter value // The default RW Depth parameter value
#define OPEN_VIRTUAL_DISK_RW_DEPTH_DEFAULT 1 #define OPEN_VIRTUAL_DISK_RW_DEPTH_DEFAULT 1
// Version definitions // Version definitions
typedef enum _OPEN_VIRTUAL_DISK_VERSION typedef enum _OPEN_VIRTUAL_DISK_VERSION
{ {
OPEN_VIRTUAL_DISK_VERSION_UNSPECIFIED = 0, OPEN_VIRTUAL_DISK_VERSION_UNSPECIFIED = 0,
OPEN_VIRTUAL_DISK_VERSION_1 = 1, OPEN_VIRTUAL_DISK_VERSION_1 = 1,
OPEN_VIRTUAL_DISK_VERSION_2 = 2, OPEN_VIRTUAL_DISK_VERSION_2 = 2,
OPEN_VIRTUAL_DISK_VERSION_3 = 3,
} OPEN_VIRTUAL_DISK_VERSION; } OPEN_VIRTUAL_DISK_VERSION;
// Versioned OpenVirtualDisk parameter structure // Versioned OpenVirtualDisk parameter structure
typedef struct _OPEN_VIRTUAL_DISK_PARAMETERS typedef struct _OPEN_VIRTUAL_DISK_PARAMETERS
{ {
OPEN_VIRTUAL_DISK_VERSION Version; OPEN_VIRTUAL_DISK_VERSION Version;
union union
{ {
struct struct
{ {
ULONG RWDepth; ULONG RWDepth;
} Version1; } Version1;
struct struct
{ {
BOOL GetInfoOnly; BOOL GetInfoOnly;
BOOL ReadOnly; BOOL ReadOnly;
GUID ResiliencyGuid; GUID ResiliencyGuid;
} Version2; } Version2;
struct
{
BOOL GetInfoOnly;
BOOL ReadOnly;
GUID ResiliencyGuid;
GUID SnapshotId;
} Version3;
}; };
} OPEN_VIRTUAL_DISK_PARAMETERS, *POPEN_VIRTUAL_DISK_PARAMETERS; } OPEN_VIRTUAL_DISK_PARAMETERS, *POPEN_VIRTUAL_DISK_PARAMETERS;
#endif // VIRTDISK_DEFINE_FLAGS #endif // VIRTDISK_DEFINE_FLAGS
// //
// Access Mask for OpenVirtualDisk and CreateVirtualDisk. The virtual // Access Mask for OpenVirtualDisk and CreateVirtualDisk. The virtual
// disk drivers expose file objects as handles therefore we map // disk drivers expose file objects as handles therefore we map
// it into that AccessMask space. // it into that AccessMask space.
// //
skipping to change at line 162 skipping to change at line 174
// Open the backing store without opening any differencing chain parents. // Open the backing store without opening any differencing chain parents.
// This allows one to fixup broken parent links temporarily without updating // This allows one to fixup broken parent links temporarily without updating
// the parent locator. // the parent locator.
OPEN_VIRTUAL_DISK_FLAG_CUSTOM_DIFF_CHAIN = 0x00000010, OPEN_VIRTUAL_DISK_FLAG_CUSTOM_DIFF_CHAIN = 0x00000010,
// This flag causes all backing stores except the leaf backing store to // This flag causes all backing stores except the leaf backing store to
// be opened in cached mode. // be opened in cached mode.
OPEN_VIRTUAL_DISK_FLAG_PARENT_CACHED_IO = 0x00000020, OPEN_VIRTUAL_DISK_FLAG_PARENT_CACHED_IO = 0x00000020,
// This flag causes a Vhd Set file to be opened without any virtual disk.
OPEN_VIRTUAL_DISK_FLAG_VHDSET_FILE_ONLY = 0x00000040,
} OPEN_VIRTUAL_DISK_FLAG; } OPEN_VIRTUAL_DISK_FLAG;
#if !defined(VIRTDISK_DEFINE_FLAGS) #if !defined(VIRTDISK_DEFINE_FLAGS)
#ifdef DEFINE_ENUM_FLAG_OPERATORS #ifdef DEFINE_ENUM_FLAG_OPERATORS
DEFINE_ENUM_FLAG_OPERATORS(OPEN_VIRTUAL_DISK_FLAG); DEFINE_ENUM_FLAG_OPERATORS(OPEN_VIRTUAL_DISK_FLAG);
#endif #endif
DWORD DWORD
WINAPI WINAPI
skipping to change at line 203 skipping to change at line 218
// Default logical sector size is 512B // Default logical sector size is 512B
#define CREATE_VIRTUAL_DISK_PARAMETERS_DEFAULT_SECTOR_SIZE 0 #define CREATE_VIRTUAL_DISK_PARAMETERS_DEFAULT_SECTOR_SIZE 0
// Version definitions // Version definitions
typedef enum _CREATE_VIRTUAL_DISK_VERSION typedef enum _CREATE_VIRTUAL_DISK_VERSION
{ {
CREATE_VIRTUAL_DISK_VERSION_UNSPECIFIED = 0, CREATE_VIRTUAL_DISK_VERSION_UNSPECIFIED = 0,
CREATE_VIRTUAL_DISK_VERSION_1 = 1, CREATE_VIRTUAL_DISK_VERSION_1 = 1,
CREATE_VIRTUAL_DISK_VERSION_2 = 2, CREATE_VIRTUAL_DISK_VERSION_2 = 2,
CREATE_VIRTUAL_DISK_VERSION_3 = 3,
} CREATE_VIRTUAL_DISK_VERSION; } CREATE_VIRTUAL_DISK_VERSION;
// Versioned CreateVirtualDisk parameter structure // Versioned CreateVirtualDisk parameter structure
typedef struct _CREATE_VIRTUAL_DISK_PARAMETERS typedef struct _CREATE_VIRTUAL_DISK_PARAMETERS
{ {
CREATE_VIRTUAL_DISK_VERSION Version; CREATE_VIRTUAL_DISK_VERSION Version;
union union
{ {
struct struct
skipping to change at line 237 skipping to change at line 252
ULONG BlockSizeInBytes; ULONG BlockSizeInBytes;
ULONG SectorSizeInBytes; ULONG SectorSizeInBytes;
ULONG PhysicalSectorSizeInBytes; ULONG PhysicalSectorSizeInBytes;
PCWSTR ParentPath; PCWSTR ParentPath;
PCWSTR SourcePath; PCWSTR SourcePath;
OPEN_VIRTUAL_DISK_FLAG OpenFlags; OPEN_VIRTUAL_DISK_FLAG OpenFlags;
VIRTUAL_STORAGE_TYPE ParentVirtualStorageType; VIRTUAL_STORAGE_TYPE ParentVirtualStorageType;
VIRTUAL_STORAGE_TYPE SourceVirtualStorageType; VIRTUAL_STORAGE_TYPE SourceVirtualStorageType;
GUID ResiliencyGuid; GUID ResiliencyGuid;
} Version2; } Version2;
struct
{
GUID UniqueId;
ULONGLONG MaximumSize;
ULONG BlockSizeInBytes;
ULONG SectorSizeInBytes;
ULONG PhysicalSectorSizeInBytes;
PCWSTR ParentPath;
PCWSTR SourcePath;
OPEN_VIRTUAL_DISK_FLAG OpenFlags;
VIRTUAL_STORAGE_TYPE ParentVirtualStorageType;
VIRTUAL_STORAGE_TYPE SourceVirtualStorageType;
GUID ResiliencyGuid;
PCWSTR SourceLimitPath;
VIRTUAL_STORAGE_TYPE BackingStorageType;
} Version3;
}; };
} CREATE_VIRTUAL_DISK_PARAMETERS, *PCREATE_VIRTUAL_DISK_PARAMETERS; } CREATE_VIRTUAL_DISK_PARAMETERS, *PCREATE_VIRTUAL_DISK_PARAMETERS;
// Flags for CreateVirtualDisk // Flags for CreateVirtualDisk
typedef enum _CREATE_VIRTUAL_DISK_FLAG typedef enum _CREATE_VIRTUAL_DISK_FLAG
{ {
CREATE_VIRTUAL_DISK_FLAG_NONE = 0x0, CREATE_VIRTUAL_DISK_FLAG_NONE = 0x0,
// Pre-allocate all physical space necessary for the virtual // Pre-allocate all physical space necessary for the virtual
// size of the disk (e.g. a fixed VHD). // size of the disk (e.g. a fixed VHD).
skipping to change at line 265 skipping to change at line 297
// offline or read-only. This flag is optional, but highly recommended for // offline or read-only. This flag is optional, but highly recommended for
// creates from source disk. No effect for other types of create (no effect // creates from source disk. No effect for other types of create (no effect
// for create from source VHD; no effect for create without SourcePath). // for create from source VHD; no effect for create without SourcePath).
CREATE_VIRTUAL_DISK_FLAG_PREVENT_WRITES_TO_SOURCE_DISK = 0x2, CREATE_VIRTUAL_DISK_FLAG_PREVENT_WRITES_TO_SOURCE_DISK = 0x2,
// Do not copy initial virtual disk metadata or block states from the // Do not copy initial virtual disk metadata or block states from the
// parent VHD; this is useful if the parent VHD is a stand-in file and the // parent VHD; this is useful if the parent VHD is a stand-in file and the
// real parent will be explicitly set later. // real parent will be explicitly set later.
CREATE_VIRTUAL_DISK_FLAG_DO_NOT_COPY_METADATA_FROM_PARENT = 0x4, CREATE_VIRTUAL_DISK_FLAG_DO_NOT_COPY_METADATA_FROM_PARENT = 0x4,
// Create the backing storage disk.
CREATE_VIRTUAL_DISK_FLAG_CREATE_BACKING_STORAGE = 0x8,
// If set, the SourceLimitPath is an change tracking ID, and all data that h
as changed
// since that change tracking ID will be copied from the source. If clear, t
he
// SourceLimitPath is a VHD file path in the source VHD's chain, and
// all data that is present in the children of that VHD in the chain
// will be copied from the source.
CREATE_VIRTUAL_DISK_FLAG_USE_CHANGE_TRACKING_SOURCE_LIMIT = 0x10,
// If set and the parent VHD has change tracking enabled, the child will
// have change tracking enabled and will recognize all change tracking
// IDs that currently exist in the parent. If clear or if the parent VHD
// does not have change tracking available, then change tracking will
// not be enabled in the new VHD.
CREATE_VIRTUAL_DISK_FLAG_PRESERVE_PARENT_CHANGE_TRACKING_STATE = 0x20,
} CREATE_VIRTUAL_DISK_FLAG; } CREATE_VIRTUAL_DISK_FLAG;
#define CREATE_VIRTUAL_DISK_FLAG_USE_RCT_SOURCE_LIMIT CREATE_VIRTUAL_DISK_FLAG_U
SE_CHANGE_TRACKING_SOURCE_LIMIT
#ifdef DEFINE_ENUM_FLAG_OPERATORS #ifdef DEFINE_ENUM_FLAG_OPERATORS
DEFINE_ENUM_FLAG_OPERATORS(CREATE_VIRTUAL_DISK_FLAG); DEFINE_ENUM_FLAG_OPERATORS(CREATE_VIRTUAL_DISK_FLAG);
#endif #endif
DWORD DWORD
WINAPI WINAPI
CreateVirtualDisk( CreateVirtualDisk(
_In_ PVIRTUAL_STORAGE_TYPE VirtualStorageType, _In_ PVIRTUAL_STORAGE_TYPE VirtualStorageType,
_In_ PCWSTR Path, _In_ PCWSTR Path,
_In_ VIRTUAL_DISK_ACCESS_MASK VirtualDiskAccessMask, _In_ VIRTUAL_DISK_ACCESS_MASK VirtualDiskAccessMask,
skipping to change at line 334 skipping to change at line 385
// Will decouple the disk lifetime from that of the VirtualDiskHandle. // Will decouple the disk lifetime from that of the VirtualDiskHandle.
// The disk will be attached until an explicit call is made to // The disk will be attached until an explicit call is made to
// DetachVirtualDisk, even if all handles are closed. // DetachVirtualDisk, even if all handles are closed.
ATTACH_VIRTUAL_DISK_FLAG_PERMANENT_LIFETIME = 0x00000004, ATTACH_VIRTUAL_DISK_FLAG_PERMANENT_LIFETIME = 0x00000004,
// Indicates that the drive will not be attached to // Indicates that the drive will not be attached to
// the local system (but rather to a VM). // the local system (but rather to a VM).
ATTACH_VIRTUAL_DISK_FLAG_NO_LOCAL_HOST = 0x00000008, ATTACH_VIRTUAL_DISK_FLAG_NO_LOCAL_HOST = 0x00000008,
// Do not assign a custom security descriptor to the disk; use the
// system default.
ATTACH_VIRTUAL_DISK_FLAG_NO_SECURITY_DESCRIPTOR = 0x00000010,
} ATTACH_VIRTUAL_DISK_FLAG; } ATTACH_VIRTUAL_DISK_FLAG;
#if !defined(VIRTDISK_DEFINE_FLAGS) #if !defined(VIRTDISK_DEFINE_FLAGS)
#ifdef DEFINE_ENUM_FLAG_OPERATORS #ifdef DEFINE_ENUM_FLAG_OPERATORS
DEFINE_ENUM_FLAG_OPERATORS(ATTACH_VIRTUAL_DISK_FLAG); DEFINE_ENUM_FLAG_OPERATORS(ATTACH_VIRTUAL_DISK_FLAG);
#endif #endif
DWORD DWORD
WINAPI WINAPI
skipping to change at line 399 skipping to change at line 454
_Out_writes_bytes_(*DiskPathSizeInBytes) PWSTR DiskPath _Out_writes_bytes_(*DiskPathSizeInBytes) PWSTR DiskPath
); );
// //
// GetAllAttachedVirtualDiskPhysicalPaths // GetAllAttachedVirtualDiskPhysicalPaths
// //
DWORD DWORD
WINAPI WINAPI
GetAllAttachedVirtualDiskPhysicalPaths( GetAllAttachedVirtualDiskPhysicalPaths(
__inout PULONG PathsBufferSizeInBytes, _Inout_ PULONG PathsBufferSizeInBytes,
__out_bcount(*PathsBufferSizeInBytes) PWSTR PathsBuffer _Out_writes_bytes_(*PathsBufferSizeInBytes) PWSTR PathsBuffer
); );
#endif // VIRTDISK_DEFINE_FLAGS #endif // VIRTDISK_DEFINE_FLAGS
// //
// GetStorageDependencyInformation // GetStorageDependencyInformation
// //
// Flags for dependent disks // Flags for dependent disks
typedef enum _DEPENDENT_DISK_FLAG typedef enum _DEPENDENT_DISK_FLAG
skipping to change at line 566 skipping to change at line 621
GET_VIRTUAL_DISK_INFO_PARENT_IDENTIFIER = 4, GET_VIRTUAL_DISK_INFO_PARENT_IDENTIFIER = 4,
GET_VIRTUAL_DISK_INFO_PARENT_TIMESTAMP = 5, GET_VIRTUAL_DISK_INFO_PARENT_TIMESTAMP = 5,
GET_VIRTUAL_DISK_INFO_VIRTUAL_STORAGE_TYPE = 6, GET_VIRTUAL_DISK_INFO_VIRTUAL_STORAGE_TYPE = 6,
GET_VIRTUAL_DISK_INFO_PROVIDER_SUBTYPE = 7, GET_VIRTUAL_DISK_INFO_PROVIDER_SUBTYPE = 7,
GET_VIRTUAL_DISK_INFO_IS_4K_ALIGNED = 8, GET_VIRTUAL_DISK_INFO_IS_4K_ALIGNED = 8,
GET_VIRTUAL_DISK_INFO_PHYSICAL_DISK = 9, GET_VIRTUAL_DISK_INFO_PHYSICAL_DISK = 9,
GET_VIRTUAL_DISK_INFO_VHD_PHYSICAL_SECTOR_SIZE = 10, GET_VIRTUAL_DISK_INFO_VHD_PHYSICAL_SECTOR_SIZE = 10,
GET_VIRTUAL_DISK_INFO_SMALLEST_SAFE_VIRTUAL_SIZE = 11, GET_VIRTUAL_DISK_INFO_SMALLEST_SAFE_VIRTUAL_SIZE = 11,
GET_VIRTUAL_DISK_INFO_FRAGMENTATION = 12, GET_VIRTUAL_DISK_INFO_FRAGMENTATION = 12,
GET_VIRTUAL_DISK_INFO_IS_LOADED = 13, GET_VIRTUAL_DISK_INFO_IS_LOADED = 13,
GET_VIRTUAL_DISK_INFO_VIRTUAL_DISK_ID = 14 GET_VIRTUAL_DISK_INFO_VIRTUAL_DISK_ID = 14,
GET_VIRTUAL_DISK_INFO_CHANGE_TRACKING_STATE = 15,
} GET_VIRTUAL_DISK_INFO_VERSION; } GET_VIRTUAL_DISK_INFO_VERSION;
// Versioned parameter structure for GetVirtualDiskInformation // Versioned parameter structure for GetVirtualDiskInformation
typedef struct _GET_VIRTUAL_DISK_INFO typedef struct _GET_VIRTUAL_DISK_INFO
{ {
GET_VIRTUAL_DISK_INFO_VERSION Version; GET_VIRTUAL_DISK_INFO_VERSION Version;
union union
{ {
skipping to change at line 621 skipping to change at line 677
ULONG VhdPhysicalSectorSize; ULONG VhdPhysicalSectorSize;
ULONGLONG SmallestSafeVirtualSize; ULONGLONG SmallestSafeVirtualSize;
// GET_VIRTUAL_DISK_INFO_FRAGMENTATION // GET_VIRTUAL_DISK_INFO_FRAGMENTATION
ULONG FragmentationPercentage; ULONG FragmentationPercentage;
// GET_VIRTUAL_DISK_INFO_VIRTUAL_DISK_ID // GET_VIRTUAL_DISK_INFO_VIRTUAL_DISK_ID
GUID VirtualDiskId; GUID VirtualDiskId;
struct
{
BOOL Enabled;
BOOL NewerChanges;
WCHAR MostRecentId[1];
} ChangeTrackingState;
}; };
} GET_VIRTUAL_DISK_INFO, *PGET_VIRTUAL_DISK_INFO; } GET_VIRTUAL_DISK_INFO, *PGET_VIRTUAL_DISK_INFO;
#define VIRTUAL_DISK_MAXIMUM_CHANGE_TRACKING_ID_LENGTH 256
_Success_(return == ERROR_SUCCESS) _Success_(return == ERROR_SUCCESS)
DWORD DWORD
WINAPI WINAPI
GetVirtualDiskInformation( GetVirtualDiskInformation(
_In_ HANDLE VirtualDiskHa ndle, _In_ HANDLE VirtualDiskHa ndle,
_Inout_ PULONG VirtualDiskIn foSize, _Inout_ PULONG VirtualDiskIn foSize,
_Inout_updates_bytes_to_(*VirtualDiskInfoSize, *VirtualDiskInfoSize) PGET_VI RTUAL_DISK_INFO VirtualDiskInfo, _Inout_updates_bytes_to_(*VirtualDiskInfoSize, *VirtualDiskInfoSize) PGET_VI RTUAL_DISK_INFO VirtualDiskInfo,
_Out_opt_ PULONG SizeUsed _Out_opt_ PULONG SizeUsed
); );
skipping to change at line 646 skipping to change at line 711
// //
// Version definitions // Version definitions
typedef enum _SET_VIRTUAL_DISK_INFO_VERSION typedef enum _SET_VIRTUAL_DISK_INFO_VERSION
{ {
SET_VIRTUAL_DISK_INFO_UNSPECIFIED = 0, SET_VIRTUAL_DISK_INFO_UNSPECIFIED = 0,
SET_VIRTUAL_DISK_INFO_PARENT_PATH = 1, SET_VIRTUAL_DISK_INFO_PARENT_PATH = 1,
SET_VIRTUAL_DISK_INFO_IDENTIFIER = 2, SET_VIRTUAL_DISK_INFO_IDENTIFIER = 2,
SET_VIRTUAL_DISK_INFO_PARENT_PATH_WITH_DEPTH = 3, SET_VIRTUAL_DISK_INFO_PARENT_PATH_WITH_DEPTH = 3,
SET_VIRTUAL_DISK_INFO_PHYSICAL_SECTOR_SIZE = 4, SET_VIRTUAL_DISK_INFO_PHYSICAL_SECTOR_SIZE = 4,
SET_VIRTUAL_DISK_INFO_VIRTUAL_DISK_ID = 5 SET_VIRTUAL_DISK_INFO_VIRTUAL_DISK_ID = 5,
SET_VIRTUAL_DISK_INFO_CHANGE_TRACKING_STATE = 6,
SET_VIRTUAL_DISK_INFO_PARENT_LOCATOR = 7,
} SET_VIRTUAL_DISK_INFO_VERSION; } SET_VIRTUAL_DISK_INFO_VERSION;
// Versioned parameter structure for SetVirtualDiskInformation // Versioned parameter structure for SetVirtualDiskInformation
typedef struct _SET_VIRTUAL_DISK_INFO typedef struct _SET_VIRTUAL_DISK_INFO
{ {
SET_VIRTUAL_DISK_INFO_VERSION Version; SET_VIRTUAL_DISK_INFO_VERSION Version;
union union
{ {
skipping to change at line 671 skipping to change at line 738
struct struct
{ {
ULONG ChildDepth; ULONG ChildDepth;
PCWSTR ParentFilePath; PCWSTR ParentFilePath;
} ParentPathWithDepthInfo; } ParentPathWithDepthInfo;
ULONG VhdPhysicalSectorSize; ULONG VhdPhysicalSectorSize;
// SET_VIRTUAL_DISK_INFO_VIRTUAL_DISK_ID // SET_VIRTUAL_DISK_INFO_VIRTUAL_DISK_ID
GUID VirtualDiskId; GUID VirtualDiskId;
BOOL ChangeTrackingEnabled;
struct
{
GUID LinkageId;
PCWSTR ParentFilePath;
} ParentLocator;
}; };
} SET_VIRTUAL_DISK_INFO, *PSET_VIRTUAL_DISK_INFO; } SET_VIRTUAL_DISK_INFO, *PSET_VIRTUAL_DISK_INFO;
DWORD DWORD
WINAPI WINAPI
SetVirtualDiskInformation( SetVirtualDiskInformation(
_In_ HANDLE VirtualDiskHandle, _In_ HANDLE VirtualDiskHandle,
_In_ PSET_VIRTUAL_DISK_INFO VirtualDiskInfo _In_ PSET_VIRTUAL_DISK_INFO VirtualDiskInfo
); );
skipping to change at line 1004 skipping to change at line 1079
// //
// BreakMirrorVirtualDisk // BreakMirrorVirtualDisk
// //
#if (NTDDI_VERSION >= NTDDI_WIN8) #if (NTDDI_VERSION >= NTDDI_WIN8)
DWORD DWORD
WINAPI WINAPI
BreakMirrorVirtualDisk( BreakMirrorVirtualDisk(
_In_ HANDLE VirtualDiskHandle _In_ HANDLE VirtualDiskHandle
); );
#endif // NTDDI_VERSION >= NTDDI_WIN8 #endif // NTDDI_VERSION >= NTDDI_WIN8
// //
// AddVirtualDiskParent // AddVirtualDiskParent
// //
#if (NTDDI_VERSION >= NTDDI_WIN8) #if (NTDDI_VERSION >= NTDDI_WIN8)
DWORD DWORD
WINAPI WINAPI
AddVirtualDiskParent( AddVirtualDiskParent(
_In_ HANDLE VirtualDiskHandle, _In_ HANDLE VirtualDiskHandle,
_In_ PCWSTR ParentPath _In_ PCWSTR ParentPath
); );
#endif // NTDDI_VERSION >= NTDDI_WIN8 #endif // NTDDI_VERSION >= NTDDI_WIN8
typedef struct _QUERY_CHANGES_VIRTUAL_DISK_RANGE {
ULONG64 ByteOffset;
ULONG64 ByteLength;
ULONG64 Reserved;
} QUERY_CHANGES_VIRTUAL_DISK_RANGE, *PQUERY_CHANGES_VIRTUAL_DISK_RANGE;
// Flags for QueryChangesVirtualDisk
typedef enum _QUERY_CHANGES_VIRTUAL_DISK_FLAG
{
QUERY_CHANGES_VIRTUAL_DISK_FLAG_NONE = 0x00000000,
} QUERY_CHANGES_VIRTUAL_DISK_FLAG;
#ifdef DEFINE_ENUM_FLAG_OPERATORS
DEFINE_ENUM_FLAG_OPERATORS(QUERY_CHANGES_VIRTUAL_DISK_FLAG);
#endif
typedef enum _TAKE_SNAPSHOT_VHDSET_FLAG
{
TAKE_SNAPSHOT_VHDSET_FLAG_NONE = 0x00000000,
TAKE_SNAPSHOT_VHDSET_FLAG_WRITEABLE = 0x00000001,
} TAKE_SNAPSHOT_VHDSET_FLAG, *PTAKE_SNAPSHOT_VHDSET_FLAG;
#ifdef DEFINE_ENUM_FLAG_OPERATORS
DEFINE_ENUM_FLAG_OPERATORS(TAKE_SNAPSHOT_VHDSET_FLAG);
#endif
typedef enum _TAKE_SNAPSHOT_VHDSET_VERSION
{
TAKE_SNAPSHOT_VHDSET_VERSION_UNSPECIFIED = 0,
TAKE_SNAPSHOT_VHDSET_VERSION_1 = 1,
} TAKE_SNAPSHOT_VHDSET_VERSION;
typedef struct _TAKE_SNAPSHOT_VHDSET_PARAMETERS
{
TAKE_SNAPSHOT_VHDSET_VERSION Version;
union
{
struct
{
GUID SnapshotId;
} Version1;
};
} TAKE_SNAPSHOT_VHDSET_PARAMETERS, *PTAKE_SNAPSHOT_VHDSET_PARAMETERS;
typedef enum _DELETE_SNAPSHOT_VHDSET_FLAG
{
DELETE_SNAPSHOT_VHDSET_FLAG_NONE = 0x00000000,
DELETE_SNAPSHOT_VHDSET_FLAG_PERSIST_RCT = 0x00000001,
} DELETE_SNAPSHOT_VHDSET_FLAG, *PDELETE_SNAPSHOT_VHDSET_FLAG;
#ifdef DEFINE_ENUM_FLAG_OPERATORS
DEFINE_ENUM_FLAG_OPERATORS(DELETE_SNAPSHOT_VHDSET_FLAG);
#endif
typedef enum _DELETE_SNAPSHOT_VHDSET_VERSION
{
DELETE_SNAPSHOT_VHDSET_VERSION_UNSPECIFIED = 0,
DELETE_SNAPSHOT_VHDSET_VERSION_1 = 1,
} DELETE_SNAPSHOT_VHDSET_VERSION;
typedef struct _DELETE_SNAPSHOT_VHDSET_PARAMETERS
{
DELETE_SNAPSHOT_VHDSET_VERSION Version;
union
{
struct
{
GUID SnapshotId;
} Version1;
};
} DELETE_SNAPSHOT_VHDSET_PARAMETERS, *PDELETE_SNAPSHOT_VHDSET_PARAMETERS;
typedef enum _MODIFY_VHDSET_VERSION
{
MODIFY_VHDSET_UNSPECIFIED = 0,
MODIFY_VHDSET_SNAPSHOT_PATH = 1,
MODIFY_VHDSET_REMOVE_SNAPSHOT = 2,
MODIFY_VHDSET_DEFAULT_SNAPSHOT_PATH = 3,
} MODIFY_VHDSET_VERSION, *PMODIFY_VHDSET_VERSION;
typedef enum _MODIFY_VHDSET_FLAG
{
MODIFY_VHDSET_FLAG_NONE = 0x00000000,
MODIFY_VHDSET_FLAG_WRITEABLE_SNAPSHOT = 0x00000001,
} MODIFY_VHDSET_FLAG, *PMODIFY_VHDSET_FLAG;
#ifdef DEFINE_ENUM_FLAG_OPERATORS
DEFINE_ENUM_FLAG_OPERATORS(MODIFY_VHDSET_FLAG);
#endif
typedef struct _MODIFY_VHDSET_PARAMETERS
{
MODIFY_VHDSET_VERSION Version;
union
{
struct
{
GUID SnapshotId;
PCWSTR SnapshotFilePath;
} SnapshotPath;
GUID SnapshotId;
PCWSTR DefaultFilePath;
};
} MODIFY_VHDSET_PARAMETERS, *PMODIFY_VHDSET_PARAMETERS;
typedef enum _APPLY_SNAPSHOT_VHDSET_FLAG
{
APPLY_SNAPSHOT_VHDSET_FLAG_NONE = 0x00000000,
APPLY_SNAPSHOT_VHDSET_FLAG_WRITEABLE = 0x00000001,
} APPLY_SNAPSHOT_VHDSET_FLAG, *PAPPLY_SNAPSHOT_VHDSET_FLAG;
#ifdef DEFINE_ENUM_FLAG_OPERATORS
DEFINE_ENUM_FLAG_OPERATORS(APPLY_SNAPSHOT_VHDSET_FLAG);
#endif
typedef enum _APPLY_SNAPSHOT_VHDSET_VERSION
{
APPLY_SNAPSHOT_VHDSET_VERSION_UNSPECIFIED = 0,
APPLY_SNAPSHOT_VHDSET_VERSION_1 = 1,
} APPLY_SNAPSHOT_VHDSET_VERSION;
typedef struct _APPLY_SNAPSHOT_VHDSET_PARAMETERS
{
APPLY_SNAPSHOT_VHDSET_VERSION Version;
union
{
struct
{
GUID SnapshotId;
GUID LeafSnapshotId;
} Version1;
};
} APPLY_SNAPSHOT_VHDSET_PARAMETERS, *PAPPLY_SNAPSHOT_VHDSET_PARAMETERS;
#if (NTDDI_VERSION >= NTDDI_WINTHRESHOLD)
DWORD
WINAPI
QueryChangesVirtualDisk (
_In_ HANDLE VirtualDiskHandle,
_In_ PCWSTR ChangeTrackingId,
_In_ ULONG64 ByteOffset,
_In_ ULONG64 ByteLength,
_In_ QUERY_CHANGES_VIRTUAL_DISK_FLAG Flags,
_Out_writes_to_(*RangeCount, *RangeCount) PQUERY_CHANGES_VIRTUAL_DISK_RANGE
Ranges,
_Inout_ PULONG RangeCount,
_Out_ PULONG64 ProcessedLength
);
DWORD
WINAPI
TakeSnapshotVhdSet (
_In_ HANDLE VirtualDiskHandle,
_In_ const PTAKE_SNAPSHOT_VHDSET_PARAMETERS Parameters,
_In_ TAKE_SNAPSHOT_VHDSET_FLAG Flags
);
DWORD
WINAPI
DeleteSnapshotVhdSet (
_In_ HANDLE VirtualDiskHandle,
_In_ const PDELETE_SNAPSHOT_VHDSET_PARAMETERS Parameters,
_In_ DELETE_SNAPSHOT_VHDSET_FLAG Flags
);
DWORD
WINAPI
ModifyVhdSet (
_In_ HANDLE VirtualDiskHandle,
_In_ const PMODIFY_VHDSET_PARAMETERS Parameters,
_In_ MODIFY_VHDSET_FLAG Flags
);
DWORD
WINAPI
ApplySnapshotVhdSet (
_In_ HANDLE VirtualDiskHandle,
_In_ const PAPPLY_SNAPSHOT_VHDSET_PARAMETERS Parameters,
_In_ APPLY_SNAPSHOT_VHDSET_FLAG Flags
);
#endif // NTDDI_VERSION >= NTDDI_WINTHRESHOLD
#endif // VIRTDISK_DEFINE_FLAGS #endif // VIRTDISK_DEFINE_FLAGS
// //
// The Surface and Unsurface API names are deprecated. Use Attach/Detach versi ons // The Surface and Unsurface API names are deprecated. Use Attach/Detach versi ons
// instead. If you use any of these defines below your code will break post Wi n7. // instead. If you use any of these defines below your code will break post Wi n7.
// //
#define SurfaceVirtualDisk AttachVirtualDisk #define SurfaceVirtualDisk AttachVirtualDisk
#define UnsurfaceVirtualDisk DetachVirtualDisk #define UnsurfaceVirtualDisk DetachVirtualDisk
#define VIRTUAL_DISK_ACCESS_SURFACE_RO VIRTUAL_DISK_ACCESS_ATTACH_ RO #define VIRTUAL_DISK_ACCESS_SURFACE_RO VIRTUAL_DISK_ACCESS_ATTACH_ RO
skipping to change at line 1052 skipping to change at line 1324
#define _SURFACE_VIRTUAL_DISK_PARAMETERS _ATTACH_VIRTUAL_DISK_PARAME TERS #define _SURFACE_VIRTUAL_DISK_PARAMETERS _ATTACH_VIRTUAL_DISK_PARAME TERS
#if !defined(__midl) #if !defined(__midl)
#define _SURFACE_VIRTUAL_DISK_FLAG _ATTACH_VIRTUAL_ DISK_FLAG #define _SURFACE_VIRTUAL_DISK_FLAG _ATTACH_VIRTUAL_ DISK_FLAG
#define SURFACE_VIRTUAL_DISK_FLAG_NONE ATTACH_VIRTUAL_D ISK_FLAG_NONE #define SURFACE_VIRTUAL_DISK_FLAG_NONE ATTACH_VIRTUAL_D ISK_FLAG_NONE
#define SURFACE_VIRTUAL_DISK_FLAG_READ_ONLY ATTACH_VIRTUAL_D ISK_FLAG_READ_ONLY #define SURFACE_VIRTUAL_DISK_FLAG_READ_ONLY ATTACH_VIRTUAL_D ISK_FLAG_READ_ONLY
#define SURFACE_VIRTUAL_DISK_FLAG_NO_DRIVE_LETTER ATTACH_VIRTUAL_D ISK_FLAG_NO_DRIVE_LETTER #define SURFACE_VIRTUAL_DISK_FLAG_NO_DRIVE_LETTER ATTACH_VIRTUAL_D ISK_FLAG_NO_DRIVE_LETTER
#define SURFACE_VIRTUAL_DISK_FLAG_PERMANENT_LIFETIME ATTACH_VIRTUAL_D ISK_FLAG_PERMANENT_LIFETIME #define SURFACE_VIRTUAL_DISK_FLAG_PERMANENT_LIFETIME ATTACH_VIRTUAL_D ISK_FLAG_PERMANENT_LIFETIME
#define SURFACE_VIRTUAL_DISK_FLAG_NO_LOCAL_HOST ATTACH_VIRTUAL_D ISK_FLAG_NO_LOCAL_HOST #define SURFACE_VIRTUAL_DISK_FLAG_NO_LOCAL_HOST ATTACH_VIRTUAL_D ISK_FLAG_NO_LOCAL_HOST
#define SURFACE_VIRTUAL_DISK_FLAG_NO_SECURITY_DESCRIPTOR ATTACH_VIRTUAL_D ISK_FLAG_NO_SECURITY_DESCRIPTOR
#define SURFACE_VIRTUAL_DISK_FLAG ATTACH_VIRTUAL_D ISK_FLAG #define SURFACE_VIRTUAL_DISK_FLAG ATTACH_VIRTUAL_D ISK_FLAG
#define _UNSURFACE_VIRTUAL_DISK_FLAG _DETACH_VIRTUAL_ DISK_FLAG #define _UNSURFACE_VIRTUAL_DISK_FLAG _DETACH_VIRTUAL_ DISK_FLAG
#define UNSURFACE_VIRTUAL_DISK_FLAG_NONE DETACH_VIRTUAL_D ISK_FLAG_NONE #define UNSURFACE_VIRTUAL_DISK_FLAG_NONE DETACH_VIRTUAL_D ISK_FLAG_NONE
#define UNSURFACE_VIRTUAL_DISK_FLAG DETACH_VIRTUAL_D ISK_FLAG #define UNSURFACE_VIRTUAL_DISK_FLAG DETACH_VIRTUAL_D ISK_FLAG
#else #else
typedef enum _SURFACE_VIRTUAL_DISK_FLAG typedef enum _SURFACE_VIRTUAL_DISK_FLAG
{ {
SURFACE_VIRTUAL_DISK_FLAG_NONE = 0x00000000, SURFACE_VIRTUAL_DISK_FLAG_NONE = 0x00000000,
SURFACE_VIRTUAL_DISK_FLAG_READ_ONLY = 0x00000001, SURFACE_VIRTUAL_DISK_FLAG_READ_ONLY = 0x00000001,
SURFACE_VIRTUAL_DISK_FLAG_NO_DRIVE_LETTER = 0x00000002, SURFACE_VIRTUAL_DISK_FLAG_NO_DRIVE_LETTER = 0x00000002,
SURFACE_VIRTUAL_DISK_FLAG_PERMANENT_LIFETIME = 0x00000004, SURFACE_VIRTUAL_DISK_FLAG_PERMANENT_LIFETIME = 0x00000004,
SURFACE_VIRTUAL_DISK_FLAG_NO_LOCAL_HOST = 0x00000008, SURFACE_VIRTUAL_DISK_FLAG_NO_LOCAL_HOST = 0x00000008,
SURFACE_VIRTUAL_DISK_FLAG_NO_SECURITY_DESCRIPTOR = 0x00000010,
} SURFACE_VIRTUAL_DISK_FLAG; } SURFACE_VIRTUAL_DISK_FLAG;
typedef enum _UNSURFACE_VIRTUAL_DISK_FLAG typedef enum _UNSURFACE_VIRTUAL_DISK_FLAG
{ {
UNSURFACE_VIRTUAL_DISK_FLAG_NONE = 0x00000000, UNSURFACE_VIRTUAL_DISK_FLAG_NONE = 0x00000000,
} UNSURFACE_VIRTUAL_DISK_FLAG; } UNSURFACE_VIRTUAL_DISK_FLAG;
#if !defined(VIRTDISK_DEFINE_FLAGS) #if !defined(VIRTDISK_DEFINE_FLAGS)
#ifdef DEFINE_ENUM_FLAG_OPERATORS #ifdef DEFINE_ENUM_FLAG_OPERATORS
skipping to change at line 1091 skipping to change at line 1365
#endif #endif
#endif #endif
// End deprecated APIs // End deprecated APIs
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#if _MSC_VER >= 1200
#pragma warning(pop) #pragma warning(pop)
#endif
#endif // WIN32_WINNT_WIN7 #endif // WIN32_WINNT_WIN7
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_PK G_VHD) */
#pragma endregion #pragma endregion
#endif // VIRT_DISK_API_DEF #endif // VIRT_DISK_API_DEF
// VirtDisk.h EOF // VirtDisk.h EOF
 End of changes. 25 change blocks. 
11 lines changed or deleted 293 lines changed or added

This html diff was produced by rfcdiff 1.41.