zigwin32/win32/storage/virtual_disk_service.zig

4577 lines
228 KiB
Zig

//! NOTE: this file is autogenerated, DO NOT MODIFY
//--------------------------------------------------------------------------------
// Section: Constants (461)
//--------------------------------------------------------------------------------
pub const VDS_NF_VOLUME_ARRIVE = @as(u32, 4);
pub const VDS_NF_VOLUME_DEPART = @as(u32, 5);
pub const VDS_NF_VOLUME_MODIFY = @as(u32, 6);
pub const VDS_NF_VOLUME_REBUILDING_PROGRESS = @as(u32, 7);
pub const VDS_NF_PARTITION_ARRIVE = @as(u32, 11);
pub const VDS_NF_PARTITION_DEPART = @as(u32, 12);
pub const VDS_NF_PARTITION_MODIFY = @as(u32, 13);
pub const VDS_NF_SUB_SYSTEM_ARRIVE = @as(u32, 101);
pub const VDS_NF_SUB_SYSTEM_DEPART = @as(u32, 102);
pub const VDS_NF_PORTAL_ARRIVE = @as(u32, 123);
pub const VDS_NF_PORTAL_DEPART = @as(u32, 124);
pub const VDS_NF_PORTAL_MODIFY = @as(u32, 125);
pub const VDS_NF_TARGET_ARRIVE = @as(u32, 126);
pub const VDS_NF_TARGET_DEPART = @as(u32, 127);
pub const VDS_NF_TARGET_MODIFY = @as(u32, 128);
pub const VDS_NF_PORTAL_GROUP_ARRIVE = @as(u32, 129);
pub const VDS_NF_PORTAL_GROUP_DEPART = @as(u32, 130);
pub const VDS_NF_PORTAL_GROUP_MODIFY = @as(u32, 131);
pub const VDS_NF_SUB_SYSTEM_MODIFY = @as(u32, 151);
pub const VDS_NF_DRIVE_LETTER_FREE = @as(u32, 201);
pub const VDS_NF_DRIVE_LETTER_ASSIGN = @as(u32, 202);
pub const VDS_NF_MOUNT_POINTS_CHANGE = @as(u32, 205);
pub const VDS_NF_FILE_SYSTEM_SHRINKING_PROGRESS = @as(u32, 206);
pub const VDS_NF_SERVICE_OUT_OF_SYNC = @as(u32, 301);
pub const GPT_PARTITION_NAME_LENGTH = @as(u32, 36);
pub const VDS_HINT_FASTCRASHRECOVERYREQUIRED = @as(i32, 1);
pub const VDS_HINT_MOSTLYREADS = @as(i32, 2);
pub const VDS_HINT_OPTIMIZEFORSEQUENTIALREADS = @as(i32, 4);
pub const VDS_HINT_OPTIMIZEFORSEQUENTIALWRITES = @as(i32, 8);
pub const VDS_HINT_READBACKVERIFYENABLED = @as(i32, 16);
pub const VDS_HINT_REMAPENABLED = @as(i32, 32);
pub const VDS_HINT_WRITETHROUGHCACHINGENABLED = @as(i32, 64);
pub const VDS_HINT_HARDWARECHECKSUMENABLED = @as(i32, 128);
pub const VDS_HINT_ISYANKABLE = @as(i32, 256);
pub const VDS_HINT_ALLOCATEHOTSPARE = @as(i32, 512);
pub const VDS_HINT_BUSTYPE = @as(i32, 1024);
pub const VDS_HINT_USEMIRROREDCACHE = @as(i32, 2048);
pub const VDS_HINT_READCACHINGENABLED = @as(i32, 4096);
pub const VDS_HINT_WRITECACHINGENABLED = @as(i32, 8192);
pub const VDS_HINT_MEDIASCANENABLED = @as(i32, 16384);
pub const VDS_HINT_CONSISTENCYCHECKENABLED = @as(i32, 32768);
pub const VDS_REBUILD_PRIORITY_MIN = @as(u32, 0);
pub const VDS_REBUILD_PRIORITY_MAX = @as(u32, 16);
pub const VDS_POOL_ATTRIB_RAIDTYPE = @as(i32, 1);
pub const VDS_POOL_ATTRIB_BUSTYPE = @as(i32, 2);
pub const VDS_POOL_ATTRIB_ALLOW_SPINDOWN = @as(i32, 4);
pub const VDS_POOL_ATTRIB_THIN_PROVISION = @as(i32, 8);
pub const VDS_POOL_ATTRIB_NO_SINGLE_POF = @as(i32, 16);
pub const VDS_POOL_ATTRIB_DATA_RDNCY_MAX = @as(i32, 32);
pub const VDS_POOL_ATTRIB_DATA_RDNCY_MIN = @as(i32, 64);
pub const VDS_POOL_ATTRIB_DATA_RDNCY_DEF = @as(i32, 128);
pub const VDS_POOL_ATTRIB_PKG_RDNCY_MAX = @as(i32, 256);
pub const VDS_POOL_ATTRIB_PKG_RDNCY_MIN = @as(i32, 512);
pub const VDS_POOL_ATTRIB_PKG_RDNCY_DEF = @as(i32, 1024);
pub const VDS_POOL_ATTRIB_STRIPE_SIZE = @as(i32, 2048);
pub const VDS_POOL_ATTRIB_STRIPE_SIZE_MAX = @as(i32, 4096);
pub const VDS_POOL_ATTRIB_STRIPE_SIZE_MIN = @as(i32, 8192);
pub const VDS_POOL_ATTRIB_STRIPE_SIZE_DEF = @as(i32, 16384);
pub const VDS_POOL_ATTRIB_NUM_CLMNS = @as(i32, 32768);
pub const VDS_POOL_ATTRIB_NUM_CLMNS_MAX = @as(i32, 65536);
pub const VDS_POOL_ATTRIB_NUM_CLMNS_MIN = @as(i32, 131072);
pub const VDS_POOL_ATTRIB_NUM_CLMNS_DEF = @as(i32, 262144);
pub const VDS_POOL_ATTRIB_DATA_AVL_HINT = @as(i32, 524288);
pub const VDS_POOL_ATTRIB_ACCS_RNDM_HINT = @as(i32, 1048576);
pub const VDS_POOL_ATTRIB_ACCS_DIR_HINT = @as(i32, 2097152);
pub const VDS_POOL_ATTRIB_ACCS_SIZE_HINT = @as(i32, 4194304);
pub const VDS_POOL_ATTRIB_ACCS_LTNCY_HINT = @as(i32, 8388608);
pub const VDS_POOL_ATTRIB_ACCS_BDW_WT_HINT = @as(i32, 16777216);
pub const VDS_POOL_ATTRIB_STOR_COST_HINT = @as(i32, 33554432);
pub const VDS_POOL_ATTRIB_STOR_EFFCY_HINT = @as(i32, 67108864);
pub const VDS_POOL_ATTRIB_CUSTOM_ATTRIB = @as(i32, 134217728);
pub const VDS_ATTACH_VIRTUAL_DISK_FLAG_USE_FILE_ACL = @as(u32, 1);
pub const CLSID_VdsLoader = Guid.initString("9c38ed61-d565-4728-aeee-c80952f0ecde");
pub const CLSID_VdsService = Guid.initString("7d1933cb-86f6-4a98-8628-01be94c9a575");
pub const MAX_FS_NAME_SIZE = @as(u32, 8);
pub const MAX_FS_FORMAT_SUPPORT_NAME_SIZE = @as(u32, 32);
pub const MAX_FS_ALLOWED_CLUSTER_SIZES_SIZE = @as(u32, 32);
pub const VER_VDS_LUN_INFORMATION = @as(u32, 1);
pub const VDS_E_NOT_SUPPORTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212288));
pub const VDS_E_INITIALIZED_FAILED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212287));
pub const VDS_E_INITIALIZE_NOT_CALLED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212286));
pub const VDS_E_ALREADY_REGISTERED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212285));
pub const VDS_E_ANOTHER_CALL_IN_PROGRESS = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212284));
pub const VDS_E_OBJECT_NOT_FOUND = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212283));
pub const VDS_E_INVALID_SPACE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212282));
pub const VDS_E_PARTITION_LIMIT_REACHED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212281));
pub const VDS_E_PARTITION_NOT_EMPTY = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212280));
pub const VDS_E_OPERATION_PENDING = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212279));
pub const VDS_E_OPERATION_DENIED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212278));
pub const VDS_E_OBJECT_DELETED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212277));
pub const VDS_E_CANCEL_TOO_LATE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212276));
pub const VDS_E_OPERATION_CANCELED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212275));
pub const VDS_E_CANNOT_EXTEND = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212274));
pub const VDS_E_NOT_ENOUGH_SPACE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212273));
pub const VDS_E_NOT_ENOUGH_DRIVE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212272));
pub const VDS_E_BAD_COOKIE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212271));
pub const VDS_E_NO_MEDIA = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212270));
pub const VDS_E_DEVICE_IN_USE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212269));
pub const VDS_E_DISK_NOT_EMPTY = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212268));
pub const VDS_E_INVALID_OPERATION = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212267));
pub const VDS_E_PATH_NOT_FOUND = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212266));
pub const VDS_E_DISK_NOT_INITIALIZED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212265));
pub const VDS_E_NOT_AN_UNALLOCATED_DISK = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212264));
pub const VDS_E_UNRECOVERABLE_ERROR = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212263));
pub const VDS_S_DISK_PARTIALLY_CLEANED = @import("../zig.zig").typedConst(HRESULT, @as(i32, 271386));
pub const VDS_E_DMADMIN_SERVICE_CONNECTION_FAILED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212261));
pub const VDS_E_PROVIDER_INITIALIZATION_FAILED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212260));
pub const VDS_E_OBJECT_EXISTS = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212259));
pub const VDS_E_NO_DISKS_FOUND = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212258));
pub const VDS_E_PROVIDER_CACHE_CORRUPT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212257));
pub const VDS_E_DMADMIN_METHOD_CALL_FAILED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212256));
pub const VDS_S_PROVIDER_ERROR_LOADING_CACHE = @import("../zig.zig").typedConst(HRESULT, @as(i32, 271393));
pub const VDS_E_PROVIDER_VOL_DEVICE_NAME_NOT_FOUND = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212254));
pub const VDS_E_PROVIDER_VOL_OPEN = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212253));
pub const VDS_E_DMADMIN_CORRUPT_NOTIFICATION = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212252));
pub const VDS_E_INCOMPATIBLE_FILE_SYSTEM = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212251));
pub const VDS_E_INCOMPATIBLE_MEDIA = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212250));
pub const VDS_E_ACCESS_DENIED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212249));
pub const VDS_E_MEDIA_WRITE_PROTECTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212248));
pub const VDS_E_BAD_LABEL = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212247));
pub const VDS_E_CANT_QUICK_FORMAT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212246));
pub const VDS_E_IO_ERROR = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212245));
pub const VDS_E_VOLUME_TOO_SMALL = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212244));
pub const VDS_E_VOLUME_TOO_BIG = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212243));
pub const VDS_E_CLUSTER_SIZE_TOO_SMALL = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212242));
pub const VDS_E_CLUSTER_SIZE_TOO_BIG = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212241));
pub const VDS_E_CLUSTER_COUNT_BEYOND_32BITS = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212240));
pub const VDS_E_OBJECT_STATUS_FAILED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212239));
pub const VDS_E_VOLUME_INCOMPLETE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212238));
pub const VDS_E_EXTENT_SIZE_LESS_THAN_MIN = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212237));
pub const VDS_S_UPDATE_BOOTFILE_FAILED = @import("../zig.zig").typedConst(HRESULT, @as(i32, 271412));
pub const VDS_S_BOOT_PARTITION_NUMBER_CHANGE = @import("../zig.zig").typedConst(HRESULT, @as(i32, 271414));
pub const VDS_E_BOOT_PARTITION_NUMBER_CHANGE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212234));
pub const VDS_E_NO_FREE_SPACE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212233));
pub const VDS_E_ACTIVE_PARTITION = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212232));
pub const VDS_E_PARTITION_OF_UNKNOWN_TYPE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212231));
pub const VDS_E_LEGACY_VOLUME_FORMAT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212230));
pub const VDS_E_NON_CONTIGUOUS_DATA_PARTITIONS = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212229));
pub const VDS_E_MIGRATE_OPEN_VOLUME = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212228));
pub const VDS_E_VOLUME_NOT_ONLINE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212227));
pub const VDS_E_VOLUME_NOT_HEALTHY = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212226));
pub const VDS_E_VOLUME_SPANS_DISKS = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212225));
pub const VDS_E_REQUIRES_CONTIGUOUS_DISK_SPACE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212224));
pub const VDS_E_BAD_PROVIDER_DATA = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212223));
pub const VDS_E_PROVIDER_FAILURE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212222));
pub const VDS_S_VOLUME_COMPRESS_FAILED = @import("../zig.zig").typedConst(HRESULT, @as(i32, 271427));
pub const VDS_E_PACK_OFFLINE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212220));
pub const VDS_E_VOLUME_NOT_A_MIRROR = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212219));
pub const VDS_E_NO_EXTENTS_FOR_VOLUME = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212218));
pub const VDS_E_DISK_NOT_LOADED_TO_CACHE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212217));
pub const VDS_E_INTERNAL_ERROR = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212216));
pub const VDS_S_ACCESS_PATH_NOT_DELETED = @import("../zig.zig").typedConst(HRESULT, @as(i32, 279108));
pub const VDS_E_PROVIDER_TYPE_NOT_SUPPORTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212214));
pub const VDS_E_DISK_NOT_ONLINE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212213));
pub const VDS_E_DISK_IN_USE_BY_VOLUME = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212212));
pub const VDS_S_IN_PROGRESS = @import("../zig.zig").typedConst(HRESULT, @as(i32, 271437));
pub const VDS_E_ASYNC_OBJECT_FAILURE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212210));
pub const VDS_E_VOLUME_NOT_MOUNTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212209));
pub const VDS_E_PACK_NOT_FOUND = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212208));
pub const VDS_E_IMPORT_SET_INCOMPLETE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212207));
pub const VDS_E_DISK_NOT_IMPORTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212206));
pub const VDS_E_OBJECT_OUT_OF_SYNC = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212205));
pub const VDS_E_MISSING_DISK = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212204));
pub const VDS_E_DISK_PNP_REG_CORRUPT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212203));
pub const VDS_E_LBN_REMAP_ENABLED_FLAG = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212202));
pub const VDS_E_NO_DRIVELETTER_FLAG = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212201));
pub const VDS_E_REVERT_ON_CLOSE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212200));
pub const VDS_E_REVERT_ON_CLOSE_SET = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212199));
pub const VDS_E_IA64_BOOT_MIRRORED_TO_MBR = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212198));
pub const VDS_S_IA64_BOOT_MIRRORED_TO_MBR = @import("../zig.zig").typedConst(HRESULT, @as(i32, 271450));
pub const VDS_S_UNABLE_TO_GET_GPT_ATTRIBUTES = @import("../zig.zig").typedConst(HRESULT, @as(i32, 271451));
pub const VDS_E_VOLUME_TEMPORARILY_DISMOUNTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212196));
pub const VDS_E_VOLUME_PERMANENTLY_DISMOUNTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212195));
pub const VDS_E_VOLUME_HAS_PATH = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212194));
pub const VDS_E_TIMEOUT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212193));
pub const VDS_E_REPAIR_VOLUMESTATE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212192));
pub const VDS_E_LDM_TIMEOUT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212191));
pub const VDS_E_REVERT_ON_CLOSE_MISMATCH = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212190));
pub const VDS_E_RETRY = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212189));
pub const VDS_E_ONLINE_PACK_EXISTS = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212188));
pub const VDS_S_EXTEND_FILE_SYSTEM_FAILED = @import("../zig.zig").typedConst(HRESULT, @as(i32, 271461));
pub const VDS_E_EXTEND_FILE_SYSTEM_FAILED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212186));
pub const VDS_S_MBR_BOOT_MIRRORED_TO_GPT = @import("../zig.zig").typedConst(HRESULT, @as(i32, 271463));
pub const VDS_E_MAX_USABLE_MBR = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212184));
pub const VDS_S_GPT_BOOT_MIRRORED_TO_MBR = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212183));
pub const VDS_E_NO_SOFTWARE_PROVIDERS_LOADED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212032));
pub const VDS_E_DISK_NOT_MISSING = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212031));
pub const VDS_E_NO_VOLUME_LAYOUT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212030));
pub const VDS_E_CORRUPT_VOLUME_INFO = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212029));
pub const VDS_E_INVALID_ENUMERATOR = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212028));
pub const VDS_E_DRIVER_INTERNAL_ERROR = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212027));
pub const VDS_E_VOLUME_INVALID_NAME = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212025));
pub const VDS_S_DISK_IS_MISSING = @import("../zig.zig").typedConst(HRESULT, @as(i32, 271624));
pub const VDS_E_CORRUPT_PARTITION_INFO = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212023));
pub const VDS_S_NONCONFORMANT_PARTITION_INFO = @import("../zig.zig").typedConst(HRESULT, @as(i32, 271626));
pub const VDS_E_CORRUPT_EXTENT_INFO = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212021));
pub const VDS_E_DUP_EMPTY_PACK_GUID = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212020));
pub const VDS_E_DRIVER_NO_PACK_NAME = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212019));
pub const VDS_S_SYSTEM_PARTITION = @import("../zig.zig").typedConst(HRESULT, @as(i32, 271630));
pub const VDS_E_BAD_PNP_MESSAGE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212017));
pub const VDS_E_NO_PNP_DISK_ARRIVE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212016));
pub const VDS_E_NO_PNP_VOLUME_ARRIVE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212015));
pub const VDS_E_NO_PNP_DISK_REMOVE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212014));
pub const VDS_E_NO_PNP_VOLUME_REMOVE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212013));
pub const VDS_E_PROVIDER_EXITING = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212012));
pub const VDS_E_EXTENT_EXCEEDS_DISK_FREE_SPACE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212011));
pub const VDS_E_MEMBER_SIZE_INVALID = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212010));
pub const VDS_S_NO_NOTIFICATION = @import("../zig.zig").typedConst(HRESULT, @as(i32, 271639));
pub const VDS_S_DEFAULT_PLEX_MEMBER_IDS = @import("../zig.zig").typedConst(HRESULT, @as(i32, 271640));
pub const VDS_E_INVALID_DISK = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212007));
pub const VDS_E_INVALID_PACK = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212006));
pub const VDS_E_VOLUME_ON_DISK = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212005));
pub const VDS_E_DRIVER_INVALID_PARAM = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212004));
pub const VDS_E_TARGET_PACK_NOT_EMPTY = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212003));
pub const VDS_E_CANNOT_SHRINK = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212002));
pub const VDS_E_MULTIPLE_PACKS = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212001));
pub const VDS_E_PACK_ONLINE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147212000));
pub const VDS_E_INVALID_PLEX_COUNT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211999));
pub const VDS_E_INVALID_MEMBER_COUNT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211998));
pub const VDS_E_INVALID_PLEX_ORDER = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211997));
pub const VDS_E_INVALID_MEMBER_ORDER = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211996));
pub const VDS_E_INVALID_STRIPE_SIZE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211995));
pub const VDS_E_INVALID_DISK_COUNT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211994));
pub const VDS_E_INVALID_EXTENT_COUNT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211993));
pub const VDS_E_SOURCE_IS_TARGET_PACK = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211992));
pub const VDS_E_VOLUME_DISK_COUNT_MAX_EXCEEDED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211991));
pub const VDS_E_CORRUPT_NOTIFICATION_INFO = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211990));
pub const VDS_E_INVALID_PLEX_GUID = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211988));
pub const VDS_E_DISK_NOT_FOUND_IN_PACK = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211987));
pub const VDS_E_DUPLICATE_DISK = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211986));
pub const VDS_E_LAST_VALID_DISK = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211985));
pub const VDS_E_INVALID_SECTOR_SIZE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211984));
pub const VDS_E_ONE_EXTENT_PER_DISK = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211983));
pub const VDS_E_INVALID_BLOCK_SIZE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211982));
pub const VDS_E_PLEX_SIZE_INVALID = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211981));
pub const VDS_E_NO_EXTENTS_FOR_PLEX = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211980));
pub const VDS_E_INVALID_PLEX_TYPE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211979));
pub const VDS_E_INVALID_PLEX_BLOCK_SIZE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211978));
pub const VDS_E_NO_HEALTHY_DISKS = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211977));
pub const VDS_E_CONFIG_LIMIT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211976));
pub const VDS_E_DISK_CONFIGURATION_CORRUPTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211975));
pub const VDS_E_DISK_CONFIGURATION_NOT_IN_SYNC = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211974));
pub const VDS_E_DISK_CONFIGURATION_UPDATE_FAILED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211973));
pub const VDS_E_DISK_DYNAMIC = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211972));
pub const VDS_E_DRIVER_OBJECT_NOT_FOUND = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211971));
pub const VDS_E_PARTITION_NOT_CYLINDER_ALIGNED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211970));
pub const VDS_E_DISK_LAYOUT_PARTITIONS_TOO_SMALL = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211969));
pub const VDS_E_DISK_IO_FAILING = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211968));
pub const VDS_E_DYNAMIC_DISKS_NOT_SUPPORTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211967));
pub const VDS_E_FAULT_TOLERANT_DISKS_NOT_SUPPORTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211966));
pub const VDS_E_GPT_ATTRIBUTES_INVALID = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211965));
pub const VDS_E_MEMBER_IS_HEALTHY = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211964));
pub const VDS_E_MEMBER_REGENERATING = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211963));
pub const VDS_E_PACK_NAME_INVALID = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211962));
pub const VDS_E_PLEX_IS_HEALTHY = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211961));
pub const VDS_E_PLEX_LAST_ACTIVE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211960));
pub const VDS_E_PLEX_MISSING = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211959));
pub const VDS_E_MEMBER_MISSING = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211958));
pub const VDS_E_PLEX_REGENERATING = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211957));
pub const VDS_E_UNEXPECTED_DISK_LAYOUT_CHANGE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211955));
pub const VDS_E_INVALID_VOLUME_LENGTH = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211954));
pub const VDS_E_VOLUME_LENGTH_NOT_SECTOR_SIZE_MULTIPLE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211953));
pub const VDS_E_VOLUME_NOT_RETAINED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211952));
pub const VDS_E_VOLUME_RETAINED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211951));
pub const VDS_E_ALIGN_BEYOND_FIRST_CYLINDER = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211949));
pub const VDS_E_ALIGN_NOT_SECTOR_SIZE_MULTIPLE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211948));
pub const VDS_E_ALIGN_NOT_ZERO = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211947));
pub const VDS_E_CACHE_CORRUPT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211946));
pub const VDS_E_CANNOT_CLEAR_VOLUME_FLAG = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211945));
pub const VDS_E_DISK_BEING_CLEANED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211944));
pub const VDS_E_DISK_NOT_CONVERTIBLE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211943));
pub const VDS_E_DISK_REMOVEABLE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211942));
pub const VDS_E_DISK_REMOVEABLE_NOT_EMPTY = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211941));
pub const VDS_E_DRIVE_LETTER_NOT_FREE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211940));
pub const VDS_E_EXTEND_MULTIPLE_DISKS_NOT_SUPPORTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211939));
pub const VDS_E_INVALID_DRIVE_LETTER = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211938));
pub const VDS_E_INVALID_DRIVE_LETTER_COUNT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211937));
pub const VDS_E_INVALID_FS_FLAG = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211936));
pub const VDS_E_INVALID_FS_TYPE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211935));
pub const VDS_E_INVALID_OBJECT_TYPE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211934));
pub const VDS_E_INVALID_PARTITION_LAYOUT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211933));
pub const VDS_E_INVALID_PARTITION_STYLE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211932));
pub const VDS_E_INVALID_PARTITION_TYPE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211931));
pub const VDS_E_INVALID_PROVIDER_CLSID = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211930));
pub const VDS_E_INVALID_PROVIDER_ID = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211929));
pub const VDS_E_INVALID_PROVIDER_NAME = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211928));
pub const VDS_E_INVALID_PROVIDER_TYPE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211927));
pub const VDS_E_INVALID_PROVIDER_VERSION_GUID = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211926));
pub const VDS_E_INVALID_PROVIDER_VERSION_STRING = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211925));
pub const VDS_E_INVALID_QUERY_PROVIDER_FLAG = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211924));
pub const VDS_E_INVALID_SERVICE_FLAG = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211923));
pub const VDS_E_INVALID_VOLUME_FLAG = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211922));
pub const VDS_E_PARTITION_NOT_OEM = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211921));
pub const VDS_E_PARTITION_PROTECTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211920));
pub const VDS_E_PARTITION_STYLE_MISMATCH = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211919));
pub const VDS_E_PROVIDER_INTERNAL_ERROR = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211918));
pub const VDS_E_SHRINK_SIZE_LESS_THAN_MIN = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211917));
pub const VDS_E_SHRINK_SIZE_TOO_BIG = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211916));
pub const VDS_E_UNRECOVERABLE_PROVIDER_ERROR = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211915));
pub const VDS_E_VOLUME_HIDDEN = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211914));
pub const VDS_S_DISMOUNT_FAILED = @import("../zig.zig").typedConst(HRESULT, @as(i32, 271735));
pub const VDS_S_REMOUNT_FAILED = @import("../zig.zig").typedConst(HRESULT, @as(i32, 271736));
pub const VDS_E_FLAG_ALREADY_SET = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211911));
pub const VDS_S_RESYNC_NOTIFICATION_TASK_FAILED = @import("../zig.zig").typedConst(HRESULT, @as(i32, 271738));
pub const VDS_E_DISTINCT_VOLUME = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211909));
pub const VDS_E_VOLUME_NOT_FOUND_IN_PACK = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211908));
pub const VDS_E_PARTITION_NON_DATA = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211907));
pub const VDS_E_CRITICAL_PLEX = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211906));
pub const VDS_E_VOLUME_SYNCHRONIZING = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211905));
pub const VDS_E_VOLUME_REGENERATING = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211904));
pub const VDS_S_VSS_FLUSH_AND_HOLD_WRITES = @import("../zig.zig").typedConst(HRESULT, @as(i32, 271745));
pub const VDS_S_VSS_RELEASE_WRITES = @import("../zig.zig").typedConst(HRESULT, @as(i32, 271746));
pub const VDS_S_FS_LOCK = @import("../zig.zig").typedConst(HRESULT, @as(i32, 271747));
pub const VDS_E_READONLY = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211900));
pub const VDS_E_INVALID_VOLUME_TYPE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211899));
pub const VDS_E_BAD_BOOT_DISK = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211898));
pub const VDS_E_LOG_UPDATE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211897));
pub const VDS_E_VOLUME_MIRRORED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211896));
pub const VDS_E_VOLUME_SIMPLE_SPANNED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211895));
pub const VDS_E_NO_VALID_LOG_COPIES = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211894));
pub const VDS_S_PLEX_NOT_LOADED_TO_CACHE = @import("../zig.zig").typedConst(HRESULT, @as(i32, 271755));
pub const VDS_E_PLEX_NOT_LOADED_TO_CACHE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211893));
pub const VDS_E_PARTITION_MSR = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211892));
pub const VDS_E_PARTITION_LDM = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211891));
pub const VDS_S_WINPE_BOOTENTRY = @import("../zig.zig").typedConst(HRESULT, @as(i32, 271758));
pub const VDS_E_ALIGN_NOT_A_POWER_OF_TWO = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211889));
pub const VDS_E_ALIGN_IS_ZERO = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211888));
pub const VDS_E_SHRINK_IN_PROGRESS = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211887));
pub const VDS_E_CANT_INVALIDATE_FVE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211886));
pub const VDS_E_FS_NOT_DETERMINED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211885));
pub const VDS_E_DISK_NOT_OFFLINE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211883));
pub const VDS_E_FAILED_TO_ONLINE_DISK = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211882));
pub const VDS_E_FAILED_TO_OFFLINE_DISK = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211881));
pub const VDS_E_BAD_REVISION_NUMBER = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211880));
pub const VDS_E_SHRINK_USER_CANCELLED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211879));
pub const VDS_E_SHRINK_DIRTY_VOLUME = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211878));
pub const VDS_S_NAME_TRUNCATED = @import("../zig.zig").typedConst(HRESULT, @as(i32, 272128));
pub const VDS_E_NAME_NOT_UNIQUE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211519));
pub const VDS_S_STATUSES_INCOMPLETELY_SET = @import("../zig.zig").typedConst(HRESULT, @as(i32, 272130));
pub const VDS_E_ADDRESSES_INCOMPLETELY_SET = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211517));
pub const VDS_E_SECURITY_INCOMPLETELY_SET = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211515));
pub const VDS_E_TARGET_SPECIFIC_NOT_SUPPORTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211514));
pub const VDS_E_INITIATOR_SPECIFIC_NOT_SUPPORTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211513));
pub const VDS_E_ISCSI_LOGIN_FAILED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211512));
pub const VDS_E_ISCSI_LOGOUT_FAILED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211511));
pub const VDS_E_ISCSI_SESSION_NOT_FOUND = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211510));
pub const VDS_E_ASSOCIATED_LUNS_EXIST = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211509));
pub const VDS_E_ASSOCIATED_PORTALS_EXIST = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211508));
pub const VDS_E_NO_DISCOVERY_DOMAIN = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211507));
pub const VDS_E_MULTIPLE_DISCOVERY_DOMAINS = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211506));
pub const VDS_E_NO_DISK_PATHNAME = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211505));
pub const VDS_E_ISCSI_LOGOUT_INCOMPLETE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211504));
pub const VDS_E_NO_VOLUME_PATHNAME = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211503));
pub const VDS_E_PROVIDER_CACHE_OUTOFSYNC = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211502));
pub const VDS_E_NO_IMPORT_TARGET = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211501));
pub const VDS_S_ALREADY_EXISTS = @import("../zig.zig").typedConst(HRESULT, @as(i32, 272148));
pub const VDS_S_PROPERTIES_INCOMPLETE = @import("../zig.zig").typedConst(HRESULT, @as(i32, 272149));
pub const VDS_S_ISCSI_SESSION_NOT_FOUND_PERSISTENT_LOGIN_REMOVED = @import("../zig.zig").typedConst(HRESULT, @as(i32, 272384));
pub const VDS_S_ISCSI_PERSISTENT_LOGIN_MAY_NOT_BE_REMOVED = @import("../zig.zig").typedConst(HRESULT, @as(i32, 272385));
pub const VDS_S_ISCSI_LOGIN_ALREAD_EXISTS = @import("../zig.zig").typedConst(HRESULT, @as(i32, 272386));
pub const VDS_E_UNABLE_TO_FIND_BOOT_DISK = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211261));
pub const VDS_E_INCORRECT_BOOT_VOLUME_EXTENT_INFO = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211260));
pub const VDS_E_GET_SAN_POLICY = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211259));
pub const VDS_E_SET_SAN_POLICY = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211258));
pub const VDS_E_BOOT_DISK = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211257));
pub const VDS_S_DISK_MOUNT_FAILED = @import("../zig.zig").typedConst(HRESULT, @as(i32, 272392));
pub const VDS_S_DISK_DISMOUNT_FAILED = @import("../zig.zig").typedConst(HRESULT, @as(i32, 272393));
pub const VDS_E_DISK_IS_OFFLINE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211254));
pub const VDS_E_DISK_IS_READ_ONLY = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211253));
pub const VDS_E_PAGEFILE_DISK = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211252));
pub const VDS_E_HIBERNATION_FILE_DISK = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211251));
pub const VDS_E_CRASHDUMP_DISK = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211250));
pub const VDS_E_UNABLE_TO_FIND_SYSTEM_DISK = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211249));
pub const VDS_E_INCORRECT_SYSTEM_VOLUME_EXTENT_INFO = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211248));
pub const VDS_E_SYSTEM_DISK = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211247));
pub const VDS_E_VOLUME_SHRINK_FVE_LOCKED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211246));
pub const VDS_E_VOLUME_SHRINK_FVE_CORRUPT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211245));
pub const VDS_E_VOLUME_SHRINK_FVE_RECOVERY = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211244));
pub const VDS_E_VOLUME_SHRINK_FVE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211243));
pub const VDS_E_SHRINK_OVER_DATA = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211242));
pub const VDS_E_INVALID_SHRINK_SIZE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211241));
pub const VDS_E_LUN_DISK_MISSING = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211240));
pub const VDS_E_LUN_DISK_FAILED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211239));
pub const VDS_E_LUN_DISK_NOT_READY = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211238));
pub const VDS_E_LUN_DISK_NO_MEDIA = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211237));
pub const VDS_E_LUN_NOT_READY = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211236));
pub const VDS_E_LUN_OFFLINE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211235));
pub const VDS_E_LUN_FAILED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211234));
pub const VDS_E_VOLUME_EXTEND_FVE_LOCKED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211233));
pub const VDS_E_VOLUME_EXTEND_FVE_CORRUPT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211232));
pub const VDS_E_VOLUME_EXTEND_FVE_RECOVERY = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211231));
pub const VDS_E_VOLUME_EXTEND_FVE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211230));
pub const VDS_E_SECTOR_SIZE_ERROR = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211229));
pub const VDS_E_INITIATOR_ADAPTER_NOT_FOUND = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211008));
pub const VDS_E_TARGET_PORTAL_NOT_FOUND = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211007));
pub const VDS_E_INVALID_PORT_PATH = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211006));
pub const VDS_E_INVALID_ISCSI_TARGET_NAME = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211005));
pub const VDS_E_SET_TUNNEL_MODE_OUTER_ADDRESS = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211004));
pub const VDS_E_ISCSI_GET_IKE_INFO = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211003));
pub const VDS_E_ISCSI_SET_IKE_INFO = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211002));
pub const VDS_E_SUBSYSTEM_ID_IS_NULL = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211001));
pub const VDS_E_ISCSI_INITIATOR_NODE_NAME = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147211000));
pub const VDS_E_ISCSI_GROUP_PRESHARE_KEY = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210999));
pub const VDS_E_ISCSI_CHAP_SECRET = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210998));
pub const VDS_E_INVALID_IP_ADDRESS = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210997));
pub const VDS_E_REBOOT_REQUIRED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210996));
pub const VDS_E_VOLUME_GUID_PATHNAME_NOT_ALLOWED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210995));
pub const VDS_E_BOOT_PAGEFILE_DRIVE_LETTER = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210994));
pub const VDS_E_DELETE_WITH_CRITICAL = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210993));
pub const VDS_E_CLEAN_WITH_DATA = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210992));
pub const VDS_E_CLEAN_WITH_OEM = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210991));
pub const VDS_E_CLEAN_WITH_CRITICAL = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210990));
pub const VDS_E_FORMAT_CRITICAL = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210989));
pub const VDS_E_NTFS_FORMAT_NOT_SUPPORTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210988));
pub const VDS_E_FAT32_FORMAT_NOT_SUPPORTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210987));
pub const VDS_E_FAT_FORMAT_NOT_SUPPORTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210986));
pub const VDS_E_FORMAT_NOT_SUPPORTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210985));
pub const VDS_E_COMPRESSION_NOT_SUPPORTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210984));
pub const VDS_E_VDISK_NOT_OPEN = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210983));
pub const VDS_E_VDISK_INVALID_OP_STATE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210982));
pub const VDS_E_INVALID_PATH = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210981));
pub const VDS_E_INVALID_ISCSI_PATH = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210980));
pub const VDS_E_SHRINK_LUN_NOT_UNMASKED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210979));
pub const VDS_E_LUN_DISK_READ_ONLY = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210978));
pub const VDS_E_LUN_UPDATE_DISK = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210977));
pub const VDS_E_LUN_DYNAMIC = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210976));
pub const VDS_E_LUN_DYNAMIC_OFFLINE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210975));
pub const VDS_E_LUN_SHRINK_GPT_HEADER = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210974));
pub const VDS_E_MIRROR_NOT_SUPPORTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210973));
pub const VDS_E_RAID5_NOT_SUPPORTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210972));
pub const VDS_E_DISK_NOT_CONVERTIBLE_SIZE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210971));
pub const VDS_E_OFFLINE_NOT_SUPPORTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210970));
pub const VDS_E_VDISK_PATHNAME_INVALID = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210969));
pub const VDS_E_EXTEND_TOO_MANY_CLUSTERS = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210968));
pub const VDS_E_EXTEND_UNKNOWN_FILESYSTEM = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210967));
pub const VDS_E_SHRINK_UNKNOWN_FILESYSTEM = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210966));
pub const VDS_E_VD_DISK_NOT_OPEN = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210965));
pub const VDS_E_VD_DISK_IS_EXPANDING = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210964));
pub const VDS_E_VD_DISK_IS_COMPACTING = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210963));
pub const VDS_E_VD_DISK_IS_MERGING = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210962));
pub const VDS_E_VD_IS_ATTACHED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210961));
pub const VDS_E_VD_DISK_ALREADY_OPEN = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210960));
pub const VDS_E_VD_DISK_ALREADY_EXPANDING = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210959));
pub const VDS_E_VD_ALREADY_COMPACTING = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210958));
pub const VDS_E_VD_ALREADY_MERGING = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210957));
pub const VDS_E_VD_ALREADY_ATTACHED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210956));
pub const VDS_E_VD_ALREADY_DETACHED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210955));
pub const VDS_E_VD_NOT_ATTACHED_READONLY = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210954));
pub const VDS_E_VD_IS_BEING_ATTACHED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210953));
pub const VDS_E_VD_IS_BEING_DETACHED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210952));
pub const VDS_E_NO_POOL = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210752));
pub const VDS_E_NO_POOL_CREATED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210751));
pub const VDS_E_NO_MAINTENANCE_MODE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210750));
pub const VDS_E_BLOCK_CLUSTERED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210749));
pub const VDS_E_DISK_HAS_BANDS = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210748));
pub const VDS_E_INVALID_STATE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210747));
pub const VDS_E_REFS_FORMAT_NOT_SUPPORTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210746));
pub const VDS_E_DELETE_WITH_BOOTBACKING = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210745));
pub const VDS_E_FORMAT_WITH_BOOTBACKING = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210744));
pub const VDS_E_CLEAN_WITH_BOOTBACKING = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210743));
pub const VDS_E_SHRINK_EXTEND_UNALIGNED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147210496));
//--------------------------------------------------------------------------------
// Section: Types (139)
//--------------------------------------------------------------------------------
pub const VDS_NF_PACK = enum(u32) {
ARRIVE = 1,
DEPART = 2,
MODIFY = 3,
};
pub const VDS_NF_PACK_ARRIVE = VDS_NF_PACK.ARRIVE;
pub const VDS_NF_PACK_DEPART = VDS_NF_PACK.DEPART;
pub const VDS_NF_PACK_MODIFY = VDS_NF_PACK.MODIFY;
pub const VDS_NF_FILE_SYSTEM = enum(u32) {
MODIFY = 203,
FORMAT_PROGRESS = 204,
};
pub const VDS_NF_FILE_SYSTEM_MODIFY = VDS_NF_FILE_SYSTEM.MODIFY;
pub const VDS_NF_FILE_SYSTEM_FORMAT_PROGRESS = VDS_NF_FILE_SYSTEM.FORMAT_PROGRESS;
pub const VDS_NF_CONTROLLER = enum(u32) {
ARRIVE = 103,
DEPART = 104,
MODIFY = 350,
REMOVED = 351,
};
pub const VDS_NF_CONTROLLER_ARRIVE = VDS_NF_CONTROLLER.ARRIVE;
pub const VDS_NF_CONTROLLER_DEPART = VDS_NF_CONTROLLER.DEPART;
pub const VDS_NF_CONTROLLER_MODIFY = VDS_NF_CONTROLLER.MODIFY;
pub const VDS_NF_CONTROLLER_REMOVED = VDS_NF_CONTROLLER.REMOVED;
pub const VDS_NF_DRIVE = enum(u32) {
ARRIVE = 105,
DEPART = 106,
MODIFY = 107,
REMOVED = 354,
};
pub const VDS_NF_DRIVE_ARRIVE = VDS_NF_DRIVE.ARRIVE;
pub const VDS_NF_DRIVE_DEPART = VDS_NF_DRIVE.DEPART;
pub const VDS_NF_DRIVE_MODIFY = VDS_NF_DRIVE.MODIFY;
pub const VDS_NF_DRIVE_REMOVED = VDS_NF_DRIVE.REMOVED;
pub const VDS_NF_PORT = enum(u32) {
ARRIVE = 121,
DEPART = 122,
MODIFY = 352,
REMOVED = 353,
};
pub const VDS_NF_PORT_ARRIVE = VDS_NF_PORT.ARRIVE;
pub const VDS_NF_PORT_DEPART = VDS_NF_PORT.DEPART;
pub const VDS_NF_PORT_MODIFY = VDS_NF_PORT.MODIFY;
pub const VDS_NF_PORT_REMOVED = VDS_NF_PORT.REMOVED;
pub const VDS_NF_LUN = enum(u32) {
ARRIVE = 108,
DEPART = 109,
MODIFY = 110,
};
pub const VDS_NF_LUN_ARRIVE = VDS_NF_LUN.ARRIVE;
pub const VDS_NF_LUN_DEPART = VDS_NF_LUN.DEPART;
pub const VDS_NF_LUN_MODIFY = VDS_NF_LUN.MODIFY;
pub const VDS_NF_DISK = enum(u32) {
ARRIVE = 8,
DEPART = 9,
MODIFY = 10,
};
pub const VDS_NF_DISK_ARRIVE = VDS_NF_DISK.ARRIVE;
pub const VDS_NF_DISK_DEPART = VDS_NF_DISK.DEPART;
pub const VDS_NF_DISK_MODIFY = VDS_NF_DISK.MODIFY;
pub const VDS_STORAGE_IDENTIFIER_CODE_SET = enum(i32) {
Reserved = 0,
Binary = 1,
Ascii = 2,
Utf8 = 3,
};
pub const VDSStorageIdCodeSetReserved = VDS_STORAGE_IDENTIFIER_CODE_SET.Reserved;
pub const VDSStorageIdCodeSetBinary = VDS_STORAGE_IDENTIFIER_CODE_SET.Binary;
pub const VDSStorageIdCodeSetAscii = VDS_STORAGE_IDENTIFIER_CODE_SET.Ascii;
pub const VDSStorageIdCodeSetUtf8 = VDS_STORAGE_IDENTIFIER_CODE_SET.Utf8;
pub const VDS_STORAGE_IDENTIFIER_TYPE = enum(i32) {
VendorSpecific = 0,
VendorId = 1,
EUI64 = 2,
FCPHName = 3,
PortRelative = 4,
TargetPortGroup = 5,
LogicalUnitGroup = 6,
MD5LogicalUnitIdentifier = 7,
ScsiNameString = 8,
};
pub const VDSStorageIdTypeVendorSpecific = VDS_STORAGE_IDENTIFIER_TYPE.VendorSpecific;
pub const VDSStorageIdTypeVendorId = VDS_STORAGE_IDENTIFIER_TYPE.VendorId;
pub const VDSStorageIdTypeEUI64 = VDS_STORAGE_IDENTIFIER_TYPE.EUI64;
pub const VDSStorageIdTypeFCPHName = VDS_STORAGE_IDENTIFIER_TYPE.FCPHName;
pub const VDSStorageIdTypePortRelative = VDS_STORAGE_IDENTIFIER_TYPE.PortRelative;
pub const VDSStorageIdTypeTargetPortGroup = VDS_STORAGE_IDENTIFIER_TYPE.TargetPortGroup;
pub const VDSStorageIdTypeLogicalUnitGroup = VDS_STORAGE_IDENTIFIER_TYPE.LogicalUnitGroup;
pub const VDSStorageIdTypeMD5LogicalUnitIdentifier = VDS_STORAGE_IDENTIFIER_TYPE.MD5LogicalUnitIdentifier;
pub const VDSStorageIdTypeScsiNameString = VDS_STORAGE_IDENTIFIER_TYPE.ScsiNameString;
pub const VDS_STORAGE_BUS_TYPE = enum(i32) {
Unknown = 0,
Scsi = 1,
Atapi = 2,
Ata = 3,
@"1394" = 4,
Ssa = 5,
Fibre = 6,
Usb = 7,
RAID = 8,
iScsi = 9,
Sas = 10,
Sata = 11,
Sd = 12,
Mmc = 13,
Max = 14,
// Virtual = 14, this enum value conflicts with Max
FileBackedVirtual = 15,
Spaces = 16,
NVMe = 17,
Scm = 18,
Ufs = 19,
MaxReserved = 127,
};
pub const VDSBusTypeUnknown = VDS_STORAGE_BUS_TYPE.Unknown;
pub const VDSBusTypeScsi = VDS_STORAGE_BUS_TYPE.Scsi;
pub const VDSBusTypeAtapi = VDS_STORAGE_BUS_TYPE.Atapi;
pub const VDSBusTypeAta = VDS_STORAGE_BUS_TYPE.Ata;
pub const VDSBusType1394 = VDS_STORAGE_BUS_TYPE.@"1394";
pub const VDSBusTypeSsa = VDS_STORAGE_BUS_TYPE.Ssa;
pub const VDSBusTypeFibre = VDS_STORAGE_BUS_TYPE.Fibre;
pub const VDSBusTypeUsb = VDS_STORAGE_BUS_TYPE.Usb;
pub const VDSBusTypeRAID = VDS_STORAGE_BUS_TYPE.RAID;
pub const VDSBusTypeiScsi = VDS_STORAGE_BUS_TYPE.iScsi;
pub const VDSBusTypeSas = VDS_STORAGE_BUS_TYPE.Sas;
pub const VDSBusTypeSata = VDS_STORAGE_BUS_TYPE.Sata;
pub const VDSBusTypeSd = VDS_STORAGE_BUS_TYPE.Sd;
pub const VDSBusTypeMmc = VDS_STORAGE_BUS_TYPE.Mmc;
pub const VDSBusTypeMax = VDS_STORAGE_BUS_TYPE.Max;
pub const VDSBusTypeVirtual = VDS_STORAGE_BUS_TYPE.Max;
pub const VDSBusTypeFileBackedVirtual = VDS_STORAGE_BUS_TYPE.FileBackedVirtual;
pub const VDSBusTypeSpaces = VDS_STORAGE_BUS_TYPE.Spaces;
pub const VDSBusTypeNVMe = VDS_STORAGE_BUS_TYPE.NVMe;
pub const VDSBusTypeScm = VDS_STORAGE_BUS_TYPE.Scm;
pub const VDSBusTypeUfs = VDS_STORAGE_BUS_TYPE.Ufs;
pub const VDSBusTypeMaxReserved = VDS_STORAGE_BUS_TYPE.MaxReserved;
pub const VDS_STORAGE_IDENTIFIER = extern struct {
m_CodeSet: VDS_STORAGE_IDENTIFIER_CODE_SET,
m_Type: VDS_STORAGE_IDENTIFIER_TYPE,
m_cbIdentifier: u32,
m_rgbIdentifier: ?*u8,
};
pub const VDS_STORAGE_DEVICE_ID_DESCRIPTOR = extern struct {
m_version: u32,
m_cIdentifiers: u32,
m_rgIdentifiers: ?*VDS_STORAGE_IDENTIFIER,
};
pub const VDS_INTERCONNECT_ADDRESS_TYPE = enum(i32) {
UNKNOWN = 0,
FCFS = 1,
FCPH = 2,
FCPH3 = 3,
MAC = 4,
SCSI = 5,
};
pub const VDS_IA_UNKNOWN = VDS_INTERCONNECT_ADDRESS_TYPE.UNKNOWN;
pub const VDS_IA_FCFS = VDS_INTERCONNECT_ADDRESS_TYPE.FCFS;
pub const VDS_IA_FCPH = VDS_INTERCONNECT_ADDRESS_TYPE.FCPH;
pub const VDS_IA_FCPH3 = VDS_INTERCONNECT_ADDRESS_TYPE.FCPH3;
pub const VDS_IA_MAC = VDS_INTERCONNECT_ADDRESS_TYPE.MAC;
pub const VDS_IA_SCSI = VDS_INTERCONNECT_ADDRESS_TYPE.SCSI;
pub const VDS_INTERCONNECT = extern struct {
m_addressType: VDS_INTERCONNECT_ADDRESS_TYPE,
m_cbPort: u32,
m_pbPort: ?*u8,
m_cbAddress: u32,
m_pbAddress: ?*u8,
};
pub const VDS_LUN_INFORMATION = extern struct {
m_version: u32,
m_DeviceType: u8,
m_DeviceTypeModifier: u8,
m_bCommandQueueing: BOOL,
m_BusType: VDS_STORAGE_BUS_TYPE,
m_szVendorId: ?*u8,
m_szProductId: ?*u8,
m_szProductRevision: ?*u8,
m_szSerialNumber: ?*u8,
m_diskSignature: Guid,
m_deviceIdDescriptor: VDS_STORAGE_DEVICE_ID_DESCRIPTOR,
m_cInterconnects: u32,
m_rgInterconnects: ?*VDS_INTERCONNECT,
};
pub const VDS_OBJECT_TYPE = enum(i32) {
UNKNOWN = 0,
PROVIDER = 1,
PACK = 10,
VOLUME = 11,
VOLUME_PLEX = 12,
DISK = 13,
SUB_SYSTEM = 30,
CONTROLLER = 31,
DRIVE = 32,
LUN = 33,
LUN_PLEX = 34,
PORT = 35,
PORTAL = 36,
TARGET = 37,
PORTAL_GROUP = 38,
STORAGE_POOL = 39,
HBAPORT = 90,
INIT_ADAPTER = 91,
INIT_PORTAL = 92,
ASYNC = 100,
ENUM = 101,
VDISK = 200,
OPEN_VDISK = 201,
};
pub const VDS_OT_UNKNOWN = VDS_OBJECT_TYPE.UNKNOWN;
pub const VDS_OT_PROVIDER = VDS_OBJECT_TYPE.PROVIDER;
pub const VDS_OT_PACK = VDS_OBJECT_TYPE.PACK;
pub const VDS_OT_VOLUME = VDS_OBJECT_TYPE.VOLUME;
pub const VDS_OT_VOLUME_PLEX = VDS_OBJECT_TYPE.VOLUME_PLEX;
pub const VDS_OT_DISK = VDS_OBJECT_TYPE.DISK;
pub const VDS_OT_SUB_SYSTEM = VDS_OBJECT_TYPE.SUB_SYSTEM;
pub const VDS_OT_CONTROLLER = VDS_OBJECT_TYPE.CONTROLLER;
pub const VDS_OT_DRIVE = VDS_OBJECT_TYPE.DRIVE;
pub const VDS_OT_LUN = VDS_OBJECT_TYPE.LUN;
pub const VDS_OT_LUN_PLEX = VDS_OBJECT_TYPE.LUN_PLEX;
pub const VDS_OT_PORT = VDS_OBJECT_TYPE.PORT;
pub const VDS_OT_PORTAL = VDS_OBJECT_TYPE.PORTAL;
pub const VDS_OT_TARGET = VDS_OBJECT_TYPE.TARGET;
pub const VDS_OT_PORTAL_GROUP = VDS_OBJECT_TYPE.PORTAL_GROUP;
pub const VDS_OT_STORAGE_POOL = VDS_OBJECT_TYPE.STORAGE_POOL;
pub const VDS_OT_HBAPORT = VDS_OBJECT_TYPE.HBAPORT;
pub const VDS_OT_INIT_ADAPTER = VDS_OBJECT_TYPE.INIT_ADAPTER;
pub const VDS_OT_INIT_PORTAL = VDS_OBJECT_TYPE.INIT_PORTAL;
pub const VDS_OT_ASYNC = VDS_OBJECT_TYPE.ASYNC;
pub const VDS_OT_ENUM = VDS_OBJECT_TYPE.ENUM;
pub const VDS_OT_VDISK = VDS_OBJECT_TYPE.VDISK;
pub const VDS_OT_OPEN_VDISK = VDS_OBJECT_TYPE.OPEN_VDISK;
pub const VDS_PROVIDER_TYPE = enum(i32) {
UNKNOWN = 0,
SOFTWARE = 1,
HARDWARE = 2,
VIRTUALDISK = 3,
MAX = 4,
};
pub const VDS_PT_UNKNOWN = VDS_PROVIDER_TYPE.UNKNOWN;
pub const VDS_PT_SOFTWARE = VDS_PROVIDER_TYPE.SOFTWARE;
pub const VDS_PT_HARDWARE = VDS_PROVIDER_TYPE.HARDWARE;
pub const VDS_PT_VIRTUALDISK = VDS_PROVIDER_TYPE.VIRTUALDISK;
pub const VDS_PT_MAX = VDS_PROVIDER_TYPE.MAX;
pub const VDS_PROVIDER_FLAG = enum(i32) {
DYNAMIC = 1,
INTERNAL_HARDWARE_PROVIDER = 2,
ONE_DISK_ONLY_PER_PACK = 4,
ONE_PACK_ONLINE_ONLY = 8,
VOLUME_SPACE_MUST_BE_CONTIGUOUS = 16,
SUPPORT_DYNAMIC = -2147483648,
SUPPORT_FAULT_TOLERANT = 1073741824,
SUPPORT_DYNAMIC_1394 = 536870912,
SUPPORT_MIRROR = 32,
SUPPORT_RAID5 = 64,
};
pub const VDS_PF_DYNAMIC = VDS_PROVIDER_FLAG.DYNAMIC;
pub const VDS_PF_INTERNAL_HARDWARE_PROVIDER = VDS_PROVIDER_FLAG.INTERNAL_HARDWARE_PROVIDER;
pub const VDS_PF_ONE_DISK_ONLY_PER_PACK = VDS_PROVIDER_FLAG.ONE_DISK_ONLY_PER_PACK;
pub const VDS_PF_ONE_PACK_ONLINE_ONLY = VDS_PROVIDER_FLAG.ONE_PACK_ONLINE_ONLY;
pub const VDS_PF_VOLUME_SPACE_MUST_BE_CONTIGUOUS = VDS_PROVIDER_FLAG.VOLUME_SPACE_MUST_BE_CONTIGUOUS;
pub const VDS_PF_SUPPORT_DYNAMIC = VDS_PROVIDER_FLAG.SUPPORT_DYNAMIC;
pub const VDS_PF_SUPPORT_FAULT_TOLERANT = VDS_PROVIDER_FLAG.SUPPORT_FAULT_TOLERANT;
pub const VDS_PF_SUPPORT_DYNAMIC_1394 = VDS_PROVIDER_FLAG.SUPPORT_DYNAMIC_1394;
pub const VDS_PF_SUPPORT_MIRROR = VDS_PROVIDER_FLAG.SUPPORT_MIRROR;
pub const VDS_PF_SUPPORT_RAID5 = VDS_PROVIDER_FLAG.SUPPORT_RAID5;
pub const VDS_RECOVER_ACTION = enum(i32) {
UNKNOWN = 0,
REFRESH = 1,
RESTART = 2,
};
pub const VDS_RA_UNKNOWN = VDS_RECOVER_ACTION.UNKNOWN;
pub const VDS_RA_REFRESH = VDS_RECOVER_ACTION.REFRESH;
pub const VDS_RA_RESTART = VDS_RECOVER_ACTION.RESTART;
pub const VDS_NOTIFICATION_TARGET_TYPE = enum(i32) {
UNKNOWN = 0,
PACK = 10,
VOLUME = 11,
DISK = 13,
PARTITION = 60,
DRIVE_LETTER = 61,
FILE_SYSTEM = 62,
MOUNT_POINT = 63,
SUB_SYSTEM = 30,
CONTROLLER = 31,
DRIVE = 32,
LUN = 33,
PORT = 35,
PORTAL = 36,
TARGET = 37,
PORTAL_GROUP = 38,
SERVICE = 200,
};
pub const VDS_NTT_UNKNOWN = VDS_NOTIFICATION_TARGET_TYPE.UNKNOWN;
pub const VDS_NTT_PACK = VDS_NOTIFICATION_TARGET_TYPE.PACK;
pub const VDS_NTT_VOLUME = VDS_NOTIFICATION_TARGET_TYPE.VOLUME;
pub const VDS_NTT_DISK = VDS_NOTIFICATION_TARGET_TYPE.DISK;
pub const VDS_NTT_PARTITION = VDS_NOTIFICATION_TARGET_TYPE.PARTITION;
pub const VDS_NTT_DRIVE_LETTER = VDS_NOTIFICATION_TARGET_TYPE.DRIVE_LETTER;
pub const VDS_NTT_FILE_SYSTEM = VDS_NOTIFICATION_TARGET_TYPE.FILE_SYSTEM;
pub const VDS_NTT_MOUNT_POINT = VDS_NOTIFICATION_TARGET_TYPE.MOUNT_POINT;
pub const VDS_NTT_SUB_SYSTEM = VDS_NOTIFICATION_TARGET_TYPE.SUB_SYSTEM;
pub const VDS_NTT_CONTROLLER = VDS_NOTIFICATION_TARGET_TYPE.CONTROLLER;
pub const VDS_NTT_DRIVE = VDS_NOTIFICATION_TARGET_TYPE.DRIVE;
pub const VDS_NTT_LUN = VDS_NOTIFICATION_TARGET_TYPE.LUN;
pub const VDS_NTT_PORT = VDS_NOTIFICATION_TARGET_TYPE.PORT;
pub const VDS_NTT_PORTAL = VDS_NOTIFICATION_TARGET_TYPE.PORTAL;
pub const VDS_NTT_TARGET = VDS_NOTIFICATION_TARGET_TYPE.TARGET;
pub const VDS_NTT_PORTAL_GROUP = VDS_NOTIFICATION_TARGET_TYPE.PORTAL_GROUP;
pub const VDS_NTT_SERVICE = VDS_NOTIFICATION_TARGET_TYPE.SERVICE;
pub const VDS_PACK_NOTIFICATION = extern struct {
ulEvent: VDS_NF_PACK,
packId: Guid,
};
pub const VDS_DISK_NOTIFICATION = extern struct {
ulEvent: VDS_NF_DISK,
diskId: Guid,
};
pub const VDS_VOLUME_NOTIFICATION = extern struct {
ulEvent: u32,
volumeId: Guid,
plexId: Guid,
ulPercentCompleted: u32,
};
pub const VDS_PARTITION_NOTIFICATION = extern struct {
ulEvent: u32,
diskId: Guid,
ullOffset: u64,
};
pub const VDS_SERVICE_NOTIFICATION = extern struct {
ulEvent: u32,
action: VDS_RECOVER_ACTION,
};
pub const VDS_DRIVE_LETTER_NOTIFICATION = extern struct {
ulEvent: u32,
wcLetter: u16,
volumeId: Guid,
};
pub const VDS_FILE_SYSTEM_NOTIFICATION = extern struct {
ulEvent: VDS_NF_FILE_SYSTEM,
volumeId: Guid,
dwPercentCompleted: u32,
};
pub const VDS_MOUNT_POINT_NOTIFICATION = extern struct {
ulEvent: u32,
volumeId: Guid,
};
pub const VDS_SUB_SYSTEM_NOTIFICATION = extern struct {
ulEvent: u32,
subSystemId: Guid,
};
pub const VDS_CONTROLLER_NOTIFICATION = extern struct {
ulEvent: VDS_NF_CONTROLLER,
controllerId: Guid,
};
pub const VDS_DRIVE_NOTIFICATION = extern struct {
ulEvent: VDS_NF_DRIVE,
driveId: Guid,
};
pub const VDS_LUN_NOTIFICATION = extern struct {
ulEvent: VDS_NF_LUN,
LunId: Guid,
};
pub const VDS_PORT_NOTIFICATION = extern struct {
ulEvent: VDS_NF_PORT,
portId: Guid,
};
pub const VDS_PORTAL_NOTIFICATION = extern struct {
ulEvent: u32,
portalId: Guid,
};
pub const VDS_TARGET_NOTIFICATION = extern struct {
ulEvent: u32,
targetId: Guid,
};
pub const VDS_PORTAL_GROUP_NOTIFICATION = extern struct {
ulEvent: u32,
portalGroupId: Guid,
};
pub const VDS_NOTIFICATION = extern struct {
objectType: VDS_NOTIFICATION_TARGET_TYPE,
Anonymous: extern union {
Pack: VDS_PACK_NOTIFICATION,
Disk: VDS_DISK_NOTIFICATION,
Volume: VDS_VOLUME_NOTIFICATION,
Partition: VDS_PARTITION_NOTIFICATION,
Letter: VDS_DRIVE_LETTER_NOTIFICATION,
FileSystem: VDS_FILE_SYSTEM_NOTIFICATION,
MountPoint: VDS_MOUNT_POINT_NOTIFICATION,
SubSystem: VDS_SUB_SYSTEM_NOTIFICATION,
Controller: VDS_CONTROLLER_NOTIFICATION,
Drive: VDS_DRIVE_NOTIFICATION,
Lun: VDS_LUN_NOTIFICATION,
Port: VDS_PORT_NOTIFICATION,
Portal: VDS_PORTAL_NOTIFICATION,
Target: VDS_TARGET_NOTIFICATION,
PortalGroup: VDS_PORTAL_GROUP_NOTIFICATION,
Service: VDS_SERVICE_NOTIFICATION,
},
};
pub const VDS_ASYNC_OUTPUT_TYPE = enum(i32) {
UNKNOWN = 0,
CREATEVOLUME = 1,
EXTENDVOLUME = 2,
SHRINKVOLUME = 3,
ADDVOLUMEPLEX = 4,
BREAKVOLUMEPLEX = 5,
REMOVEVOLUMEPLEX = 6,
REPAIRVOLUMEPLEX = 7,
RECOVERPACK = 8,
REPLACEDISK = 9,
CREATEPARTITION = 10,
CLEAN = 11,
CREATELUN = 50,
ADDLUNPLEX = 52,
REMOVELUNPLEX = 53,
EXTENDLUN = 54,
SHRINKLUN = 55,
RECOVERLUN = 56,
LOGINTOTARGET = 60,
LOGOUTFROMTARGET = 61,
CREATETARGET = 62,
CREATEPORTALGROUP = 63,
DELETETARGET = 64,
ADDPORTAL = 65,
REMOVEPORTAL = 66,
DELETEPORTALGROUP = 67,
FORMAT = 101,
CREATE_VDISK = 200,
ATTACH_VDISK = 201,
COMPACT_VDISK = 202,
MERGE_VDISK = 203,
EXPAND_VDISK = 204,
};
pub const VDS_ASYNCOUT_UNKNOWN = VDS_ASYNC_OUTPUT_TYPE.UNKNOWN;
pub const VDS_ASYNCOUT_CREATEVOLUME = VDS_ASYNC_OUTPUT_TYPE.CREATEVOLUME;
pub const VDS_ASYNCOUT_EXTENDVOLUME = VDS_ASYNC_OUTPUT_TYPE.EXTENDVOLUME;
pub const VDS_ASYNCOUT_SHRINKVOLUME = VDS_ASYNC_OUTPUT_TYPE.SHRINKVOLUME;
pub const VDS_ASYNCOUT_ADDVOLUMEPLEX = VDS_ASYNC_OUTPUT_TYPE.ADDVOLUMEPLEX;
pub const VDS_ASYNCOUT_BREAKVOLUMEPLEX = VDS_ASYNC_OUTPUT_TYPE.BREAKVOLUMEPLEX;
pub const VDS_ASYNCOUT_REMOVEVOLUMEPLEX = VDS_ASYNC_OUTPUT_TYPE.REMOVEVOLUMEPLEX;
pub const VDS_ASYNCOUT_REPAIRVOLUMEPLEX = VDS_ASYNC_OUTPUT_TYPE.REPAIRVOLUMEPLEX;
pub const VDS_ASYNCOUT_RECOVERPACK = VDS_ASYNC_OUTPUT_TYPE.RECOVERPACK;
pub const VDS_ASYNCOUT_REPLACEDISK = VDS_ASYNC_OUTPUT_TYPE.REPLACEDISK;
pub const VDS_ASYNCOUT_CREATEPARTITION = VDS_ASYNC_OUTPUT_TYPE.CREATEPARTITION;
pub const VDS_ASYNCOUT_CLEAN = VDS_ASYNC_OUTPUT_TYPE.CLEAN;
pub const VDS_ASYNCOUT_CREATELUN = VDS_ASYNC_OUTPUT_TYPE.CREATELUN;
pub const VDS_ASYNCOUT_ADDLUNPLEX = VDS_ASYNC_OUTPUT_TYPE.ADDLUNPLEX;
pub const VDS_ASYNCOUT_REMOVELUNPLEX = VDS_ASYNC_OUTPUT_TYPE.REMOVELUNPLEX;
pub const VDS_ASYNCOUT_EXTENDLUN = VDS_ASYNC_OUTPUT_TYPE.EXTENDLUN;
pub const VDS_ASYNCOUT_SHRINKLUN = VDS_ASYNC_OUTPUT_TYPE.SHRINKLUN;
pub const VDS_ASYNCOUT_RECOVERLUN = VDS_ASYNC_OUTPUT_TYPE.RECOVERLUN;
pub const VDS_ASYNCOUT_LOGINTOTARGET = VDS_ASYNC_OUTPUT_TYPE.LOGINTOTARGET;
pub const VDS_ASYNCOUT_LOGOUTFROMTARGET = VDS_ASYNC_OUTPUT_TYPE.LOGOUTFROMTARGET;
pub const VDS_ASYNCOUT_CREATETARGET = VDS_ASYNC_OUTPUT_TYPE.CREATETARGET;
pub const VDS_ASYNCOUT_CREATEPORTALGROUP = VDS_ASYNC_OUTPUT_TYPE.CREATEPORTALGROUP;
pub const VDS_ASYNCOUT_DELETETARGET = VDS_ASYNC_OUTPUT_TYPE.DELETETARGET;
pub const VDS_ASYNCOUT_ADDPORTAL = VDS_ASYNC_OUTPUT_TYPE.ADDPORTAL;
pub const VDS_ASYNCOUT_REMOVEPORTAL = VDS_ASYNC_OUTPUT_TYPE.REMOVEPORTAL;
pub const VDS_ASYNCOUT_DELETEPORTALGROUP = VDS_ASYNC_OUTPUT_TYPE.DELETEPORTALGROUP;
pub const VDS_ASYNCOUT_FORMAT = VDS_ASYNC_OUTPUT_TYPE.FORMAT;
pub const VDS_ASYNCOUT_CREATE_VDISK = VDS_ASYNC_OUTPUT_TYPE.CREATE_VDISK;
pub const VDS_ASYNCOUT_ATTACH_VDISK = VDS_ASYNC_OUTPUT_TYPE.ATTACH_VDISK;
pub const VDS_ASYNCOUT_COMPACT_VDISK = VDS_ASYNC_OUTPUT_TYPE.COMPACT_VDISK;
pub const VDS_ASYNCOUT_MERGE_VDISK = VDS_ASYNC_OUTPUT_TYPE.MERGE_VDISK;
pub const VDS_ASYNCOUT_EXPAND_VDISK = VDS_ASYNC_OUTPUT_TYPE.EXPAND_VDISK;
pub const VDS_ASYNC_OUTPUT = extern struct {
type: VDS_ASYNC_OUTPUT_TYPE,
Anonymous: extern union {
pub const _cpg = extern struct {
pPortalGroupUnk: ?*IUnknown,
};
pub const _cl = extern struct {
pLunUnk: ?*IUnknown,
};
pub const _bvp = extern struct {
pVolumeUnk: ?*IUnknown,
};
pub const _cp = extern struct {
ullOffset: u64,
volumeId: Guid,
};
pub const _cvd = extern struct {
pVDiskUnk: ?*IUnknown,
};
pub const _sv = extern struct {
ullReclaimedBytes: u64,
};
pub const _cv = extern struct {
pVolumeUnk: ?*IUnknown,
};
pub const _ct = extern struct {
pTargetUnk: ?*IUnknown,
};
cp: _cp,
cv: _cv,
bvp: _bvp,
sv: _sv,
cl: _cl,
ct: _ct,
cpg: _cpg,
cvd: _cvd,
},
};
pub const VDS_IPADDRESS_TYPE = enum(i32) {
TEXT = 0,
IPV4 = 1,
IPV6 = 2,
EMPTY = 3,
};
pub const VDS_IPT_TEXT = VDS_IPADDRESS_TYPE.TEXT;
pub const VDS_IPT_IPV4 = VDS_IPADDRESS_TYPE.IPV4;
pub const VDS_IPT_IPV6 = VDS_IPADDRESS_TYPE.IPV6;
pub const VDS_IPT_EMPTY = VDS_IPADDRESS_TYPE.EMPTY;
pub const VDS_HEALTH = enum(i32) {
UNKNOWN = 0,
HEALTHY = 1,
REBUILDING = 2,
STALE = 3,
FAILING = 4,
FAILING_REDUNDANCY = 5,
FAILED_REDUNDANCY = 6,
FAILED_REDUNDANCY_FAILING = 7,
FAILED = 8,
REPLACED = 9,
PENDING_FAILURE = 10,
DEGRADED = 11,
};
pub const VDS_H_UNKNOWN = VDS_HEALTH.UNKNOWN;
pub const VDS_H_HEALTHY = VDS_HEALTH.HEALTHY;
pub const VDS_H_REBUILDING = VDS_HEALTH.REBUILDING;
pub const VDS_H_STALE = VDS_HEALTH.STALE;
pub const VDS_H_FAILING = VDS_HEALTH.FAILING;
pub const VDS_H_FAILING_REDUNDANCY = VDS_HEALTH.FAILING_REDUNDANCY;
pub const VDS_H_FAILED_REDUNDANCY = VDS_HEALTH.FAILED_REDUNDANCY;
pub const VDS_H_FAILED_REDUNDANCY_FAILING = VDS_HEALTH.FAILED_REDUNDANCY_FAILING;
pub const VDS_H_FAILED = VDS_HEALTH.FAILED;
pub const VDS_H_REPLACED = VDS_HEALTH.REPLACED;
pub const VDS_H_PENDING_FAILURE = VDS_HEALTH.PENDING_FAILURE;
pub const VDS_H_DEGRADED = VDS_HEALTH.DEGRADED;
pub const VDS_TRANSITION_STATE = enum(i32) {
UNKNOWN = 0,
STABLE = 1,
EXTENDING = 2,
SHRINKING = 3,
RECONFIGING = 4,
RESTRIPING = 5,
};
pub const VDS_TS_UNKNOWN = VDS_TRANSITION_STATE.UNKNOWN;
pub const VDS_TS_STABLE = VDS_TRANSITION_STATE.STABLE;
pub const VDS_TS_EXTENDING = VDS_TRANSITION_STATE.EXTENDING;
pub const VDS_TS_SHRINKING = VDS_TRANSITION_STATE.SHRINKING;
pub const VDS_TS_RECONFIGING = VDS_TRANSITION_STATE.RECONFIGING;
pub const VDS_TS_RESTRIPING = VDS_TRANSITION_STATE.RESTRIPING;
pub const VDS_FILE_SYSTEM_TYPE = enum(i32) {
UNKNOWN = 0,
RAW = 1,
FAT = 2,
FAT32 = 3,
NTFS = 4,
CDFS = 5,
UDF = 6,
EXFAT = 7,
CSVFS = 8,
REFS = 9,
};
pub const VDS_FST_UNKNOWN = VDS_FILE_SYSTEM_TYPE.UNKNOWN;
pub const VDS_FST_RAW = VDS_FILE_SYSTEM_TYPE.RAW;
pub const VDS_FST_FAT = VDS_FILE_SYSTEM_TYPE.FAT;
pub const VDS_FST_FAT32 = VDS_FILE_SYSTEM_TYPE.FAT32;
pub const VDS_FST_NTFS = VDS_FILE_SYSTEM_TYPE.NTFS;
pub const VDS_FST_CDFS = VDS_FILE_SYSTEM_TYPE.CDFS;
pub const VDS_FST_UDF = VDS_FILE_SYSTEM_TYPE.UDF;
pub const VDS_FST_EXFAT = VDS_FILE_SYSTEM_TYPE.EXFAT;
pub const VDS_FST_CSVFS = VDS_FILE_SYSTEM_TYPE.CSVFS;
pub const VDS_FST_REFS = VDS_FILE_SYSTEM_TYPE.REFS;
pub const VDS_HBAPORT_TYPE = enum(i32) {
UNKNOWN = 1,
OTHER = 2,
NOTPRESENT = 3,
NPORT = 5,
NLPORT = 6,
FLPORT = 7,
FPORT = 8,
EPORT = 9,
GPORT = 10,
LPORT = 20,
PTP = 21,
};
pub const VDS_HPT_UNKNOWN = VDS_HBAPORT_TYPE.UNKNOWN;
pub const VDS_HPT_OTHER = VDS_HBAPORT_TYPE.OTHER;
pub const VDS_HPT_NOTPRESENT = VDS_HBAPORT_TYPE.NOTPRESENT;
pub const VDS_HPT_NPORT = VDS_HBAPORT_TYPE.NPORT;
pub const VDS_HPT_NLPORT = VDS_HBAPORT_TYPE.NLPORT;
pub const VDS_HPT_FLPORT = VDS_HBAPORT_TYPE.FLPORT;
pub const VDS_HPT_FPORT = VDS_HBAPORT_TYPE.FPORT;
pub const VDS_HPT_EPORT = VDS_HBAPORT_TYPE.EPORT;
pub const VDS_HPT_GPORT = VDS_HBAPORT_TYPE.GPORT;
pub const VDS_HPT_LPORT = VDS_HBAPORT_TYPE.LPORT;
pub const VDS_HPT_PTP = VDS_HBAPORT_TYPE.PTP;
pub const VDS_HBAPORT_STATUS = enum(i32) {
UNKNOWN = 1,
ONLINE = 2,
OFFLINE = 3,
BYPASSED = 4,
DIAGNOSTICS = 5,
LINKDOWN = 6,
ERROR = 7,
LOOPBACK = 8,
};
pub const VDS_HPS_UNKNOWN = VDS_HBAPORT_STATUS.UNKNOWN;
pub const VDS_HPS_ONLINE = VDS_HBAPORT_STATUS.ONLINE;
pub const VDS_HPS_OFFLINE = VDS_HBAPORT_STATUS.OFFLINE;
pub const VDS_HPS_BYPASSED = VDS_HBAPORT_STATUS.BYPASSED;
pub const VDS_HPS_DIAGNOSTICS = VDS_HBAPORT_STATUS.DIAGNOSTICS;
pub const VDS_HPS_LINKDOWN = VDS_HBAPORT_STATUS.LINKDOWN;
pub const VDS_HPS_ERROR = VDS_HBAPORT_STATUS.ERROR;
pub const VDS_HPS_LOOPBACK = VDS_HBAPORT_STATUS.LOOPBACK;
pub const VDS_HBAPORT_SPEED_FLAG = enum(i32) {
UNKNOWN = 0,
@"1GBIT" = 1,
@"2GBIT" = 2,
@"10GBIT" = 4,
@"4GBIT" = 8,
NOT_NEGOTIATED = 32768,
};
pub const VDS_HSF_UNKNOWN = VDS_HBAPORT_SPEED_FLAG.UNKNOWN;
pub const VDS_HSF_1GBIT = VDS_HBAPORT_SPEED_FLAG.@"1GBIT";
pub const VDS_HSF_2GBIT = VDS_HBAPORT_SPEED_FLAG.@"2GBIT";
pub const VDS_HSF_10GBIT = VDS_HBAPORT_SPEED_FLAG.@"10GBIT";
pub const VDS_HSF_4GBIT = VDS_HBAPORT_SPEED_FLAG.@"4GBIT";
pub const VDS_HSF_NOT_NEGOTIATED = VDS_HBAPORT_SPEED_FLAG.NOT_NEGOTIATED;
pub const VDS_PATH_STATUS = enum(i32) {
UNKNOWN = 0,
ONLINE = 1,
FAILED = 5,
STANDBY = 7,
};
pub const VDS_MPS_UNKNOWN = VDS_PATH_STATUS.UNKNOWN;
pub const VDS_MPS_ONLINE = VDS_PATH_STATUS.ONLINE;
pub const VDS_MPS_FAILED = VDS_PATH_STATUS.FAILED;
pub const VDS_MPS_STANDBY = VDS_PATH_STATUS.STANDBY;
pub const VDS_LOADBALANCE_POLICY_ENUM = enum(i32) {
UNKNOWN = 0,
FAILOVER = 1,
ROUND_ROBIN = 2,
ROUND_ROBIN_WITH_SUBSET = 3,
DYN_LEAST_QUEUE_DEPTH = 4,
WEIGHTED_PATHS = 5,
LEAST_BLOCKS = 6,
VENDOR_SPECIFIC = 7,
};
pub const VDS_LBP_UNKNOWN = VDS_LOADBALANCE_POLICY_ENUM.UNKNOWN;
pub const VDS_LBP_FAILOVER = VDS_LOADBALANCE_POLICY_ENUM.FAILOVER;
pub const VDS_LBP_ROUND_ROBIN = VDS_LOADBALANCE_POLICY_ENUM.ROUND_ROBIN;
pub const VDS_LBP_ROUND_ROBIN_WITH_SUBSET = VDS_LOADBALANCE_POLICY_ENUM.ROUND_ROBIN_WITH_SUBSET;
pub const VDS_LBP_DYN_LEAST_QUEUE_DEPTH = VDS_LOADBALANCE_POLICY_ENUM.DYN_LEAST_QUEUE_DEPTH;
pub const VDS_LBP_WEIGHTED_PATHS = VDS_LOADBALANCE_POLICY_ENUM.WEIGHTED_PATHS;
pub const VDS_LBP_LEAST_BLOCKS = VDS_LOADBALANCE_POLICY_ENUM.LEAST_BLOCKS;
pub const VDS_LBP_VENDOR_SPECIFIC = VDS_LOADBALANCE_POLICY_ENUM.VENDOR_SPECIFIC;
pub const VDS_PROVIDER_LBSUPPORT_FLAG = enum(i32) {
FAILOVER = 1,
ROUND_ROBIN = 2,
ROUND_ROBIN_WITH_SUBSET = 4,
DYN_LEAST_QUEUE_DEPTH = 8,
WEIGHTED_PATHS = 16,
LEAST_BLOCKS = 32,
VENDOR_SPECIFIC = 64,
};
pub const VDS_LBF_FAILOVER = VDS_PROVIDER_LBSUPPORT_FLAG.FAILOVER;
pub const VDS_LBF_ROUND_ROBIN = VDS_PROVIDER_LBSUPPORT_FLAG.ROUND_ROBIN;
pub const VDS_LBF_ROUND_ROBIN_WITH_SUBSET = VDS_PROVIDER_LBSUPPORT_FLAG.ROUND_ROBIN_WITH_SUBSET;
pub const VDS_LBF_DYN_LEAST_QUEUE_DEPTH = VDS_PROVIDER_LBSUPPORT_FLAG.DYN_LEAST_QUEUE_DEPTH;
pub const VDS_LBF_WEIGHTED_PATHS = VDS_PROVIDER_LBSUPPORT_FLAG.WEIGHTED_PATHS;
pub const VDS_LBF_LEAST_BLOCKS = VDS_PROVIDER_LBSUPPORT_FLAG.LEAST_BLOCKS;
pub const VDS_LBF_VENDOR_SPECIFIC = VDS_PROVIDER_LBSUPPORT_FLAG.VENDOR_SPECIFIC;
pub const VDS_VERSION_SUPPORT_FLAG = enum(i32) {
@"1_0" = 1,
@"1_1" = 2,
@"2_0" = 4,
@"2_1" = 8,
@"3_0" = 16,
};
pub const VDS_VSF_1_0 = VDS_VERSION_SUPPORT_FLAG.@"1_0";
pub const VDS_VSF_1_1 = VDS_VERSION_SUPPORT_FLAG.@"1_1";
pub const VDS_VSF_2_0 = VDS_VERSION_SUPPORT_FLAG.@"2_0";
pub const VDS_VSF_2_1 = VDS_VERSION_SUPPORT_FLAG.@"2_1";
pub const VDS_VSF_3_0 = VDS_VERSION_SUPPORT_FLAG.@"3_0";
pub const VDS_HWPROVIDER_TYPE = enum(i32) {
UNKNOWN = 0,
PCI_RAID = 1,
FIBRE_CHANNEL = 2,
ISCSI = 3,
SAS = 4,
HYBRID = 5,
};
pub const VDS_HWT_UNKNOWN = VDS_HWPROVIDER_TYPE.UNKNOWN;
pub const VDS_HWT_PCI_RAID = VDS_HWPROVIDER_TYPE.PCI_RAID;
pub const VDS_HWT_FIBRE_CHANNEL = VDS_HWPROVIDER_TYPE.FIBRE_CHANNEL;
pub const VDS_HWT_ISCSI = VDS_HWPROVIDER_TYPE.ISCSI;
pub const VDS_HWT_SAS = VDS_HWPROVIDER_TYPE.SAS;
pub const VDS_HWT_HYBRID = VDS_HWPROVIDER_TYPE.HYBRID;
pub const VDS_ISCSI_LOGIN_TYPE = enum(i32) {
MANUAL = 0,
PERSISTENT = 1,
BOOT = 2,
};
pub const VDS_ILT_MANUAL = VDS_ISCSI_LOGIN_TYPE.MANUAL;
pub const VDS_ILT_PERSISTENT = VDS_ISCSI_LOGIN_TYPE.PERSISTENT;
pub const VDS_ILT_BOOT = VDS_ISCSI_LOGIN_TYPE.BOOT;
pub const VDS_ISCSI_AUTH_TYPE = enum(i32) {
NONE = 0,
CHAP = 1,
MUTUAL_CHAP = 2,
};
pub const VDS_IAT_NONE = VDS_ISCSI_AUTH_TYPE.NONE;
pub const VDS_IAT_CHAP = VDS_ISCSI_AUTH_TYPE.CHAP;
pub const VDS_IAT_MUTUAL_CHAP = VDS_ISCSI_AUTH_TYPE.MUTUAL_CHAP;
pub const VDS_ISCSI_IPSEC_FLAG = enum(i32) {
VALID = 1,
IKE = 2,
MAIN_MODE = 4,
AGGRESSIVE_MODE = 8,
PFS_ENABLE = 16,
TRANSPORT_MODE_PREFERRED = 32,
TUNNEL_MODE_PREFERRED = 64,
};
pub const VDS_IIF_VALID = VDS_ISCSI_IPSEC_FLAG.VALID;
pub const VDS_IIF_IKE = VDS_ISCSI_IPSEC_FLAG.IKE;
pub const VDS_IIF_MAIN_MODE = VDS_ISCSI_IPSEC_FLAG.MAIN_MODE;
pub const VDS_IIF_AGGRESSIVE_MODE = VDS_ISCSI_IPSEC_FLAG.AGGRESSIVE_MODE;
pub const VDS_IIF_PFS_ENABLE = VDS_ISCSI_IPSEC_FLAG.PFS_ENABLE;
pub const VDS_IIF_TRANSPORT_MODE_PREFERRED = VDS_ISCSI_IPSEC_FLAG.TRANSPORT_MODE_PREFERRED;
pub const VDS_IIF_TUNNEL_MODE_PREFERRED = VDS_ISCSI_IPSEC_FLAG.TUNNEL_MODE_PREFERRED;
pub const VDS_ISCSI_LOGIN_FLAG = enum(i32) {
REQUIRE_IPSEC = 1,
MULTIPATH_ENABLED = 2,
};
pub const VDS_ILF_REQUIRE_IPSEC = VDS_ISCSI_LOGIN_FLAG.REQUIRE_IPSEC;
pub const VDS_ILF_MULTIPATH_ENABLED = VDS_ISCSI_LOGIN_FLAG.MULTIPATH_ENABLED;
pub const VDS_PATH_ID = extern struct {
ullSourceId: u64,
ullPathId: u64,
};
pub const VDS_WWN = extern struct {
rguchWwn: [8]u8,
};
pub const VDS_IPADDRESS = extern struct {
type: VDS_IPADDRESS_TYPE,
ipv4Address: u32,
ipv6Address: [16]u8,
ulIpv6FlowInfo: u32,
ulIpv6ScopeId: u32,
wszTextAddress: [257]u16,
ulPort: u32,
};
pub const VDS_ISCSI_IPSEC_KEY = extern struct {
pKey: ?*u8,
ulKeySize: u32,
};
pub const VDS_ISCSI_SHARED_SECRET = extern struct {
pSharedSecret: ?*u8,
ulSharedSecretSize: u32,
};
pub const VDS_HBAPORT_PROP = extern struct {
id: Guid,
wwnNode: VDS_WWN,
wwnPort: VDS_WWN,
type: VDS_HBAPORT_TYPE,
status: VDS_HBAPORT_STATUS,
ulPortSpeed: u32,
ulSupportedPortSpeed: u32,
};
pub const VDS_ISCSI_INITIATOR_ADAPTER_PROP = extern struct {
id: Guid,
pwszName: ?PWSTR,
};
pub const VDS_ISCSI_INITIATOR_PORTAL_PROP = extern struct {
id: Guid,
address: VDS_IPADDRESS,
ulPortIndex: u32,
};
pub const VDS_PROVIDER_PROP = extern struct {
id: Guid,
pwszName: ?PWSTR,
guidVersionId: Guid,
pwszVersion: ?PWSTR,
type: VDS_PROVIDER_TYPE,
ulFlags: u32,
ulStripeSizeFlags: u32,
sRebuildPriority: i16,
};
pub const VDS_PATH_INFO = extern struct {
pathId: VDS_PATH_ID,
type: VDS_HWPROVIDER_TYPE,
status: VDS_PATH_STATUS,
Anonymous1: extern union {
controllerPortId: Guid,
targetPortalId: Guid,
},
Anonymous2: extern union {
hbaPortId: Guid,
initiatorAdapterId: Guid,
},
Anonymous3: extern union {
pHbaPortProp: ?*VDS_HBAPORT_PROP,
pInitiatorPortalIpAddr: ?*VDS_IPADDRESS,
},
};
pub const VDS_PATH_POLICY = extern struct {
pathId: VDS_PATH_ID,
bPrimaryPath: BOOL,
ulWeight: u32,
};
// TODO: this type is limited to platform 'windows6.0.6000'
const IID_IEnumVdsObject_Value = Guid.initString("118610b7-8d94-4030-b5b8-500889788e4e");
pub const IID_IEnumVdsObject = &IID_IEnumVdsObject_Value;
pub const IEnumVdsObject = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
Next: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IEnumVdsObject,
celt: u32,
ppObjectArray: [*]?*IUnknown,
pcFetched: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IEnumVdsObject,
celt: u32,
ppObjectArray: [*]?*IUnknown,
pcFetched: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
Skip: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IEnumVdsObject,
celt: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IEnumVdsObject,
celt: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
Reset: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IEnumVdsObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IEnumVdsObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
Clone: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IEnumVdsObject,
ppEnum: ?*?*IEnumVdsObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IEnumVdsObject,
ppEnum: ?*?*IEnumVdsObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IEnumVdsObject_Next(self: *const T, celt: u32, ppObjectArray: [*]?*IUnknown, pcFetched: ?*u32) callconv(.Inline) HRESULT {
return @as(*const IEnumVdsObject.VTable, @ptrCast(self.vtable)).Next(@as(*const IEnumVdsObject, @ptrCast(self)), celt, ppObjectArray, pcFetched);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IEnumVdsObject_Skip(self: *const T, celt: u32) callconv(.Inline) HRESULT {
return @as(*const IEnumVdsObject.VTable, @ptrCast(self.vtable)).Skip(@as(*const IEnumVdsObject, @ptrCast(self)), celt);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IEnumVdsObject_Reset(self: *const T) callconv(.Inline) HRESULT {
return @as(*const IEnumVdsObject.VTable, @ptrCast(self.vtable)).Reset(@as(*const IEnumVdsObject, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IEnumVdsObject_Clone(self: *const T, ppEnum: ?*?*IEnumVdsObject) callconv(.Inline) HRESULT {
return @as(*const IEnumVdsObject.VTable, @ptrCast(self.vtable)).Clone(@as(*const IEnumVdsObject, @ptrCast(self)), ppEnum);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.0.6000'
const IID_IVdsAsync_Value = Guid.initString("d5d23b6d-5a55-4492-9889-397a3c2d2dbc");
pub const IID_IVdsAsync = &IID_IVdsAsync_Value;
pub const IVdsAsync = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
Cancel: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsAsync,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsAsync,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
Wait: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsAsync,
pHrResult: ?*HRESULT,
pAsyncOut: ?*VDS_ASYNC_OUTPUT,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsAsync,
pHrResult: ?*HRESULT,
pAsyncOut: ?*VDS_ASYNC_OUTPUT,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
QueryStatus: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsAsync,
pHrResult: ?*HRESULT,
pulPercentCompleted: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsAsync,
pHrResult: ?*HRESULT,
pulPercentCompleted: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsAsync_Cancel(self: *const T) callconv(.Inline) HRESULT {
return @as(*const IVdsAsync.VTable, @ptrCast(self.vtable)).Cancel(@as(*const IVdsAsync, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsAsync_Wait(self: *const T, pHrResult: ?*HRESULT, pAsyncOut: ?*VDS_ASYNC_OUTPUT) callconv(.Inline) HRESULT {
return @as(*const IVdsAsync.VTable, @ptrCast(self.vtable)).Wait(@as(*const IVdsAsync, @ptrCast(self)), pHrResult, pAsyncOut);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsAsync_QueryStatus(self: *const T, pHrResult: ?*HRESULT, pulPercentCompleted: ?*u32) callconv(.Inline) HRESULT {
return @as(*const IVdsAsync.VTable, @ptrCast(self.vtable)).QueryStatus(@as(*const IVdsAsync, @ptrCast(self)), pHrResult, pulPercentCompleted);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.0.6000'
const IID_IVdsAdviseSink_Value = Guid.initString("8326cd1d-cf59-4936-b786-5efc08798e25");
pub const IID_IVdsAdviseSink = &IID_IVdsAdviseSink_Value;
pub const IVdsAdviseSink = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
OnNotify: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsAdviseSink,
lNumberOfNotifications: i32,
pNotificationArray: [*]VDS_NOTIFICATION,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsAdviseSink,
lNumberOfNotifications: i32,
pNotificationArray: [*]VDS_NOTIFICATION,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsAdviseSink_OnNotify(self: *const T, lNumberOfNotifications: i32, pNotificationArray: [*]VDS_NOTIFICATION) callconv(.Inline) HRESULT {
return @as(*const IVdsAdviseSink.VTable, @ptrCast(self.vtable)).OnNotify(@as(*const IVdsAdviseSink, @ptrCast(self)), lNumberOfNotifications, pNotificationArray);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.0.6000'
const IID_IVdsProvider_Value = Guid.initString("10c5e575-7984-4e81-a56b-431f5f92ae42");
pub const IID_IVdsProvider = &IID_IVdsProvider_Value;
pub const IVdsProvider = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
GetProperties: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsProvider,
pProviderProp: ?*VDS_PROVIDER_PROP,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsProvider,
pProviderProp: ?*VDS_PROVIDER_PROP,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsProvider_GetProperties(self: *const T, pProviderProp: ?*VDS_PROVIDER_PROP) callconv(.Inline) HRESULT {
return @as(*const IVdsProvider.VTable, @ptrCast(self.vtable)).GetProperties(@as(*const IVdsProvider, @ptrCast(self)), pProviderProp);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.0.6000'
const IID_IVdsProviderSupport_Value = Guid.initString("1732be13-e8f9-4a03-bfbc-5f616aa66ce1");
pub const IID_IVdsProviderSupport = &IID_IVdsProviderSupport_Value;
pub const IVdsProviderSupport = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
GetVersionSupport: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsProviderSupport,
ulVersionSupport: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsProviderSupport,
ulVersionSupport: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsProviderSupport_GetVersionSupport(self: *const T, ulVersionSupport: ?*u32) callconv(.Inline) HRESULT {
return @as(*const IVdsProviderSupport.VTable, @ptrCast(self.vtable)).GetVersionSupport(@as(*const IVdsProviderSupport, @ptrCast(self)), ulVersionSupport);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.0.6000'
const IID_IVdsProviderPrivate_Value = Guid.initString("11f3cd41-b7e8-48ff-9472-9dff018aa292");
pub const IID_IVdsProviderPrivate = &IID_IVdsProviderPrivate_Value;
pub const IVdsProviderPrivate = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
GetObject: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsProviderPrivate,
ObjectId: Guid,
type: VDS_OBJECT_TYPE,
ppObjectUnk: ?*?*IUnknown,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsProviderPrivate,
ObjectId: Guid,
type: VDS_OBJECT_TYPE,
ppObjectUnk: ?*?*IUnknown,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
OnLoad: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsProviderPrivate,
pwszMachineName: ?PWSTR,
pCallbackObject: ?*IUnknown,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsProviderPrivate,
pwszMachineName: ?PWSTR,
pCallbackObject: ?*IUnknown,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
OnUnload: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsProviderPrivate,
bForceUnload: BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsProviderPrivate,
bForceUnload: BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsProviderPrivate_GetObject(self: *const T, ObjectId: Guid, type_: VDS_OBJECT_TYPE, ppObjectUnk: ?*?*IUnknown) callconv(.Inline) HRESULT {
return @as(*const IVdsProviderPrivate.VTable, @ptrCast(self.vtable)).GetObject(@as(*const IVdsProviderPrivate, @ptrCast(self)), ObjectId, type_, ppObjectUnk);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsProviderPrivate_OnLoad(self: *const T, pwszMachineName: ?PWSTR, pCallbackObject: ?*IUnknown) callconv(.Inline) HRESULT {
return @as(*const IVdsProviderPrivate.VTable, @ptrCast(self.vtable)).OnLoad(@as(*const IVdsProviderPrivate, @ptrCast(self)), pwszMachineName, pCallbackObject);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsProviderPrivate_OnUnload(self: *const T, bForceUnload: BOOL) callconv(.Inline) HRESULT {
return @as(*const IVdsProviderPrivate.VTable, @ptrCast(self.vtable)).OnUnload(@as(*const IVdsProviderPrivate, @ptrCast(self)), bForceUnload);
}
};}
pub usingnamespace MethodMixin(@This());
};
pub const VDS_SUB_SYSTEM_STATUS = enum(i32) {
UNKNOWN = 0,
ONLINE = 1,
NOT_READY = 2,
OFFLINE = 4,
FAILED = 5,
PARTIALLY_MANAGED = 9,
};
pub const VDS_SSS_UNKNOWN = VDS_SUB_SYSTEM_STATUS.UNKNOWN;
pub const VDS_SSS_ONLINE = VDS_SUB_SYSTEM_STATUS.ONLINE;
pub const VDS_SSS_NOT_READY = VDS_SUB_SYSTEM_STATUS.NOT_READY;
pub const VDS_SSS_OFFLINE = VDS_SUB_SYSTEM_STATUS.OFFLINE;
pub const VDS_SSS_FAILED = VDS_SUB_SYSTEM_STATUS.FAILED;
pub const VDS_SSS_PARTIALLY_MANAGED = VDS_SUB_SYSTEM_STATUS.PARTIALLY_MANAGED;
pub const VDS_SUB_SYSTEM_FLAG = enum(i32) {
LUN_MASKING_CAPABLE = 1,
LUN_PLEXING_CAPABLE = 2,
LUN_REMAPPING_CAPABLE = 4,
DRIVE_EXTENT_CAPABLE = 8,
HARDWARE_CHECKSUM_CAPABLE = 16,
RADIUS_CAPABLE = 32,
READ_BACK_VERIFY_CAPABLE = 64,
WRITE_THROUGH_CACHING_CAPABLE = 128,
SUPPORTS_FAULT_TOLERANT_LUNS = 512,
SUPPORTS_NON_FAULT_TOLERANT_LUNS = 1024,
SUPPORTS_SIMPLE_LUNS = 2048,
SUPPORTS_SPAN_LUNS = 4096,
SUPPORTS_STRIPE_LUNS = 8192,
SUPPORTS_MIRROR_LUNS = 16384,
SUPPORTS_PARITY_LUNS = 32768,
SUPPORTS_AUTH_CHAP = 65536,
SUPPORTS_AUTH_MUTUAL_CHAP = 131072,
SUPPORTS_SIMPLE_TARGET_CONFIG = 262144,
SUPPORTS_LUN_NUMBER = 524288,
SUPPORTS_MIRRORED_CACHE = 1048576,
READ_CACHING_CAPABLE = 2097152,
WRITE_CACHING_CAPABLE = 4194304,
MEDIA_SCAN_CAPABLE = 8388608,
CONSISTENCY_CHECK_CAPABLE = 16777216,
};
pub const VDS_SF_LUN_MASKING_CAPABLE = VDS_SUB_SYSTEM_FLAG.LUN_MASKING_CAPABLE;
pub const VDS_SF_LUN_PLEXING_CAPABLE = VDS_SUB_SYSTEM_FLAG.LUN_PLEXING_CAPABLE;
pub const VDS_SF_LUN_REMAPPING_CAPABLE = VDS_SUB_SYSTEM_FLAG.LUN_REMAPPING_CAPABLE;
pub const VDS_SF_DRIVE_EXTENT_CAPABLE = VDS_SUB_SYSTEM_FLAG.DRIVE_EXTENT_CAPABLE;
pub const VDS_SF_HARDWARE_CHECKSUM_CAPABLE = VDS_SUB_SYSTEM_FLAG.HARDWARE_CHECKSUM_CAPABLE;
pub const VDS_SF_RADIUS_CAPABLE = VDS_SUB_SYSTEM_FLAG.RADIUS_CAPABLE;
pub const VDS_SF_READ_BACK_VERIFY_CAPABLE = VDS_SUB_SYSTEM_FLAG.READ_BACK_VERIFY_CAPABLE;
pub const VDS_SF_WRITE_THROUGH_CACHING_CAPABLE = VDS_SUB_SYSTEM_FLAG.WRITE_THROUGH_CACHING_CAPABLE;
pub const VDS_SF_SUPPORTS_FAULT_TOLERANT_LUNS = VDS_SUB_SYSTEM_FLAG.SUPPORTS_FAULT_TOLERANT_LUNS;
pub const VDS_SF_SUPPORTS_NON_FAULT_TOLERANT_LUNS = VDS_SUB_SYSTEM_FLAG.SUPPORTS_NON_FAULT_TOLERANT_LUNS;
pub const VDS_SF_SUPPORTS_SIMPLE_LUNS = VDS_SUB_SYSTEM_FLAG.SUPPORTS_SIMPLE_LUNS;
pub const VDS_SF_SUPPORTS_SPAN_LUNS = VDS_SUB_SYSTEM_FLAG.SUPPORTS_SPAN_LUNS;
pub const VDS_SF_SUPPORTS_STRIPE_LUNS = VDS_SUB_SYSTEM_FLAG.SUPPORTS_STRIPE_LUNS;
pub const VDS_SF_SUPPORTS_MIRROR_LUNS = VDS_SUB_SYSTEM_FLAG.SUPPORTS_MIRROR_LUNS;
pub const VDS_SF_SUPPORTS_PARITY_LUNS = VDS_SUB_SYSTEM_FLAG.SUPPORTS_PARITY_LUNS;
pub const VDS_SF_SUPPORTS_AUTH_CHAP = VDS_SUB_SYSTEM_FLAG.SUPPORTS_AUTH_CHAP;
pub const VDS_SF_SUPPORTS_AUTH_MUTUAL_CHAP = VDS_SUB_SYSTEM_FLAG.SUPPORTS_AUTH_MUTUAL_CHAP;
pub const VDS_SF_SUPPORTS_SIMPLE_TARGET_CONFIG = VDS_SUB_SYSTEM_FLAG.SUPPORTS_SIMPLE_TARGET_CONFIG;
pub const VDS_SF_SUPPORTS_LUN_NUMBER = VDS_SUB_SYSTEM_FLAG.SUPPORTS_LUN_NUMBER;
pub const VDS_SF_SUPPORTS_MIRRORED_CACHE = VDS_SUB_SYSTEM_FLAG.SUPPORTS_MIRRORED_CACHE;
pub const VDS_SF_READ_CACHING_CAPABLE = VDS_SUB_SYSTEM_FLAG.READ_CACHING_CAPABLE;
pub const VDS_SF_WRITE_CACHING_CAPABLE = VDS_SUB_SYSTEM_FLAG.WRITE_CACHING_CAPABLE;
pub const VDS_SF_MEDIA_SCAN_CAPABLE = VDS_SUB_SYSTEM_FLAG.MEDIA_SCAN_CAPABLE;
pub const VDS_SF_CONSISTENCY_CHECK_CAPABLE = VDS_SUB_SYSTEM_FLAG.CONSISTENCY_CHECK_CAPABLE;
pub const VDS_SUB_SYSTEM_SUPPORTED_RAID_TYPE_FLAG = enum(i32) {
@"2_LUNS" = 1,
@"3_LUNS" = 2,
@"4_LUNS" = 4,
@"5_LUNS" = 8,
@"6_LUNS" = 16,
@"01_LUNS" = 32,
@"03_LUNS" = 64,
@"05_LUNS" = 128,
@"10_LUNS" = 256,
@"15_LUNS" = 512,
@"30_LUNS" = 1024,
@"50_LUNS" = 2048,
@"51_LUNS" = 4096,
@"53_LUNS" = 8192,
@"60_LUNS" = 16384,
@"61_LUNS" = 32768,
};
pub const VDS_SF_SUPPORTS_RAID2_LUNS = VDS_SUB_SYSTEM_SUPPORTED_RAID_TYPE_FLAG.@"2_LUNS";
pub const VDS_SF_SUPPORTS_RAID3_LUNS = VDS_SUB_SYSTEM_SUPPORTED_RAID_TYPE_FLAG.@"3_LUNS";
pub const VDS_SF_SUPPORTS_RAID4_LUNS = VDS_SUB_SYSTEM_SUPPORTED_RAID_TYPE_FLAG.@"4_LUNS";
pub const VDS_SF_SUPPORTS_RAID5_LUNS = VDS_SUB_SYSTEM_SUPPORTED_RAID_TYPE_FLAG.@"5_LUNS";
pub const VDS_SF_SUPPORTS_RAID6_LUNS = VDS_SUB_SYSTEM_SUPPORTED_RAID_TYPE_FLAG.@"6_LUNS";
pub const VDS_SF_SUPPORTS_RAID01_LUNS = VDS_SUB_SYSTEM_SUPPORTED_RAID_TYPE_FLAG.@"01_LUNS";
pub const VDS_SF_SUPPORTS_RAID03_LUNS = VDS_SUB_SYSTEM_SUPPORTED_RAID_TYPE_FLAG.@"03_LUNS";
pub const VDS_SF_SUPPORTS_RAID05_LUNS = VDS_SUB_SYSTEM_SUPPORTED_RAID_TYPE_FLAG.@"05_LUNS";
pub const VDS_SF_SUPPORTS_RAID10_LUNS = VDS_SUB_SYSTEM_SUPPORTED_RAID_TYPE_FLAG.@"10_LUNS";
pub const VDS_SF_SUPPORTS_RAID15_LUNS = VDS_SUB_SYSTEM_SUPPORTED_RAID_TYPE_FLAG.@"15_LUNS";
pub const VDS_SF_SUPPORTS_RAID30_LUNS = VDS_SUB_SYSTEM_SUPPORTED_RAID_TYPE_FLAG.@"30_LUNS";
pub const VDS_SF_SUPPORTS_RAID50_LUNS = VDS_SUB_SYSTEM_SUPPORTED_RAID_TYPE_FLAG.@"50_LUNS";
pub const VDS_SF_SUPPORTS_RAID51_LUNS = VDS_SUB_SYSTEM_SUPPORTED_RAID_TYPE_FLAG.@"51_LUNS";
pub const VDS_SF_SUPPORTS_RAID53_LUNS = VDS_SUB_SYSTEM_SUPPORTED_RAID_TYPE_FLAG.@"53_LUNS";
pub const VDS_SF_SUPPORTS_RAID60_LUNS = VDS_SUB_SYSTEM_SUPPORTED_RAID_TYPE_FLAG.@"60_LUNS";
pub const VDS_SF_SUPPORTS_RAID61_LUNS = VDS_SUB_SYSTEM_SUPPORTED_RAID_TYPE_FLAG.@"61_LUNS";
pub const VDS_INTERCONNECT_FLAG = enum(i32) {
PCI_RAID = 1,
FIBRE_CHANNEL = 2,
ISCSI = 4,
SAS = 8,
};
pub const VDS_ITF_PCI_RAID = VDS_INTERCONNECT_FLAG.PCI_RAID;
pub const VDS_ITF_FIBRE_CHANNEL = VDS_INTERCONNECT_FLAG.FIBRE_CHANNEL;
pub const VDS_ITF_ISCSI = VDS_INTERCONNECT_FLAG.ISCSI;
pub const VDS_ITF_SAS = VDS_INTERCONNECT_FLAG.SAS;
pub const VDS_CONTROLLER_STATUS = enum(i32) {
UNKNOWN = 0,
ONLINE = 1,
NOT_READY = 2,
OFFLINE = 4,
FAILED = 5,
REMOVED = 8,
};
pub const VDS_CS_UNKNOWN = VDS_CONTROLLER_STATUS.UNKNOWN;
pub const VDS_CS_ONLINE = VDS_CONTROLLER_STATUS.ONLINE;
pub const VDS_CS_NOT_READY = VDS_CONTROLLER_STATUS.NOT_READY;
pub const VDS_CS_OFFLINE = VDS_CONTROLLER_STATUS.OFFLINE;
pub const VDS_CS_FAILED = VDS_CONTROLLER_STATUS.FAILED;
pub const VDS_CS_REMOVED = VDS_CONTROLLER_STATUS.REMOVED;
pub const VDS_PORT_STATUS = enum(i32) {
UNKNOWN = 0,
ONLINE = 1,
NOT_READY = 2,
OFFLINE = 4,
FAILED = 5,
REMOVED = 8,
};
pub const VDS_PRS_UNKNOWN = VDS_PORT_STATUS.UNKNOWN;
pub const VDS_PRS_ONLINE = VDS_PORT_STATUS.ONLINE;
pub const VDS_PRS_NOT_READY = VDS_PORT_STATUS.NOT_READY;
pub const VDS_PRS_OFFLINE = VDS_PORT_STATUS.OFFLINE;
pub const VDS_PRS_FAILED = VDS_PORT_STATUS.FAILED;
pub const VDS_PRS_REMOVED = VDS_PORT_STATUS.REMOVED;
pub const VDS_DRIVE_STATUS = enum(i32) {
UNKNOWN = 0,
ONLINE = 1,
NOT_READY = 2,
OFFLINE = 4,
FAILED = 5,
REMOVED = 8,
};
pub const VDS_DRS_UNKNOWN = VDS_DRIVE_STATUS.UNKNOWN;
pub const VDS_DRS_ONLINE = VDS_DRIVE_STATUS.ONLINE;
pub const VDS_DRS_NOT_READY = VDS_DRIVE_STATUS.NOT_READY;
pub const VDS_DRS_OFFLINE = VDS_DRIVE_STATUS.OFFLINE;
pub const VDS_DRS_FAILED = VDS_DRIVE_STATUS.FAILED;
pub const VDS_DRS_REMOVED = VDS_DRIVE_STATUS.REMOVED;
pub const VDS_DRIVE_FLAG = enum(i32) {
HOTSPARE = 1,
ASSIGNED = 2,
UNASSIGNED = 4,
HOTSPARE_IN_USE = 8,
HOTSPARE_STANDBY = 16,
};
pub const VDS_DRF_HOTSPARE = VDS_DRIVE_FLAG.HOTSPARE;
pub const VDS_DRF_ASSIGNED = VDS_DRIVE_FLAG.ASSIGNED;
pub const VDS_DRF_UNASSIGNED = VDS_DRIVE_FLAG.UNASSIGNED;
pub const VDS_DRF_HOTSPARE_IN_USE = VDS_DRIVE_FLAG.HOTSPARE_IN_USE;
pub const VDS_DRF_HOTSPARE_STANDBY = VDS_DRIVE_FLAG.HOTSPARE_STANDBY;
pub const VDS_LUN_TYPE = enum(i32) {
UNKNOWN = 0,
DEFAULT = 1,
FAULT_TOLERANT = 2,
NON_FAULT_TOLERANT = 3,
SIMPLE = 10,
SPAN = 11,
STRIPE = 12,
MIRROR = 13,
PARITY = 14,
RAID2 = 15,
RAID3 = 16,
RAID4 = 17,
RAID5 = 18,
RAID6 = 19,
RAID01 = 20,
RAID03 = 21,
RAID05 = 22,
RAID10 = 23,
RAID15 = 24,
RAID30 = 25,
RAID50 = 26,
RAID51 = 27,
RAID53 = 28,
RAID60 = 29,
RAID61 = 30,
};
pub const VDS_LT_UNKNOWN = VDS_LUN_TYPE.UNKNOWN;
pub const VDS_LT_DEFAULT = VDS_LUN_TYPE.DEFAULT;
pub const VDS_LT_FAULT_TOLERANT = VDS_LUN_TYPE.FAULT_TOLERANT;
pub const VDS_LT_NON_FAULT_TOLERANT = VDS_LUN_TYPE.NON_FAULT_TOLERANT;
pub const VDS_LT_SIMPLE = VDS_LUN_TYPE.SIMPLE;
pub const VDS_LT_SPAN = VDS_LUN_TYPE.SPAN;
pub const VDS_LT_STRIPE = VDS_LUN_TYPE.STRIPE;
pub const VDS_LT_MIRROR = VDS_LUN_TYPE.MIRROR;
pub const VDS_LT_PARITY = VDS_LUN_TYPE.PARITY;
pub const VDS_LT_RAID2 = VDS_LUN_TYPE.RAID2;
pub const VDS_LT_RAID3 = VDS_LUN_TYPE.RAID3;
pub const VDS_LT_RAID4 = VDS_LUN_TYPE.RAID4;
pub const VDS_LT_RAID5 = VDS_LUN_TYPE.RAID5;
pub const VDS_LT_RAID6 = VDS_LUN_TYPE.RAID6;
pub const VDS_LT_RAID01 = VDS_LUN_TYPE.RAID01;
pub const VDS_LT_RAID03 = VDS_LUN_TYPE.RAID03;
pub const VDS_LT_RAID05 = VDS_LUN_TYPE.RAID05;
pub const VDS_LT_RAID10 = VDS_LUN_TYPE.RAID10;
pub const VDS_LT_RAID15 = VDS_LUN_TYPE.RAID15;
pub const VDS_LT_RAID30 = VDS_LUN_TYPE.RAID30;
pub const VDS_LT_RAID50 = VDS_LUN_TYPE.RAID50;
pub const VDS_LT_RAID51 = VDS_LUN_TYPE.RAID51;
pub const VDS_LT_RAID53 = VDS_LUN_TYPE.RAID53;
pub const VDS_LT_RAID60 = VDS_LUN_TYPE.RAID60;
pub const VDS_LT_RAID61 = VDS_LUN_TYPE.RAID61;
pub const VDS_LUN_STATUS = enum(i32) {
UNKNOWN = 0,
ONLINE = 1,
NOT_READY = 2,
OFFLINE = 4,
FAILED = 5,
};
pub const VDS_LS_UNKNOWN = VDS_LUN_STATUS.UNKNOWN;
pub const VDS_LS_ONLINE = VDS_LUN_STATUS.ONLINE;
pub const VDS_LS_NOT_READY = VDS_LUN_STATUS.NOT_READY;
pub const VDS_LS_OFFLINE = VDS_LUN_STATUS.OFFLINE;
pub const VDS_LS_FAILED = VDS_LUN_STATUS.FAILED;
pub const VDS_LUN_FLAG = enum(i32) {
LBN_REMAP_ENABLED = 1,
READ_BACK_VERIFY_ENABLED = 2,
WRITE_THROUGH_CACHING_ENABLED = 4,
HARDWARE_CHECKSUM_ENABLED = 8,
READ_CACHE_ENABLED = 16,
WRITE_CACHE_ENABLED = 32,
MEDIA_SCAN_ENABLED = 64,
CONSISTENCY_CHECK_ENABLED = 128,
SNAPSHOT = 256,
};
pub const VDS_LF_LBN_REMAP_ENABLED = VDS_LUN_FLAG.LBN_REMAP_ENABLED;
pub const VDS_LF_READ_BACK_VERIFY_ENABLED = VDS_LUN_FLAG.READ_BACK_VERIFY_ENABLED;
pub const VDS_LF_WRITE_THROUGH_CACHING_ENABLED = VDS_LUN_FLAG.WRITE_THROUGH_CACHING_ENABLED;
pub const VDS_LF_HARDWARE_CHECKSUM_ENABLED = VDS_LUN_FLAG.HARDWARE_CHECKSUM_ENABLED;
pub const VDS_LF_READ_CACHE_ENABLED = VDS_LUN_FLAG.READ_CACHE_ENABLED;
pub const VDS_LF_WRITE_CACHE_ENABLED = VDS_LUN_FLAG.WRITE_CACHE_ENABLED;
pub const VDS_LF_MEDIA_SCAN_ENABLED = VDS_LUN_FLAG.MEDIA_SCAN_ENABLED;
pub const VDS_LF_CONSISTENCY_CHECK_ENABLED = VDS_LUN_FLAG.CONSISTENCY_CHECK_ENABLED;
pub const VDS_LF_SNAPSHOT = VDS_LUN_FLAG.SNAPSHOT;
pub const VDS_LUN_PLEX_TYPE = enum(i32) {
UNKNOWN = 0,
SIMPLE = 10,
SPAN = 11,
STRIPE = 12,
PARITY = 14,
RAID2 = 15,
RAID3 = 16,
RAID4 = 17,
RAID5 = 18,
RAID6 = 19,
RAID03 = 21,
RAID05 = 22,
RAID10 = 23,
RAID15 = 24,
RAID30 = 25,
RAID50 = 26,
RAID53 = 28,
RAID60 = 29,
};
pub const VDS_LPT_UNKNOWN = VDS_LUN_PLEX_TYPE.UNKNOWN;
pub const VDS_LPT_SIMPLE = VDS_LUN_PLEX_TYPE.SIMPLE;
pub const VDS_LPT_SPAN = VDS_LUN_PLEX_TYPE.SPAN;
pub const VDS_LPT_STRIPE = VDS_LUN_PLEX_TYPE.STRIPE;
pub const VDS_LPT_PARITY = VDS_LUN_PLEX_TYPE.PARITY;
pub const VDS_LPT_RAID2 = VDS_LUN_PLEX_TYPE.RAID2;
pub const VDS_LPT_RAID3 = VDS_LUN_PLEX_TYPE.RAID3;
pub const VDS_LPT_RAID4 = VDS_LUN_PLEX_TYPE.RAID4;
pub const VDS_LPT_RAID5 = VDS_LUN_PLEX_TYPE.RAID5;
pub const VDS_LPT_RAID6 = VDS_LUN_PLEX_TYPE.RAID6;
pub const VDS_LPT_RAID03 = VDS_LUN_PLEX_TYPE.RAID03;
pub const VDS_LPT_RAID05 = VDS_LUN_PLEX_TYPE.RAID05;
pub const VDS_LPT_RAID10 = VDS_LUN_PLEX_TYPE.RAID10;
pub const VDS_LPT_RAID15 = VDS_LUN_PLEX_TYPE.RAID15;
pub const VDS_LPT_RAID30 = VDS_LUN_PLEX_TYPE.RAID30;
pub const VDS_LPT_RAID50 = VDS_LUN_PLEX_TYPE.RAID50;
pub const VDS_LPT_RAID53 = VDS_LUN_PLEX_TYPE.RAID53;
pub const VDS_LPT_RAID60 = VDS_LUN_PLEX_TYPE.RAID60;
pub const VDS_LUN_PLEX_STATUS = enum(i32) {
UNKNOWN = 0,
ONLINE = 1,
NOT_READY = 2,
OFFLINE = 4,
FAILED = 5,
};
pub const VDS_LPS_UNKNOWN = VDS_LUN_PLEX_STATUS.UNKNOWN;
pub const VDS_LPS_ONLINE = VDS_LUN_PLEX_STATUS.ONLINE;
pub const VDS_LPS_NOT_READY = VDS_LUN_PLEX_STATUS.NOT_READY;
pub const VDS_LPS_OFFLINE = VDS_LUN_PLEX_STATUS.OFFLINE;
pub const VDS_LPS_FAILED = VDS_LUN_PLEX_STATUS.FAILED;
pub const VDS_LUN_PLEX_FLAG = enum(i32) {
D = 1,
};
pub const VDS_LPF_LBN_REMAP_ENABLED = VDS_LUN_PLEX_FLAG.D;
pub const VDS_ISCSI_PORTAL_STATUS = enum(i32) {
UNKNOWN = 0,
ONLINE = 1,
NOT_READY = 2,
OFFLINE = 4,
FAILED = 5,
};
pub const VDS_IPS_UNKNOWN = VDS_ISCSI_PORTAL_STATUS.UNKNOWN;
pub const VDS_IPS_ONLINE = VDS_ISCSI_PORTAL_STATUS.ONLINE;
pub const VDS_IPS_NOT_READY = VDS_ISCSI_PORTAL_STATUS.NOT_READY;
pub const VDS_IPS_OFFLINE = VDS_ISCSI_PORTAL_STATUS.OFFLINE;
pub const VDS_IPS_FAILED = VDS_ISCSI_PORTAL_STATUS.FAILED;
pub const VDS_STORAGE_POOL_STATUS = enum(i32) {
UNKNOWN = 0,
ONLINE = 1,
NOT_READY = 2,
OFFLINE = 4,
};
pub const VDS_SPS_UNKNOWN = VDS_STORAGE_POOL_STATUS.UNKNOWN;
pub const VDS_SPS_ONLINE = VDS_STORAGE_POOL_STATUS.ONLINE;
pub const VDS_SPS_NOT_READY = VDS_STORAGE_POOL_STATUS.NOT_READY;
pub const VDS_SPS_OFFLINE = VDS_STORAGE_POOL_STATUS.OFFLINE;
pub const VDS_STORAGE_POOL_TYPE = enum(i32) {
UNKNOWN = 0,
PRIMORDIAL = 1,
CONCRETE = 2,
};
pub const VDS_SPT_UNKNOWN = VDS_STORAGE_POOL_TYPE.UNKNOWN;
pub const VDS_SPT_PRIMORDIAL = VDS_STORAGE_POOL_TYPE.PRIMORDIAL;
pub const VDS_SPT_CONCRETE = VDS_STORAGE_POOL_TYPE.CONCRETE;
pub const VDS_MAINTENANCE_OPERATION = enum(i32) {
BlinkLight = 1,
BeepAlarm = 2,
SpinDown = 3,
SpinUp = 4,
Ping = 5,
};
pub const BlinkLight = VDS_MAINTENANCE_OPERATION.BlinkLight;
pub const BeepAlarm = VDS_MAINTENANCE_OPERATION.BeepAlarm;
pub const SpinDown = VDS_MAINTENANCE_OPERATION.SpinDown;
pub const SpinUp = VDS_MAINTENANCE_OPERATION.SpinUp;
pub const Ping = VDS_MAINTENANCE_OPERATION.Ping;
pub const VDS_HINTS = extern struct {
ullHintMask: u64,
ullExpectedMaximumSize: u64,
ulOptimalReadSize: u32,
ulOptimalReadAlignment: u32,
ulOptimalWriteSize: u32,
ulOptimalWriteAlignment: u32,
ulMaximumDriveCount: u32,
ulStripeSize: u32,
bFastCrashRecoveryRequired: BOOL,
bMostlyReads: BOOL,
bOptimizeForSequentialReads: BOOL,
bOptimizeForSequentialWrites: BOOL,
bRemapEnabled: BOOL,
bReadBackVerifyEnabled: BOOL,
bWriteThroughCachingEnabled: BOOL,
bHardwareChecksumEnabled: BOOL,
bIsYankable: BOOL,
sRebuildPriority: i16,
};
pub const VDS_HINTS2 = extern struct {
ullHintMask: u64,
ullExpectedMaximumSize: u64,
ulOptimalReadSize: u32,
ulOptimalReadAlignment: u32,
ulOptimalWriteSize: u32,
ulOptimalWriteAlignment: u32,
ulMaximumDriveCount: u32,
ulStripeSize: u32,
ulReserved1: u32,
ulReserved2: u32,
ulReserved3: u32,
bFastCrashRecoveryRequired: BOOL,
bMostlyReads: BOOL,
bOptimizeForSequentialReads: BOOL,
bOptimizeForSequentialWrites: BOOL,
bRemapEnabled: BOOL,
bReadBackVerifyEnabled: BOOL,
bWriteThroughCachingEnabled: BOOL,
bHardwareChecksumEnabled: BOOL,
bIsYankable: BOOL,
bAllocateHotSpare: BOOL,
bUseMirroredCache: BOOL,
bReadCachingEnabled: BOOL,
bWriteCachingEnabled: BOOL,
bMediaScanEnabled: BOOL,
bConsistencyCheckEnabled: BOOL,
BusType: VDS_STORAGE_BUS_TYPE,
bReserved1: BOOL,
bReserved2: BOOL,
bReserved3: BOOL,
sRebuildPriority: i16,
};
pub const VDS_SUB_SYSTEM_PROP = extern struct {
id: Guid,
pwszFriendlyName: ?PWSTR,
pwszIdentification: ?PWSTR,
ulFlags: u32,
ulStripeSizeFlags: u32,
status: VDS_SUB_SYSTEM_STATUS,
health: VDS_HEALTH,
sNumberOfInternalBuses: i16,
sMaxNumberOfSlotsEachBus: i16,
sMaxNumberOfControllers: i16,
sRebuildPriority: i16,
};
pub const VDS_SUB_SYSTEM_PROP2 = extern struct {
id: Guid,
pwszFriendlyName: ?PWSTR,
pwszIdentification: ?PWSTR,
ulFlags: u32,
ulStripeSizeFlags: u32,
ulSupportedRaidTypeFlags: u32,
status: VDS_SUB_SYSTEM_STATUS,
health: VDS_HEALTH,
sNumberOfInternalBuses: i16,
sMaxNumberOfSlotsEachBus: i16,
sMaxNumberOfControllers: i16,
sRebuildPriority: i16,
ulNumberOfEnclosures: u32,
};
pub const VDS_CONTROLLER_PROP = extern struct {
id: Guid,
pwszFriendlyName: ?PWSTR,
pwszIdentification: ?PWSTR,
status: VDS_CONTROLLER_STATUS,
health: VDS_HEALTH,
sNumberOfPorts: i16,
};
pub const VDS_DRIVE_PROP = extern struct {
id: Guid,
ullSize: u64,
pwszFriendlyName: ?PWSTR,
pwszIdentification: ?PWSTR,
ulFlags: u32,
status: VDS_DRIVE_STATUS,
health: VDS_HEALTH,
sInternalBusNumber: i16,
sSlotNumber: i16,
};
pub const VDS_DRIVE_PROP2 = extern struct {
id: Guid,
ullSize: u64,
pwszFriendlyName: ?PWSTR,
pwszIdentification: ?PWSTR,
ulFlags: u32,
status: VDS_DRIVE_STATUS,
health: VDS_HEALTH,
sInternalBusNumber: i16,
sSlotNumber: i16,
ulEnclosureNumber: u32,
busType: VDS_STORAGE_BUS_TYPE,
ulSpindleSpeed: u32,
};
pub const VDS_DRIVE_EXTENT = extern struct {
id: Guid,
LunId: Guid,
ullSize: u64,
bUsed: BOOL,
};
pub const VDS_LUN_PROP = extern struct {
id: Guid,
ullSize: u64,
pwszFriendlyName: ?PWSTR,
pwszIdentification: ?PWSTR,
pwszUnmaskingList: ?PWSTR,
ulFlags: u32,
type: VDS_LUN_TYPE,
status: VDS_LUN_STATUS,
health: VDS_HEALTH,
TransitionState: VDS_TRANSITION_STATE,
sRebuildPriority: i16,
};
pub const VDS_LUN_PLEX_PROP = extern struct {
id: Guid,
ullSize: u64,
type: VDS_LUN_PLEX_TYPE,
status: VDS_LUN_PLEX_STATUS,
health: VDS_HEALTH,
TransitionState: VDS_TRANSITION_STATE,
ulFlags: u32,
ulStripeSize: u32,
sRebuildPriority: i16,
};
pub const VDS_PORT_PROP = extern struct {
id: Guid,
pwszFriendlyName: ?PWSTR,
pwszIdentification: ?PWSTR,
status: VDS_PORT_STATUS,
};
pub const VDS_ISCSI_PORTAL_PROP = extern struct {
id: Guid,
address: VDS_IPADDRESS,
status: VDS_ISCSI_PORTAL_STATUS,
};
pub const VDS_ISCSI_TARGET_PROP = extern struct {
id: Guid,
pwszIscsiName: ?PWSTR,
pwszFriendlyName: ?PWSTR,
bChapEnabled: BOOL,
};
pub const VDS_ISCSI_PORTALGROUP_PROP = extern struct {
id: Guid,
tag: u16,
};
pub const VDS_RAID_TYPE = enum(i32) {
UNKNOWN = 0,
RAID0 = 10,
RAID1 = 11,
RAID2 = 12,
RAID3 = 13,
RAID4 = 14,
RAID5 = 15,
RAID6 = 16,
RAID01 = 17,
RAID03 = 18,
RAID05 = 19,
RAID10 = 20,
RAID15 = 21,
RAID30 = 22,
RAID50 = 23,
RAID51 = 24,
RAID53 = 25,
RAID60 = 26,
RAID61 = 27,
};
pub const VDS_RT_UNKNOWN = VDS_RAID_TYPE.UNKNOWN;
pub const VDS_RT_RAID0 = VDS_RAID_TYPE.RAID0;
pub const VDS_RT_RAID1 = VDS_RAID_TYPE.RAID1;
pub const VDS_RT_RAID2 = VDS_RAID_TYPE.RAID2;
pub const VDS_RT_RAID3 = VDS_RAID_TYPE.RAID3;
pub const VDS_RT_RAID4 = VDS_RAID_TYPE.RAID4;
pub const VDS_RT_RAID5 = VDS_RAID_TYPE.RAID5;
pub const VDS_RT_RAID6 = VDS_RAID_TYPE.RAID6;
pub const VDS_RT_RAID01 = VDS_RAID_TYPE.RAID01;
pub const VDS_RT_RAID03 = VDS_RAID_TYPE.RAID03;
pub const VDS_RT_RAID05 = VDS_RAID_TYPE.RAID05;
pub const VDS_RT_RAID10 = VDS_RAID_TYPE.RAID10;
pub const VDS_RT_RAID15 = VDS_RAID_TYPE.RAID15;
pub const VDS_RT_RAID30 = VDS_RAID_TYPE.RAID30;
pub const VDS_RT_RAID50 = VDS_RAID_TYPE.RAID50;
pub const VDS_RT_RAID51 = VDS_RAID_TYPE.RAID51;
pub const VDS_RT_RAID53 = VDS_RAID_TYPE.RAID53;
pub const VDS_RT_RAID60 = VDS_RAID_TYPE.RAID60;
pub const VDS_RT_RAID61 = VDS_RAID_TYPE.RAID61;
pub const VDS_POOL_CUSTOM_ATTRIBUTES = extern struct {
pwszName: ?PWSTR,
pwszValue: ?PWSTR,
};
pub const VDS_POOL_ATTRIBUTES = extern struct {
ullAttributeMask: u64,
raidType: VDS_RAID_TYPE,
busType: VDS_STORAGE_BUS_TYPE,
pwszIntendedUsage: ?PWSTR,
bSpinDown: BOOL,
bIsThinProvisioned: BOOL,
ullProvisionedSpace: u64,
bNoSinglePointOfFailure: BOOL,
ulDataRedundancyMax: u32,
ulDataRedundancyMin: u32,
ulDataRedundancyDefault: u32,
ulPackageRedundancyMax: u32,
ulPackageRedundancyMin: u32,
ulPackageRedundancyDefault: u32,
ulStripeSize: u32,
ulStripeSizeMax: u32,
ulStripeSizeMin: u32,
ulDefaultStripeSize: u32,
ulNumberOfColumns: u32,
ulNumberOfColumnsMax: u32,
ulNumberOfColumnsMin: u32,
ulDefaultNumberofColumns: u32,
ulDataAvailabilityHint: u32,
ulAccessRandomnessHint: u32,
ulAccessDirectionHint: u32,
ulAccessSizeHint: u32,
ulAccessLatencyHint: u32,
ulAccessBandwidthWeightHint: u32,
ulStorageCostHint: u32,
ulStorageEfficiencyHint: u32,
ulNumOfCustomAttributes: u32,
pPoolCustomAttributes: ?*VDS_POOL_CUSTOM_ATTRIBUTES,
bReserved1: BOOL,
bReserved2: BOOL,
ulReserved1: u32,
ulReserved2: u32,
ullReserved1: u64,
ullReserved2: u64,
};
pub const VDS_STORAGE_POOL_PROP = extern struct {
id: Guid,
status: VDS_STORAGE_POOL_STATUS,
health: VDS_HEALTH,
type: VDS_STORAGE_POOL_TYPE,
pwszName: ?PWSTR,
pwszDescription: ?PWSTR,
ullTotalConsumedSpace: u64,
ullTotalManagedSpace: u64,
ullRemainingFreeSpace: u64,
};
pub const VDS_STORAGE_POOL_DRIVE_EXTENT = extern struct {
id: Guid,
ullSize: u64,
bUsed: BOOL,
};
// TODO: this type is limited to platform 'windows6.0.6000'
const IID_IVdsHwProvider_Value = Guid.initString("d99bdaae-b13a-4178-9fdb-e27f16b4603e");
pub const IID_IVdsHwProvider = &IID_IVdsHwProvider_Value;
pub const IVdsHwProvider = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
QuerySubSystems: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsHwProvider,
ppEnum: ?*?*IEnumVdsObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsHwProvider,
ppEnum: ?*?*IEnumVdsObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
Reenumerate: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsHwProvider,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsHwProvider,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
Refresh: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsHwProvider,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsHwProvider,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsHwProvider_QuerySubSystems(self: *const T, ppEnum: ?*?*IEnumVdsObject) callconv(.Inline) HRESULT {
return @as(*const IVdsHwProvider.VTable, @ptrCast(self.vtable)).QuerySubSystems(@as(*const IVdsHwProvider, @ptrCast(self)), ppEnum);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsHwProvider_Reenumerate(self: *const T) callconv(.Inline) HRESULT {
return @as(*const IVdsHwProvider.VTable, @ptrCast(self.vtable)).Reenumerate(@as(*const IVdsHwProvider, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsHwProvider_Refresh(self: *const T) callconv(.Inline) HRESULT {
return @as(*const IVdsHwProvider.VTable, @ptrCast(self.vtable)).Refresh(@as(*const IVdsHwProvider, @ptrCast(self)));
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.0.6000'
const IID_IVdsHwProviderType_Value = Guid.initString("3e0f5166-542d-4fc6-947a-012174240b7e");
pub const IID_IVdsHwProviderType = &IID_IVdsHwProviderType_Value;
pub const IVdsHwProviderType = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
GetProviderType: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsHwProviderType,
pType: ?*VDS_HWPROVIDER_TYPE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsHwProviderType,
pType: ?*VDS_HWPROVIDER_TYPE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsHwProviderType_GetProviderType(self: *const T, pType: ?*VDS_HWPROVIDER_TYPE) callconv(.Inline) HRESULT {
return @as(*const IVdsHwProviderType.VTable, @ptrCast(self.vtable)).GetProviderType(@as(*const IVdsHwProviderType, @ptrCast(self)), pType);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.1'
const IID_IVdsHwProviderType2_Value = Guid.initString("8190236f-c4d0-4e81-8011-d69512fcc984");
pub const IID_IVdsHwProviderType2 = &IID_IVdsHwProviderType2_Value;
pub const IVdsHwProviderType2 = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
GetProviderType2: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsHwProviderType2,
pType: ?*VDS_HWPROVIDER_TYPE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsHwProviderType2,
pType: ?*VDS_HWPROVIDER_TYPE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsHwProviderType2_GetProviderType2(self: *const T, pType: ?*VDS_HWPROVIDER_TYPE) callconv(.Inline) HRESULT {
return @as(*const IVdsHwProviderType2.VTable, @ptrCast(self.vtable)).GetProviderType2(@as(*const IVdsHwProviderType2, @ptrCast(self)), pType);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.1'
const IID_IVdsHwProviderStoragePools_Value = Guid.initString("d5b5937a-f188-4c79-b86c-11c920ad11b8");
pub const IID_IVdsHwProviderStoragePools = &IID_IVdsHwProviderStoragePools_Value;
pub const IVdsHwProviderStoragePools = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
QueryStoragePools: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsHwProviderStoragePools,
ulFlags: u32,
ullRemainingFreeSpace: u64,
pPoolAttributes: ?*VDS_POOL_ATTRIBUTES,
ppEnum: ?*?*IEnumVdsObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsHwProviderStoragePools,
ulFlags: u32,
ullRemainingFreeSpace: u64,
pPoolAttributes: ?*VDS_POOL_ATTRIBUTES,
ppEnum: ?*?*IEnumVdsObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CreateLunInStoragePool: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsHwProviderStoragePools,
type: VDS_LUN_TYPE,
ullSizeInBytes: u64,
StoragePoolId: Guid,
pwszUnmaskingList: ?PWSTR,
pHints2: ?*VDS_HINTS2,
ppAsync: ?*?*IVdsAsync,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsHwProviderStoragePools,
type: VDS_LUN_TYPE,
ullSizeInBytes: u64,
StoragePoolId: Guid,
pwszUnmaskingList: ?PWSTR,
pHints2: ?*VDS_HINTS2,
ppAsync: ?*?*IVdsAsync,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
QueryMaxLunCreateSizeInStoragePool: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsHwProviderStoragePools,
type: VDS_LUN_TYPE,
StoragePoolId: Guid,
pHints2: ?*VDS_HINTS2,
pullMaxLunSize: ?*u64,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsHwProviderStoragePools,
type: VDS_LUN_TYPE,
StoragePoolId: Guid,
pHints2: ?*VDS_HINTS2,
pullMaxLunSize: ?*u64,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsHwProviderStoragePools_QueryStoragePools(self: *const T, ulFlags: u32, ullRemainingFreeSpace: u64, pPoolAttributes: ?*VDS_POOL_ATTRIBUTES, ppEnum: ?*?*IEnumVdsObject) callconv(.Inline) HRESULT {
return @as(*const IVdsHwProviderStoragePools.VTable, @ptrCast(self.vtable)).QueryStoragePools(@as(*const IVdsHwProviderStoragePools, @ptrCast(self)), ulFlags, ullRemainingFreeSpace, pPoolAttributes, ppEnum);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsHwProviderStoragePools_CreateLunInStoragePool(self: *const T, type_: VDS_LUN_TYPE, ullSizeInBytes: u64, StoragePoolId: Guid, pwszUnmaskingList: ?PWSTR, pHints2: ?*VDS_HINTS2, ppAsync: ?*?*IVdsAsync) callconv(.Inline) HRESULT {
return @as(*const IVdsHwProviderStoragePools.VTable, @ptrCast(self.vtable)).CreateLunInStoragePool(@as(*const IVdsHwProviderStoragePools, @ptrCast(self)), type_, ullSizeInBytes, StoragePoolId, pwszUnmaskingList, pHints2, ppAsync);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsHwProviderStoragePools_QueryMaxLunCreateSizeInStoragePool(self: *const T, type_: VDS_LUN_TYPE, StoragePoolId: Guid, pHints2: ?*VDS_HINTS2, pullMaxLunSize: ?*u64) callconv(.Inline) HRESULT {
return @as(*const IVdsHwProviderStoragePools.VTable, @ptrCast(self.vtable)).QueryMaxLunCreateSizeInStoragePool(@as(*const IVdsHwProviderStoragePools, @ptrCast(self)), type_, StoragePoolId, pHints2, pullMaxLunSize);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.0.6000'
const IID_IVdsSubSystem_Value = Guid.initString("6fcee2d3-6d90-4f91-80e2-a5c7caaca9d8");
pub const IID_IVdsSubSystem = &IID_IVdsSubSystem_Value;
pub const IVdsSubSystem = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
GetProperties: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsSubSystem,
pSubSystemProp: ?*VDS_SUB_SYSTEM_PROP,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsSubSystem,
pSubSystemProp: ?*VDS_SUB_SYSTEM_PROP,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetProvider: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsSubSystem,
ppProvider: ?*?*IVdsProvider,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsSubSystem,
ppProvider: ?*?*IVdsProvider,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
QueryControllers: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsSubSystem,
ppEnum: ?*?*IEnumVdsObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsSubSystem,
ppEnum: ?*?*IEnumVdsObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
QueryLuns: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsSubSystem,
ppEnum: ?*?*IEnumVdsObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsSubSystem,
ppEnum: ?*?*IEnumVdsObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
QueryDrives: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsSubSystem,
ppEnum: ?*?*IEnumVdsObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsSubSystem,
ppEnum: ?*?*IEnumVdsObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetDrive: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsSubSystem,
sBusNumber: i16,
sSlotNumber: i16,
ppDrive: ?*?*IVdsDrive,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsSubSystem,
sBusNumber: i16,
sSlotNumber: i16,
ppDrive: ?*?*IVdsDrive,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
Reenumerate: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsSubSystem,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsSubSystem,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
SetControllerStatus: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsSubSystem,
pOnlineControllerIdArray: [*]Guid,
lNumberOfOnlineControllers: i32,
pOfflineControllerIdArray: [*]Guid,
lNumberOfOfflineControllers: i32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsSubSystem,
pOnlineControllerIdArray: [*]Guid,
lNumberOfOnlineControllers: i32,
pOfflineControllerIdArray: [*]Guid,
lNumberOfOfflineControllers: i32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CreateLun: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsSubSystem,
type: VDS_LUN_TYPE,
ullSizeInBytes: u64,
pDriveIdArray: ?[*]Guid,
lNumberOfDrives: i32,
pwszUnmaskingList: ?PWSTR,
pHints: ?*VDS_HINTS,
ppAsync: ?*?*IVdsAsync,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsSubSystem,
type: VDS_LUN_TYPE,
ullSizeInBytes: u64,
pDriveIdArray: ?[*]Guid,
lNumberOfDrives: i32,
pwszUnmaskingList: ?PWSTR,
pHints: ?*VDS_HINTS,
ppAsync: ?*?*IVdsAsync,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
ReplaceDrive: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsSubSystem,
DriveToBeReplaced: Guid,
ReplacementDrive: Guid,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsSubSystem,
DriveToBeReplaced: Guid,
ReplacementDrive: Guid,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
SetStatus: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsSubSystem,
status: VDS_SUB_SYSTEM_STATUS,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsSubSystem,
status: VDS_SUB_SYSTEM_STATUS,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
QueryMaxLunCreateSize: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsSubSystem,
type: VDS_LUN_TYPE,
pDriveIdArray: ?[*]Guid,
lNumberOfDrives: i32,
pHints: ?*VDS_HINTS,
pullMaxLunSize: ?*u64,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsSubSystem,
type: VDS_LUN_TYPE,
pDriveIdArray: ?[*]Guid,
lNumberOfDrives: i32,
pHints: ?*VDS_HINTS,
pullMaxLunSize: ?*u64,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsSubSystem_GetProperties(self: *const T, pSubSystemProp: ?*VDS_SUB_SYSTEM_PROP) callconv(.Inline) HRESULT {
return @as(*const IVdsSubSystem.VTable, @ptrCast(self.vtable)).GetProperties(@as(*const IVdsSubSystem, @ptrCast(self)), pSubSystemProp);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsSubSystem_GetProvider(self: *const T, ppProvider: ?*?*IVdsProvider) callconv(.Inline) HRESULT {
return @as(*const IVdsSubSystem.VTable, @ptrCast(self.vtable)).GetProvider(@as(*const IVdsSubSystem, @ptrCast(self)), ppProvider);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsSubSystem_QueryControllers(self: *const T, ppEnum: ?*?*IEnumVdsObject) callconv(.Inline) HRESULT {
return @as(*const IVdsSubSystem.VTable, @ptrCast(self.vtable)).QueryControllers(@as(*const IVdsSubSystem, @ptrCast(self)), ppEnum);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsSubSystem_QueryLuns(self: *const T, ppEnum: ?*?*IEnumVdsObject) callconv(.Inline) HRESULT {
return @as(*const IVdsSubSystem.VTable, @ptrCast(self.vtable)).QueryLuns(@as(*const IVdsSubSystem, @ptrCast(self)), ppEnum);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsSubSystem_QueryDrives(self: *const T, ppEnum: ?*?*IEnumVdsObject) callconv(.Inline) HRESULT {
return @as(*const IVdsSubSystem.VTable, @ptrCast(self.vtable)).QueryDrives(@as(*const IVdsSubSystem, @ptrCast(self)), ppEnum);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsSubSystem_GetDrive(self: *const T, sBusNumber: i16, sSlotNumber: i16, ppDrive: ?*?*IVdsDrive) callconv(.Inline) HRESULT {
return @as(*const IVdsSubSystem.VTable, @ptrCast(self.vtable)).GetDrive(@as(*const IVdsSubSystem, @ptrCast(self)), sBusNumber, sSlotNumber, ppDrive);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsSubSystem_Reenumerate(self: *const T) callconv(.Inline) HRESULT {
return @as(*const IVdsSubSystem.VTable, @ptrCast(self.vtable)).Reenumerate(@as(*const IVdsSubSystem, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsSubSystem_SetControllerStatus(self: *const T, pOnlineControllerIdArray: [*]Guid, lNumberOfOnlineControllers: i32, pOfflineControllerIdArray: [*]Guid, lNumberOfOfflineControllers: i32) callconv(.Inline) HRESULT {
return @as(*const IVdsSubSystem.VTable, @ptrCast(self.vtable)).SetControllerStatus(@as(*const IVdsSubSystem, @ptrCast(self)), pOnlineControllerIdArray, lNumberOfOnlineControllers, pOfflineControllerIdArray, lNumberOfOfflineControllers);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsSubSystem_CreateLun(self: *const T, type_: VDS_LUN_TYPE, ullSizeInBytes: u64, pDriveIdArray: ?[*]Guid, lNumberOfDrives: i32, pwszUnmaskingList: ?PWSTR, pHints: ?*VDS_HINTS, ppAsync: ?*?*IVdsAsync) callconv(.Inline) HRESULT {
return @as(*const IVdsSubSystem.VTable, @ptrCast(self.vtable)).CreateLun(@as(*const IVdsSubSystem, @ptrCast(self)), type_, ullSizeInBytes, pDriveIdArray, lNumberOfDrives, pwszUnmaskingList, pHints, ppAsync);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsSubSystem_ReplaceDrive(self: *const T, DriveToBeReplaced: Guid, ReplacementDrive: Guid) callconv(.Inline) HRESULT {
return @as(*const IVdsSubSystem.VTable, @ptrCast(self.vtable)).ReplaceDrive(@as(*const IVdsSubSystem, @ptrCast(self)), DriveToBeReplaced, ReplacementDrive);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsSubSystem_SetStatus(self: *const T, status: VDS_SUB_SYSTEM_STATUS) callconv(.Inline) HRESULT {
return @as(*const IVdsSubSystem.VTable, @ptrCast(self.vtable)).SetStatus(@as(*const IVdsSubSystem, @ptrCast(self)), status);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsSubSystem_QueryMaxLunCreateSize(self: *const T, type_: VDS_LUN_TYPE, pDriveIdArray: ?[*]Guid, lNumberOfDrives: i32, pHints: ?*VDS_HINTS, pullMaxLunSize: ?*u64) callconv(.Inline) HRESULT {
return @as(*const IVdsSubSystem.VTable, @ptrCast(self.vtable)).QueryMaxLunCreateSize(@as(*const IVdsSubSystem, @ptrCast(self)), type_, pDriveIdArray, lNumberOfDrives, pHints, pullMaxLunSize);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.1'
const IID_IVdsSubSystem2_Value = Guid.initString("be666735-7800-4a77-9d9c-40f85b87e292");
pub const IID_IVdsSubSystem2 = &IID_IVdsSubSystem2_Value;
pub const IVdsSubSystem2 = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
GetProperties2: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsSubSystem2,
pSubSystemProp2: ?*VDS_SUB_SYSTEM_PROP2,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsSubSystem2,
pSubSystemProp2: ?*VDS_SUB_SYSTEM_PROP2,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetDrive2: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsSubSystem2,
sBusNumber: i16,
sSlotNumber: i16,
ulEnclosureNumber: u32,
ppDrive: ?*?*IVdsDrive,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsSubSystem2,
sBusNumber: i16,
sSlotNumber: i16,
ulEnclosureNumber: u32,
ppDrive: ?*?*IVdsDrive,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CreateLun2: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsSubSystem2,
type: VDS_LUN_TYPE,
ullSizeInBytes: u64,
pDriveIdArray: ?[*]Guid,
lNumberOfDrives: i32,
pwszUnmaskingList: ?PWSTR,
pHints2: ?*VDS_HINTS2,
ppAsync: ?*?*IVdsAsync,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsSubSystem2,
type: VDS_LUN_TYPE,
ullSizeInBytes: u64,
pDriveIdArray: ?[*]Guid,
lNumberOfDrives: i32,
pwszUnmaskingList: ?PWSTR,
pHints2: ?*VDS_HINTS2,
ppAsync: ?*?*IVdsAsync,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
QueryMaxLunCreateSize2: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsSubSystem2,
type: VDS_LUN_TYPE,
pDriveIdArray: ?[*]Guid,
lNumberOfDrives: i32,
pHints2: ?*VDS_HINTS2,
pullMaxLunSize: ?*u64,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsSubSystem2,
type: VDS_LUN_TYPE,
pDriveIdArray: ?[*]Guid,
lNumberOfDrives: i32,
pHints2: ?*VDS_HINTS2,
pullMaxLunSize: ?*u64,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsSubSystem2_GetProperties2(self: *const T, pSubSystemProp2: ?*VDS_SUB_SYSTEM_PROP2) callconv(.Inline) HRESULT {
return @as(*const IVdsSubSystem2.VTable, @ptrCast(self.vtable)).GetProperties2(@as(*const IVdsSubSystem2, @ptrCast(self)), pSubSystemProp2);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsSubSystem2_GetDrive2(self: *const T, sBusNumber: i16, sSlotNumber: i16, ulEnclosureNumber: u32, ppDrive: ?*?*IVdsDrive) callconv(.Inline) HRESULT {
return @as(*const IVdsSubSystem2.VTable, @ptrCast(self.vtable)).GetDrive2(@as(*const IVdsSubSystem2, @ptrCast(self)), sBusNumber, sSlotNumber, ulEnclosureNumber, ppDrive);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsSubSystem2_CreateLun2(self: *const T, type_: VDS_LUN_TYPE, ullSizeInBytes: u64, pDriveIdArray: ?[*]Guid, lNumberOfDrives: i32, pwszUnmaskingList: ?PWSTR, pHints2: ?*VDS_HINTS2, ppAsync: ?*?*IVdsAsync) callconv(.Inline) HRESULT {
return @as(*const IVdsSubSystem2.VTable, @ptrCast(self.vtable)).CreateLun2(@as(*const IVdsSubSystem2, @ptrCast(self)), type_, ullSizeInBytes, pDriveIdArray, lNumberOfDrives, pwszUnmaskingList, pHints2, ppAsync);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsSubSystem2_QueryMaxLunCreateSize2(self: *const T, type_: VDS_LUN_TYPE, pDriveIdArray: ?[*]Guid, lNumberOfDrives: i32, pHints2: ?*VDS_HINTS2, pullMaxLunSize: ?*u64) callconv(.Inline) HRESULT {
return @as(*const IVdsSubSystem2.VTable, @ptrCast(self.vtable)).QueryMaxLunCreateSize2(@as(*const IVdsSubSystem2, @ptrCast(self)), type_, pDriveIdArray, lNumberOfDrives, pHints2, pullMaxLunSize);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.0.6000'
const IID_IVdsSubSystemNaming_Value = Guid.initString("0d70faa3-9cd4-4900-aa20-6981b6aafc75");
pub const IID_IVdsSubSystemNaming = &IID_IVdsSubSystemNaming_Value;
pub const IVdsSubSystemNaming = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
SetFriendlyName: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsSubSystemNaming,
pwszFriendlyName: ?PWSTR,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsSubSystemNaming,
pwszFriendlyName: ?PWSTR,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsSubSystemNaming_SetFriendlyName(self: *const T, pwszFriendlyName: ?PWSTR) callconv(.Inline) HRESULT {
return @as(*const IVdsSubSystemNaming.VTable, @ptrCast(self.vtable)).SetFriendlyName(@as(*const IVdsSubSystemNaming, @ptrCast(self)), pwszFriendlyName);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.0.6000'
const IID_IVdsSubSystemIscsi_Value = Guid.initString("0027346f-40d0-4b45-8cec-5906dc0380c8");
pub const IID_IVdsSubSystemIscsi = &IID_IVdsSubSystemIscsi_Value;
pub const IVdsSubSystemIscsi = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
QueryTargets: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsSubSystemIscsi,
ppEnum: ?*?*IEnumVdsObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsSubSystemIscsi,
ppEnum: ?*?*IEnumVdsObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
QueryPortals: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsSubSystemIscsi,
ppEnum: ?*?*IEnumVdsObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsSubSystemIscsi,
ppEnum: ?*?*IEnumVdsObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CreateTarget: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsSubSystemIscsi,
pwszIscsiName: ?PWSTR,
pwszFriendlyName: ?PWSTR,
ppAsync: ?*?*IVdsAsync,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsSubSystemIscsi,
pwszIscsiName: ?PWSTR,
pwszFriendlyName: ?PWSTR,
ppAsync: ?*?*IVdsAsync,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
SetIpsecGroupPresharedKey: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsSubSystemIscsi,
pIpsecKey: ?*VDS_ISCSI_IPSEC_KEY,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsSubSystemIscsi,
pIpsecKey: ?*VDS_ISCSI_IPSEC_KEY,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsSubSystemIscsi_QueryTargets(self: *const T, ppEnum: ?*?*IEnumVdsObject) callconv(.Inline) HRESULT {
return @as(*const IVdsSubSystemIscsi.VTable, @ptrCast(self.vtable)).QueryTargets(@as(*const IVdsSubSystemIscsi, @ptrCast(self)), ppEnum);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsSubSystemIscsi_QueryPortals(self: *const T, ppEnum: ?*?*IEnumVdsObject) callconv(.Inline) HRESULT {
return @as(*const IVdsSubSystemIscsi.VTable, @ptrCast(self.vtable)).QueryPortals(@as(*const IVdsSubSystemIscsi, @ptrCast(self)), ppEnum);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsSubSystemIscsi_CreateTarget(self: *const T, pwszIscsiName: ?PWSTR, pwszFriendlyName: ?PWSTR, ppAsync: ?*?*IVdsAsync) callconv(.Inline) HRESULT {
return @as(*const IVdsSubSystemIscsi.VTable, @ptrCast(self.vtable)).CreateTarget(@as(*const IVdsSubSystemIscsi, @ptrCast(self)), pwszIscsiName, pwszFriendlyName, ppAsync);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsSubSystemIscsi_SetIpsecGroupPresharedKey(self: *const T, pIpsecKey: ?*VDS_ISCSI_IPSEC_KEY) callconv(.Inline) HRESULT {
return @as(*const IVdsSubSystemIscsi.VTable, @ptrCast(self.vtable)).SetIpsecGroupPresharedKey(@as(*const IVdsSubSystemIscsi, @ptrCast(self)), pIpsecKey);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.1'
const IID_IVdsSubSystemInterconnect_Value = Guid.initString("9e6fa560-c141-477b-83ba-0b6c38f7febf");
pub const IID_IVdsSubSystemInterconnect = &IID_IVdsSubSystemInterconnect_Value;
pub const IVdsSubSystemInterconnect = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
GetSupportedInterconnects: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsSubSystemInterconnect,
pulSupportedInterconnectsFlag: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsSubSystemInterconnect,
pulSupportedInterconnectsFlag: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsSubSystemInterconnect_GetSupportedInterconnects(self: *const T, pulSupportedInterconnectsFlag: ?*u32) callconv(.Inline) HRESULT {
return @as(*const IVdsSubSystemInterconnect.VTable, @ptrCast(self.vtable)).GetSupportedInterconnects(@as(*const IVdsSubSystemInterconnect, @ptrCast(self)), pulSupportedInterconnectsFlag);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.0.6000'
const IID_IVdsControllerPort_Value = Guid.initString("18691d0d-4e7f-43e8-92e4-cf44beeed11c");
pub const IID_IVdsControllerPort = &IID_IVdsControllerPort_Value;
pub const IVdsControllerPort = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
GetProperties: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsControllerPort,
pPortProp: ?*VDS_PORT_PROP,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsControllerPort,
pPortProp: ?*VDS_PORT_PROP,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetController: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsControllerPort,
ppController: ?*?*IVdsController,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsControllerPort,
ppController: ?*?*IVdsController,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
QueryAssociatedLuns: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsControllerPort,
ppEnum: ?*?*IEnumVdsObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsControllerPort,
ppEnum: ?*?*IEnumVdsObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
Reset: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsControllerPort,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsControllerPort,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
SetStatus: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsControllerPort,
status: VDS_PORT_STATUS,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsControllerPort,
status: VDS_PORT_STATUS,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsControllerPort_GetProperties(self: *const T, pPortProp: ?*VDS_PORT_PROP) callconv(.Inline) HRESULT {
return @as(*const IVdsControllerPort.VTable, @ptrCast(self.vtable)).GetProperties(@as(*const IVdsControllerPort, @ptrCast(self)), pPortProp);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsControllerPort_GetController(self: *const T, ppController: ?*?*IVdsController) callconv(.Inline) HRESULT {
return @as(*const IVdsControllerPort.VTable, @ptrCast(self.vtable)).GetController(@as(*const IVdsControllerPort, @ptrCast(self)), ppController);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsControllerPort_QueryAssociatedLuns(self: *const T, ppEnum: ?*?*IEnumVdsObject) callconv(.Inline) HRESULT {
return @as(*const IVdsControllerPort.VTable, @ptrCast(self.vtable)).QueryAssociatedLuns(@as(*const IVdsControllerPort, @ptrCast(self)), ppEnum);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsControllerPort_Reset(self: *const T) callconv(.Inline) HRESULT {
return @as(*const IVdsControllerPort.VTable, @ptrCast(self.vtable)).Reset(@as(*const IVdsControllerPort, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsControllerPort_SetStatus(self: *const T, status: VDS_PORT_STATUS) callconv(.Inline) HRESULT {
return @as(*const IVdsControllerPort.VTable, @ptrCast(self.vtable)).SetStatus(@as(*const IVdsControllerPort, @ptrCast(self)), status);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.0.6000'
const IID_IVdsController_Value = Guid.initString("cb53d96e-dffb-474a-a078-790d1e2bc082");
pub const IID_IVdsController = &IID_IVdsController_Value;
pub const IVdsController = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
GetProperties: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsController,
pControllerProp: ?*VDS_CONTROLLER_PROP,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsController,
pControllerProp: ?*VDS_CONTROLLER_PROP,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetSubSystem: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsController,
ppSubSystem: ?*?*IVdsSubSystem,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsController,
ppSubSystem: ?*?*IVdsSubSystem,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetPortProperties: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsController,
sPortNumber: i16,
pPortProp: ?*VDS_PORT_PROP,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsController,
sPortNumber: i16,
pPortProp: ?*VDS_PORT_PROP,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
FlushCache: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsController,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsController,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
InvalidateCache: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsController,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsController,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
Reset: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsController,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsController,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
QueryAssociatedLuns: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsController,
ppEnum: ?*?*IEnumVdsObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsController,
ppEnum: ?*?*IEnumVdsObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
SetStatus: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsController,
status: VDS_CONTROLLER_STATUS,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsController,
status: VDS_CONTROLLER_STATUS,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsController_GetProperties(self: *const T, pControllerProp: ?*VDS_CONTROLLER_PROP) callconv(.Inline) HRESULT {
return @as(*const IVdsController.VTable, @ptrCast(self.vtable)).GetProperties(@as(*const IVdsController, @ptrCast(self)), pControllerProp);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsController_GetSubSystem(self: *const T, ppSubSystem: ?*?*IVdsSubSystem) callconv(.Inline) HRESULT {
return @as(*const IVdsController.VTable, @ptrCast(self.vtable)).GetSubSystem(@as(*const IVdsController, @ptrCast(self)), ppSubSystem);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsController_GetPortProperties(self: *const T, sPortNumber: i16, pPortProp: ?*VDS_PORT_PROP) callconv(.Inline) HRESULT {
return @as(*const IVdsController.VTable, @ptrCast(self.vtable)).GetPortProperties(@as(*const IVdsController, @ptrCast(self)), sPortNumber, pPortProp);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsController_FlushCache(self: *const T) callconv(.Inline) HRESULT {
return @as(*const IVdsController.VTable, @ptrCast(self.vtable)).FlushCache(@as(*const IVdsController, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsController_InvalidateCache(self: *const T) callconv(.Inline) HRESULT {
return @as(*const IVdsController.VTable, @ptrCast(self.vtable)).InvalidateCache(@as(*const IVdsController, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsController_Reset(self: *const T) callconv(.Inline) HRESULT {
return @as(*const IVdsController.VTable, @ptrCast(self.vtable)).Reset(@as(*const IVdsController, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsController_QueryAssociatedLuns(self: *const T, ppEnum: ?*?*IEnumVdsObject) callconv(.Inline) HRESULT {
return @as(*const IVdsController.VTable, @ptrCast(self.vtable)).QueryAssociatedLuns(@as(*const IVdsController, @ptrCast(self)), ppEnum);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsController_SetStatus(self: *const T, status: VDS_CONTROLLER_STATUS) callconv(.Inline) HRESULT {
return @as(*const IVdsController.VTable, @ptrCast(self.vtable)).SetStatus(@as(*const IVdsController, @ptrCast(self)), status);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.0.6000'
const IID_IVdsControllerControllerPort_Value = Guid.initString("ca5d735f-6bae-42c0-b30e-f2666045ce71");
pub const IID_IVdsControllerControllerPort = &IID_IVdsControllerControllerPort_Value;
pub const IVdsControllerControllerPort = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
QueryControllerPorts: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsControllerControllerPort,
ppEnum: ?*?*IEnumVdsObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsControllerControllerPort,
ppEnum: ?*?*IEnumVdsObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsControllerControllerPort_QueryControllerPorts(self: *const T, ppEnum: ?*?*IEnumVdsObject) callconv(.Inline) HRESULT {
return @as(*const IVdsControllerControllerPort.VTable, @ptrCast(self.vtable)).QueryControllerPorts(@as(*const IVdsControllerControllerPort, @ptrCast(self)), ppEnum);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.0.6000'
const IID_IVdsDrive_Value = Guid.initString("ff24efa4-aade-4b6b-898b-eaa6a20887c7");
pub const IID_IVdsDrive = &IID_IVdsDrive_Value;
pub const IVdsDrive = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
GetProperties: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsDrive,
pDriveProp: ?*VDS_DRIVE_PROP,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsDrive,
pDriveProp: ?*VDS_DRIVE_PROP,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetSubSystem: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsDrive,
ppSubSystem: ?*?*IVdsSubSystem,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsDrive,
ppSubSystem: ?*?*IVdsSubSystem,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
QueryExtents: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsDrive,
ppExtentArray: [*]?*VDS_DRIVE_EXTENT,
plNumberOfExtents: ?*i32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsDrive,
ppExtentArray: [*]?*VDS_DRIVE_EXTENT,
plNumberOfExtents: ?*i32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
SetFlags: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsDrive,
ulFlags: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsDrive,
ulFlags: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
ClearFlags: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsDrive,
ulFlags: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsDrive,
ulFlags: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
SetStatus: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsDrive,
status: VDS_DRIVE_STATUS,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsDrive,
status: VDS_DRIVE_STATUS,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsDrive_GetProperties(self: *const T, pDriveProp: ?*VDS_DRIVE_PROP) callconv(.Inline) HRESULT {
return @as(*const IVdsDrive.VTable, @ptrCast(self.vtable)).GetProperties(@as(*const IVdsDrive, @ptrCast(self)), pDriveProp);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsDrive_GetSubSystem(self: *const T, ppSubSystem: ?*?*IVdsSubSystem) callconv(.Inline) HRESULT {
return @as(*const IVdsDrive.VTable, @ptrCast(self.vtable)).GetSubSystem(@as(*const IVdsDrive, @ptrCast(self)), ppSubSystem);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsDrive_QueryExtents(self: *const T, ppExtentArray: [*]?*VDS_DRIVE_EXTENT, plNumberOfExtents: ?*i32) callconv(.Inline) HRESULT {
return @as(*const IVdsDrive.VTable, @ptrCast(self.vtable)).QueryExtents(@as(*const IVdsDrive, @ptrCast(self)), ppExtentArray, plNumberOfExtents);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsDrive_SetFlags(self: *const T, ulFlags: u32) callconv(.Inline) HRESULT {
return @as(*const IVdsDrive.VTable, @ptrCast(self.vtable)).SetFlags(@as(*const IVdsDrive, @ptrCast(self)), ulFlags);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsDrive_ClearFlags(self: *const T, ulFlags: u32) callconv(.Inline) HRESULT {
return @as(*const IVdsDrive.VTable, @ptrCast(self.vtable)).ClearFlags(@as(*const IVdsDrive, @ptrCast(self)), ulFlags);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsDrive_SetStatus(self: *const T, status: VDS_DRIVE_STATUS) callconv(.Inline) HRESULT {
return @as(*const IVdsDrive.VTable, @ptrCast(self.vtable)).SetStatus(@as(*const IVdsDrive, @ptrCast(self)), status);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.1'
const IID_IVdsDrive2_Value = Guid.initString("60b5a730-addf-4436-8ca7-5769e2d1ffa4");
pub const IID_IVdsDrive2 = &IID_IVdsDrive2_Value;
pub const IVdsDrive2 = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
GetProperties2: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsDrive2,
pDriveProp2: ?*VDS_DRIVE_PROP2,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsDrive2,
pDriveProp2: ?*VDS_DRIVE_PROP2,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsDrive2_GetProperties2(self: *const T, pDriveProp2: ?*VDS_DRIVE_PROP2) callconv(.Inline) HRESULT {
return @as(*const IVdsDrive2.VTable, @ptrCast(self.vtable)).GetProperties2(@as(*const IVdsDrive2, @ptrCast(self)), pDriveProp2);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.0.6000'
const IID_IVdsLun_Value = Guid.initString("3540a9c7-e60f-4111-a840-8bba6c2c83d8");
pub const IID_IVdsLun = &IID_IVdsLun_Value;
pub const IVdsLun = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
GetProperties: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsLun,
pLunProp: ?*VDS_LUN_PROP,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsLun,
pLunProp: ?*VDS_LUN_PROP,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetSubSystem: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsLun,
ppSubSystem: ?*?*IVdsSubSystem,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsLun,
ppSubSystem: ?*?*IVdsSubSystem,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetIdentificationData: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsLun,
pLunInfo: ?*VDS_LUN_INFORMATION,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsLun,
pLunInfo: ?*VDS_LUN_INFORMATION,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
QueryActiveControllers: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsLun,
ppEnum: ?*?*IEnumVdsObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsLun,
ppEnum: ?*?*IEnumVdsObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
Extend: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsLun,
ullNumberOfBytesToAdd: u64,
pDriveIdArray: ?[*]Guid,
lNumberOfDrives: i32,
ppAsync: ?*?*IVdsAsync,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsLun,
ullNumberOfBytesToAdd: u64,
pDriveIdArray: ?[*]Guid,
lNumberOfDrives: i32,
ppAsync: ?*?*IVdsAsync,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
Shrink: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsLun,
ullNumberOfBytesToRemove: u64,
ppAsync: ?*?*IVdsAsync,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsLun,
ullNumberOfBytesToRemove: u64,
ppAsync: ?*?*IVdsAsync,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
QueryPlexes: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsLun,
ppEnum: ?*?*IEnumVdsObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsLun,
ppEnum: ?*?*IEnumVdsObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
AddPlex: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsLun,
lunId: Guid,
ppAsync: ?*?*IVdsAsync,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsLun,
lunId: Guid,
ppAsync: ?*?*IVdsAsync,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
RemovePlex: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsLun,
plexId: Guid,
ppAsync: ?*?*IVdsAsync,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsLun,
plexId: Guid,
ppAsync: ?*?*IVdsAsync,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
Recover: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsLun,
ppAsync: ?*?*IVdsAsync,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsLun,
ppAsync: ?*?*IVdsAsync,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
SetMask: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsLun,
pwszUnmaskingList: ?PWSTR,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsLun,
pwszUnmaskingList: ?PWSTR,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
Delete: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsLun,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsLun,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
AssociateControllers: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsLun,
pActiveControllerIdArray: ?[*]Guid,
lNumberOfActiveControllers: i32,
pInactiveControllerIdArray: ?[*]Guid,
lNumberOfInactiveControllers: i32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsLun,
pActiveControllerIdArray: ?[*]Guid,
lNumberOfActiveControllers: i32,
pInactiveControllerIdArray: ?[*]Guid,
lNumberOfInactiveControllers: i32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
QueryHints: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsLun,
pHints: ?*VDS_HINTS,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsLun,
pHints: ?*VDS_HINTS,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
ApplyHints: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsLun,
pHints: ?*VDS_HINTS,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsLun,
pHints: ?*VDS_HINTS,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
SetStatus: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsLun,
status: VDS_LUN_STATUS,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsLun,
status: VDS_LUN_STATUS,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
QueryMaxLunExtendSize: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsLun,
pDriveIdArray: ?[*]Guid,
lNumberOfDrives: i32,
pullMaxBytesToBeAdded: ?*u64,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsLun,
pDriveIdArray: ?[*]Guid,
lNumberOfDrives: i32,
pullMaxBytesToBeAdded: ?*u64,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsLun_GetProperties(self: *const T, pLunProp: ?*VDS_LUN_PROP) callconv(.Inline) HRESULT {
return @as(*const IVdsLun.VTable, @ptrCast(self.vtable)).GetProperties(@as(*const IVdsLun, @ptrCast(self)), pLunProp);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsLun_GetSubSystem(self: *const T, ppSubSystem: ?*?*IVdsSubSystem) callconv(.Inline) HRESULT {
return @as(*const IVdsLun.VTable, @ptrCast(self.vtable)).GetSubSystem(@as(*const IVdsLun, @ptrCast(self)), ppSubSystem);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsLun_GetIdentificationData(self: *const T, pLunInfo: ?*VDS_LUN_INFORMATION) callconv(.Inline) HRESULT {
return @as(*const IVdsLun.VTable, @ptrCast(self.vtable)).GetIdentificationData(@as(*const IVdsLun, @ptrCast(self)), pLunInfo);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsLun_QueryActiveControllers(self: *const T, ppEnum: ?*?*IEnumVdsObject) callconv(.Inline) HRESULT {
return @as(*const IVdsLun.VTable, @ptrCast(self.vtable)).QueryActiveControllers(@as(*const IVdsLun, @ptrCast(self)), ppEnum);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsLun_Extend(self: *const T, ullNumberOfBytesToAdd: u64, pDriveIdArray: ?[*]Guid, lNumberOfDrives: i32, ppAsync: ?*?*IVdsAsync) callconv(.Inline) HRESULT {
return @as(*const IVdsLun.VTable, @ptrCast(self.vtable)).Extend(@as(*const IVdsLun, @ptrCast(self)), ullNumberOfBytesToAdd, pDriveIdArray, lNumberOfDrives, ppAsync);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsLun_Shrink(self: *const T, ullNumberOfBytesToRemove: u64, ppAsync: ?*?*IVdsAsync) callconv(.Inline) HRESULT {
return @as(*const IVdsLun.VTable, @ptrCast(self.vtable)).Shrink(@as(*const IVdsLun, @ptrCast(self)), ullNumberOfBytesToRemove, ppAsync);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsLun_QueryPlexes(self: *const T, ppEnum: ?*?*IEnumVdsObject) callconv(.Inline) HRESULT {
return @as(*const IVdsLun.VTable, @ptrCast(self.vtable)).QueryPlexes(@as(*const IVdsLun, @ptrCast(self)), ppEnum);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsLun_AddPlex(self: *const T, lunId: Guid, ppAsync: ?*?*IVdsAsync) callconv(.Inline) HRESULT {
return @as(*const IVdsLun.VTable, @ptrCast(self.vtable)).AddPlex(@as(*const IVdsLun, @ptrCast(self)), lunId, ppAsync);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsLun_RemovePlex(self: *const T, plexId: Guid, ppAsync: ?*?*IVdsAsync) callconv(.Inline) HRESULT {
return @as(*const IVdsLun.VTable, @ptrCast(self.vtable)).RemovePlex(@as(*const IVdsLun, @ptrCast(self)), plexId, ppAsync);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsLun_Recover(self: *const T, ppAsync: ?*?*IVdsAsync) callconv(.Inline) HRESULT {
return @as(*const IVdsLun.VTable, @ptrCast(self.vtable)).Recover(@as(*const IVdsLun, @ptrCast(self)), ppAsync);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsLun_SetMask(self: *const T, pwszUnmaskingList: ?PWSTR) callconv(.Inline) HRESULT {
return @as(*const IVdsLun.VTable, @ptrCast(self.vtable)).SetMask(@as(*const IVdsLun, @ptrCast(self)), pwszUnmaskingList);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsLun_Delete(self: *const T) callconv(.Inline) HRESULT {
return @as(*const IVdsLun.VTable, @ptrCast(self.vtable)).Delete(@as(*const IVdsLun, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsLun_AssociateControllers(self: *const T, pActiveControllerIdArray: ?[*]Guid, lNumberOfActiveControllers: i32, pInactiveControllerIdArray: ?[*]Guid, lNumberOfInactiveControllers: i32) callconv(.Inline) HRESULT {
return @as(*const IVdsLun.VTable, @ptrCast(self.vtable)).AssociateControllers(@as(*const IVdsLun, @ptrCast(self)), pActiveControllerIdArray, lNumberOfActiveControllers, pInactiveControllerIdArray, lNumberOfInactiveControllers);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsLun_QueryHints(self: *const T, pHints: ?*VDS_HINTS) callconv(.Inline) HRESULT {
return @as(*const IVdsLun.VTable, @ptrCast(self.vtable)).QueryHints(@as(*const IVdsLun, @ptrCast(self)), pHints);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsLun_ApplyHints(self: *const T, pHints: ?*VDS_HINTS) callconv(.Inline) HRESULT {
return @as(*const IVdsLun.VTable, @ptrCast(self.vtable)).ApplyHints(@as(*const IVdsLun, @ptrCast(self)), pHints);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsLun_SetStatus(self: *const T, status: VDS_LUN_STATUS) callconv(.Inline) HRESULT {
return @as(*const IVdsLun.VTable, @ptrCast(self.vtable)).SetStatus(@as(*const IVdsLun, @ptrCast(self)), status);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsLun_QueryMaxLunExtendSize(self: *const T, pDriveIdArray: ?[*]Guid, lNumberOfDrives: i32, pullMaxBytesToBeAdded: ?*u64) callconv(.Inline) HRESULT {
return @as(*const IVdsLun.VTable, @ptrCast(self.vtable)).QueryMaxLunExtendSize(@as(*const IVdsLun, @ptrCast(self)), pDriveIdArray, lNumberOfDrives, pullMaxBytesToBeAdded);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.1'
const IID_IVdsLun2_Value = Guid.initString("e5b3a735-9efb-499a-8071-4394d9ee6fcb");
pub const IID_IVdsLun2 = &IID_IVdsLun2_Value;
pub const IVdsLun2 = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
QueryHints2: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsLun2,
pHints2: ?*VDS_HINTS2,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsLun2,
pHints2: ?*VDS_HINTS2,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
ApplyHints2: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsLun2,
pHints2: ?*VDS_HINTS2,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsLun2,
pHints2: ?*VDS_HINTS2,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsLun2_QueryHints2(self: *const T, pHints2: ?*VDS_HINTS2) callconv(.Inline) HRESULT {
return @as(*const IVdsLun2.VTable, @ptrCast(self.vtable)).QueryHints2(@as(*const IVdsLun2, @ptrCast(self)), pHints2);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsLun2_ApplyHints2(self: *const T, pHints2: ?*VDS_HINTS2) callconv(.Inline) HRESULT {
return @as(*const IVdsLun2.VTable, @ptrCast(self.vtable)).ApplyHints2(@as(*const IVdsLun2, @ptrCast(self)), pHints2);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.0.6000'
const IID_IVdsLunNaming_Value = Guid.initString("907504cb-6b4e-4d88-a34d-17ba661fbb06");
pub const IID_IVdsLunNaming = &IID_IVdsLunNaming_Value;
pub const IVdsLunNaming = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
SetFriendlyName: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsLunNaming,
pwszFriendlyName: ?PWSTR,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsLunNaming,
pwszFriendlyName: ?PWSTR,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsLunNaming_SetFriendlyName(self: *const T, pwszFriendlyName: ?PWSTR) callconv(.Inline) HRESULT {
return @as(*const IVdsLunNaming.VTable, @ptrCast(self.vtable)).SetFriendlyName(@as(*const IVdsLunNaming, @ptrCast(self)), pwszFriendlyName);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.1'
const IID_IVdsLunNumber_Value = Guid.initString("d3f95e46-54b3-41f9-b678-0f1871443a08");
pub const IID_IVdsLunNumber = &IID_IVdsLunNumber_Value;
pub const IVdsLunNumber = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
GetLunNumber: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsLunNumber,
pulLunNumber: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsLunNumber,
pulLunNumber: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsLunNumber_GetLunNumber(self: *const T, pulLunNumber: ?*u32) callconv(.Inline) HRESULT {
return @as(*const IVdsLunNumber.VTable, @ptrCast(self.vtable)).GetLunNumber(@as(*const IVdsLunNumber, @ptrCast(self)), pulLunNumber);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.0.6000'
const IID_IVdsLunControllerPorts_Value = Guid.initString("451fe266-da6d-406a-bb60-82e534f85aeb");
pub const IID_IVdsLunControllerPorts = &IID_IVdsLunControllerPorts_Value;
pub const IVdsLunControllerPorts = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
AssociateControllerPorts: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsLunControllerPorts,
pActiveControllerPortIdArray: ?[*]Guid,
lNumberOfActiveControllerPorts: i32,
pInactiveControllerPortIdArray: ?[*]Guid,
lNumberOfInactiveControllerPorts: i32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsLunControllerPorts,
pActiveControllerPortIdArray: ?[*]Guid,
lNumberOfActiveControllerPorts: i32,
pInactiveControllerPortIdArray: ?[*]Guid,
lNumberOfInactiveControllerPorts: i32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
QueryActiveControllerPorts: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsLunControllerPorts,
ppEnum: ?*?*IEnumVdsObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsLunControllerPorts,
ppEnum: ?*?*IEnumVdsObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsLunControllerPorts_AssociateControllerPorts(self: *const T, pActiveControllerPortIdArray: ?[*]Guid, lNumberOfActiveControllerPorts: i32, pInactiveControllerPortIdArray: ?[*]Guid, lNumberOfInactiveControllerPorts: i32) callconv(.Inline) HRESULT {
return @as(*const IVdsLunControllerPorts.VTable, @ptrCast(self.vtable)).AssociateControllerPorts(@as(*const IVdsLunControllerPorts, @ptrCast(self)), pActiveControllerPortIdArray, lNumberOfActiveControllerPorts, pInactiveControllerPortIdArray, lNumberOfInactiveControllerPorts);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsLunControllerPorts_QueryActiveControllerPorts(self: *const T, ppEnum: ?*?*IEnumVdsObject) callconv(.Inline) HRESULT {
return @as(*const IVdsLunControllerPorts.VTable, @ptrCast(self.vtable)).QueryActiveControllerPorts(@as(*const IVdsLunControllerPorts, @ptrCast(self)), ppEnum);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.0.6000'
const IID_IVdsLunMpio_Value = Guid.initString("7c5fbae3-333a-48a1-a982-33c15788cde3");
pub const IID_IVdsLunMpio = &IID_IVdsLunMpio_Value;
pub const IVdsLunMpio = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
GetPathInfo: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsLunMpio,
ppPaths: [*]?*VDS_PATH_INFO,
plNumberOfPaths: ?*i32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsLunMpio,
ppPaths: [*]?*VDS_PATH_INFO,
plNumberOfPaths: ?*i32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetLoadBalancePolicy: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsLunMpio,
pPolicy: ?*VDS_LOADBALANCE_POLICY_ENUM,
ppPaths: [*]?*VDS_PATH_POLICY,
plNumberOfPaths: ?*i32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsLunMpio,
pPolicy: ?*VDS_LOADBALANCE_POLICY_ENUM,
ppPaths: [*]?*VDS_PATH_POLICY,
plNumberOfPaths: ?*i32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
SetLoadBalancePolicy: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsLunMpio,
policy: VDS_LOADBALANCE_POLICY_ENUM,
pPaths: ?[*]VDS_PATH_POLICY,
lNumberOfPaths: i32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsLunMpio,
policy: VDS_LOADBALANCE_POLICY_ENUM,
pPaths: ?[*]VDS_PATH_POLICY,
lNumberOfPaths: i32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetSupportedLbPolicies: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsLunMpio,
pulLbFlags: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsLunMpio,
pulLbFlags: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsLunMpio_GetPathInfo(self: *const T, ppPaths: [*]?*VDS_PATH_INFO, plNumberOfPaths: ?*i32) callconv(.Inline) HRESULT {
return @as(*const IVdsLunMpio.VTable, @ptrCast(self.vtable)).GetPathInfo(@as(*const IVdsLunMpio, @ptrCast(self)), ppPaths, plNumberOfPaths);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsLunMpio_GetLoadBalancePolicy(self: *const T, pPolicy: ?*VDS_LOADBALANCE_POLICY_ENUM, ppPaths: [*]?*VDS_PATH_POLICY, plNumberOfPaths: ?*i32) callconv(.Inline) HRESULT {
return @as(*const IVdsLunMpio.VTable, @ptrCast(self.vtable)).GetLoadBalancePolicy(@as(*const IVdsLunMpio, @ptrCast(self)), pPolicy, ppPaths, plNumberOfPaths);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsLunMpio_SetLoadBalancePolicy(self: *const T, policy: VDS_LOADBALANCE_POLICY_ENUM, pPaths: ?[*]VDS_PATH_POLICY, lNumberOfPaths: i32) callconv(.Inline) HRESULT {
return @as(*const IVdsLunMpio.VTable, @ptrCast(self.vtable)).SetLoadBalancePolicy(@as(*const IVdsLunMpio, @ptrCast(self)), policy, pPaths, lNumberOfPaths);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsLunMpio_GetSupportedLbPolicies(self: *const T, pulLbFlags: ?*u32) callconv(.Inline) HRESULT {
return @as(*const IVdsLunMpio.VTable, @ptrCast(self.vtable)).GetSupportedLbPolicies(@as(*const IVdsLunMpio, @ptrCast(self)), pulLbFlags);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.0.6000'
const IID_IVdsLunIscsi_Value = Guid.initString("0d7c1e64-b59b-45ae-b86a-2c2cc6a42067");
pub const IID_IVdsLunIscsi = &IID_IVdsLunIscsi_Value;
pub const IVdsLunIscsi = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
AssociateTargets: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsLunIscsi,
pTargetIdArray: ?[*]Guid,
lNumberOfTargets: i32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsLunIscsi,
pTargetIdArray: ?[*]Guid,
lNumberOfTargets: i32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
QueryAssociatedTargets: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsLunIscsi,
ppEnum: ?*?*IEnumVdsObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsLunIscsi,
ppEnum: ?*?*IEnumVdsObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsLunIscsi_AssociateTargets(self: *const T, pTargetIdArray: ?[*]Guid, lNumberOfTargets: i32) callconv(.Inline) HRESULT {
return @as(*const IVdsLunIscsi.VTable, @ptrCast(self.vtable)).AssociateTargets(@as(*const IVdsLunIscsi, @ptrCast(self)), pTargetIdArray, lNumberOfTargets);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsLunIscsi_QueryAssociatedTargets(self: *const T, ppEnum: ?*?*IEnumVdsObject) callconv(.Inline) HRESULT {
return @as(*const IVdsLunIscsi.VTable, @ptrCast(self.vtable)).QueryAssociatedTargets(@as(*const IVdsLunIscsi, @ptrCast(self)), ppEnum);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.0.6000'
const IID_IVdsLunPlex_Value = Guid.initString("0ee1a790-5d2e-4abb-8c99-c481e8be2138");
pub const IID_IVdsLunPlex = &IID_IVdsLunPlex_Value;
pub const IVdsLunPlex = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
GetProperties: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsLunPlex,
pPlexProp: ?*VDS_LUN_PLEX_PROP,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsLunPlex,
pPlexProp: ?*VDS_LUN_PLEX_PROP,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetLun: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsLunPlex,
ppLun: ?*?*IVdsLun,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsLunPlex,
ppLun: ?*?*IVdsLun,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
QueryExtents: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsLunPlex,
ppExtentArray: [*]?*VDS_DRIVE_EXTENT,
plNumberOfExtents: ?*i32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsLunPlex,
ppExtentArray: [*]?*VDS_DRIVE_EXTENT,
plNumberOfExtents: ?*i32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
QueryHints: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsLunPlex,
pHints: ?*VDS_HINTS,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsLunPlex,
pHints: ?*VDS_HINTS,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
ApplyHints: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsLunPlex,
pHints: ?*VDS_HINTS,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsLunPlex,
pHints: ?*VDS_HINTS,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsLunPlex_GetProperties(self: *const T, pPlexProp: ?*VDS_LUN_PLEX_PROP) callconv(.Inline) HRESULT {
return @as(*const IVdsLunPlex.VTable, @ptrCast(self.vtable)).GetProperties(@as(*const IVdsLunPlex, @ptrCast(self)), pPlexProp);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsLunPlex_GetLun(self: *const T, ppLun: ?*?*IVdsLun) callconv(.Inline) HRESULT {
return @as(*const IVdsLunPlex.VTable, @ptrCast(self.vtable)).GetLun(@as(*const IVdsLunPlex, @ptrCast(self)), ppLun);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsLunPlex_QueryExtents(self: *const T, ppExtentArray: [*]?*VDS_DRIVE_EXTENT, plNumberOfExtents: ?*i32) callconv(.Inline) HRESULT {
return @as(*const IVdsLunPlex.VTable, @ptrCast(self.vtable)).QueryExtents(@as(*const IVdsLunPlex, @ptrCast(self)), ppExtentArray, plNumberOfExtents);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsLunPlex_QueryHints(self: *const T, pHints: ?*VDS_HINTS) callconv(.Inline) HRESULT {
return @as(*const IVdsLunPlex.VTable, @ptrCast(self.vtable)).QueryHints(@as(*const IVdsLunPlex, @ptrCast(self)), pHints);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsLunPlex_ApplyHints(self: *const T, pHints: ?*VDS_HINTS) callconv(.Inline) HRESULT {
return @as(*const IVdsLunPlex.VTable, @ptrCast(self.vtable)).ApplyHints(@as(*const IVdsLunPlex, @ptrCast(self)), pHints);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.0.6000'
const IID_IVdsIscsiPortal_Value = Guid.initString("7fa1499d-ec85-4a8a-a47b-ff69201fcd34");
pub const IID_IVdsIscsiPortal = &IID_IVdsIscsiPortal_Value;
pub const IVdsIscsiPortal = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
GetProperties: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsIscsiPortal,
pPortalProp: ?*VDS_ISCSI_PORTAL_PROP,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsIscsiPortal,
pPortalProp: ?*VDS_ISCSI_PORTAL_PROP,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetSubSystem: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsIscsiPortal,
ppSubSystem: ?*?*IVdsSubSystem,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsIscsiPortal,
ppSubSystem: ?*?*IVdsSubSystem,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
QueryAssociatedPortalGroups: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsIscsiPortal,
ppEnum: ?*?*IEnumVdsObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsIscsiPortal,
ppEnum: ?*?*IEnumVdsObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
SetStatus: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsIscsiPortal,
status: VDS_ISCSI_PORTAL_STATUS,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsIscsiPortal,
status: VDS_ISCSI_PORTAL_STATUS,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
SetIpsecTunnelAddress: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsIscsiPortal,
pTunnelAddress: ?*VDS_IPADDRESS,
pDestinationAddress: ?*VDS_IPADDRESS,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsIscsiPortal,
pTunnelAddress: ?*VDS_IPADDRESS,
pDestinationAddress: ?*VDS_IPADDRESS,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetIpsecSecurity: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsIscsiPortal,
pInitiatorPortalAddress: ?*VDS_IPADDRESS,
pullSecurityFlags: ?*u64,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsIscsiPortal,
pInitiatorPortalAddress: ?*VDS_IPADDRESS,
pullSecurityFlags: ?*u64,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
SetIpsecSecurity: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsIscsiPortal,
pInitiatorPortalAddress: ?*VDS_IPADDRESS,
ullSecurityFlags: u64,
pIpsecKey: ?*VDS_ISCSI_IPSEC_KEY,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsIscsiPortal,
pInitiatorPortalAddress: ?*VDS_IPADDRESS,
ullSecurityFlags: u64,
pIpsecKey: ?*VDS_ISCSI_IPSEC_KEY,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsIscsiPortal_GetProperties(self: *const T, pPortalProp: ?*VDS_ISCSI_PORTAL_PROP) callconv(.Inline) HRESULT {
return @as(*const IVdsIscsiPortal.VTable, @ptrCast(self.vtable)).GetProperties(@as(*const IVdsIscsiPortal, @ptrCast(self)), pPortalProp);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsIscsiPortal_GetSubSystem(self: *const T, ppSubSystem: ?*?*IVdsSubSystem) callconv(.Inline) HRESULT {
return @as(*const IVdsIscsiPortal.VTable, @ptrCast(self.vtable)).GetSubSystem(@as(*const IVdsIscsiPortal, @ptrCast(self)), ppSubSystem);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsIscsiPortal_QueryAssociatedPortalGroups(self: *const T, ppEnum: ?*?*IEnumVdsObject) callconv(.Inline) HRESULT {
return @as(*const IVdsIscsiPortal.VTable, @ptrCast(self.vtable)).QueryAssociatedPortalGroups(@as(*const IVdsIscsiPortal, @ptrCast(self)), ppEnum);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsIscsiPortal_SetStatus(self: *const T, status: VDS_ISCSI_PORTAL_STATUS) callconv(.Inline) HRESULT {
return @as(*const IVdsIscsiPortal.VTable, @ptrCast(self.vtable)).SetStatus(@as(*const IVdsIscsiPortal, @ptrCast(self)), status);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsIscsiPortal_SetIpsecTunnelAddress(self: *const T, pTunnelAddress: ?*VDS_IPADDRESS, pDestinationAddress: ?*VDS_IPADDRESS) callconv(.Inline) HRESULT {
return @as(*const IVdsIscsiPortal.VTable, @ptrCast(self.vtable)).SetIpsecTunnelAddress(@as(*const IVdsIscsiPortal, @ptrCast(self)), pTunnelAddress, pDestinationAddress);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsIscsiPortal_GetIpsecSecurity(self: *const T, pInitiatorPortalAddress: ?*VDS_IPADDRESS, pullSecurityFlags: ?*u64) callconv(.Inline) HRESULT {
return @as(*const IVdsIscsiPortal.VTable, @ptrCast(self.vtable)).GetIpsecSecurity(@as(*const IVdsIscsiPortal, @ptrCast(self)), pInitiatorPortalAddress, pullSecurityFlags);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsIscsiPortal_SetIpsecSecurity(self: *const T, pInitiatorPortalAddress: ?*VDS_IPADDRESS, ullSecurityFlags: u64, pIpsecKey: ?*VDS_ISCSI_IPSEC_KEY) callconv(.Inline) HRESULT {
return @as(*const IVdsIscsiPortal.VTable, @ptrCast(self.vtable)).SetIpsecSecurity(@as(*const IVdsIscsiPortal, @ptrCast(self)), pInitiatorPortalAddress, ullSecurityFlags, pIpsecKey);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.0.6000'
const IID_IVdsIscsiTarget_Value = Guid.initString("aa8f5055-83e5-4bcc-aa73-19851a36a849");
pub const IID_IVdsIscsiTarget = &IID_IVdsIscsiTarget_Value;
pub const IVdsIscsiTarget = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
GetProperties: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsIscsiTarget,
pTargetProp: ?*VDS_ISCSI_TARGET_PROP,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsIscsiTarget,
pTargetProp: ?*VDS_ISCSI_TARGET_PROP,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetSubSystem: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsIscsiTarget,
ppSubSystem: ?*?*IVdsSubSystem,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsIscsiTarget,
ppSubSystem: ?*?*IVdsSubSystem,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
QueryPortalGroups: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsIscsiTarget,
ppEnum: ?*?*IEnumVdsObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsIscsiTarget,
ppEnum: ?*?*IEnumVdsObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
QueryAssociatedLuns: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsIscsiTarget,
ppEnum: ?*?*IEnumVdsObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsIscsiTarget,
ppEnum: ?*?*IEnumVdsObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CreatePortalGroup: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsIscsiTarget,
ppAsync: ?*?*IVdsAsync,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsIscsiTarget,
ppAsync: ?*?*IVdsAsync,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
Delete: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsIscsiTarget,
ppAsync: ?*?*IVdsAsync,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsIscsiTarget,
ppAsync: ?*?*IVdsAsync,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
SetFriendlyName: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsIscsiTarget,
pwszFriendlyName: ?PWSTR,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsIscsiTarget,
pwszFriendlyName: ?PWSTR,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
SetSharedSecret: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsIscsiTarget,
pTargetSharedSecret: ?*VDS_ISCSI_SHARED_SECRET,
pwszInitiatorName: ?PWSTR,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsIscsiTarget,
pTargetSharedSecret: ?*VDS_ISCSI_SHARED_SECRET,
pwszInitiatorName: ?PWSTR,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
RememberInitiatorSharedSecret: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsIscsiTarget,
pwszInitiatorName: ?PWSTR,
pInitiatorSharedSecret: ?*VDS_ISCSI_SHARED_SECRET,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsIscsiTarget,
pwszInitiatorName: ?PWSTR,
pInitiatorSharedSecret: ?*VDS_ISCSI_SHARED_SECRET,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetConnectedInitiators: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsIscsiTarget,
pppwszInitiatorList: [*]?*?PWSTR,
plNumberOfInitiators: ?*i32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsIscsiTarget,
pppwszInitiatorList: [*]?*?PWSTR,
plNumberOfInitiators: ?*i32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsIscsiTarget_GetProperties(self: *const T, pTargetProp: ?*VDS_ISCSI_TARGET_PROP) callconv(.Inline) HRESULT {
return @as(*const IVdsIscsiTarget.VTable, @ptrCast(self.vtable)).GetProperties(@as(*const IVdsIscsiTarget, @ptrCast(self)), pTargetProp);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsIscsiTarget_GetSubSystem(self: *const T, ppSubSystem: ?*?*IVdsSubSystem) callconv(.Inline) HRESULT {
return @as(*const IVdsIscsiTarget.VTable, @ptrCast(self.vtable)).GetSubSystem(@as(*const IVdsIscsiTarget, @ptrCast(self)), ppSubSystem);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsIscsiTarget_QueryPortalGroups(self: *const T, ppEnum: ?*?*IEnumVdsObject) callconv(.Inline) HRESULT {
return @as(*const IVdsIscsiTarget.VTable, @ptrCast(self.vtable)).QueryPortalGroups(@as(*const IVdsIscsiTarget, @ptrCast(self)), ppEnum);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsIscsiTarget_QueryAssociatedLuns(self: *const T, ppEnum: ?*?*IEnumVdsObject) callconv(.Inline) HRESULT {
return @as(*const IVdsIscsiTarget.VTable, @ptrCast(self.vtable)).QueryAssociatedLuns(@as(*const IVdsIscsiTarget, @ptrCast(self)), ppEnum);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsIscsiTarget_CreatePortalGroup(self: *const T, ppAsync: ?*?*IVdsAsync) callconv(.Inline) HRESULT {
return @as(*const IVdsIscsiTarget.VTable, @ptrCast(self.vtable)).CreatePortalGroup(@as(*const IVdsIscsiTarget, @ptrCast(self)), ppAsync);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsIscsiTarget_Delete(self: *const T, ppAsync: ?*?*IVdsAsync) callconv(.Inline) HRESULT {
return @as(*const IVdsIscsiTarget.VTable, @ptrCast(self.vtable)).Delete(@as(*const IVdsIscsiTarget, @ptrCast(self)), ppAsync);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsIscsiTarget_SetFriendlyName(self: *const T, pwszFriendlyName: ?PWSTR) callconv(.Inline) HRESULT {
return @as(*const IVdsIscsiTarget.VTable, @ptrCast(self.vtable)).SetFriendlyName(@as(*const IVdsIscsiTarget, @ptrCast(self)), pwszFriendlyName);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsIscsiTarget_SetSharedSecret(self: *const T, pTargetSharedSecret: ?*VDS_ISCSI_SHARED_SECRET, pwszInitiatorName: ?PWSTR) callconv(.Inline) HRESULT {
return @as(*const IVdsIscsiTarget.VTable, @ptrCast(self.vtable)).SetSharedSecret(@as(*const IVdsIscsiTarget, @ptrCast(self)), pTargetSharedSecret, pwszInitiatorName);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsIscsiTarget_RememberInitiatorSharedSecret(self: *const T, pwszInitiatorName: ?PWSTR, pInitiatorSharedSecret: ?*VDS_ISCSI_SHARED_SECRET) callconv(.Inline) HRESULT {
return @as(*const IVdsIscsiTarget.VTable, @ptrCast(self.vtable)).RememberInitiatorSharedSecret(@as(*const IVdsIscsiTarget, @ptrCast(self)), pwszInitiatorName, pInitiatorSharedSecret);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsIscsiTarget_GetConnectedInitiators(self: *const T, pppwszInitiatorList: [*]?*?PWSTR, plNumberOfInitiators: ?*i32) callconv(.Inline) HRESULT {
return @as(*const IVdsIscsiTarget.VTable, @ptrCast(self.vtable)).GetConnectedInitiators(@as(*const IVdsIscsiTarget, @ptrCast(self)), pppwszInitiatorList, plNumberOfInitiators);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.0.6000'
const IID_IVdsIscsiPortalGroup_Value = Guid.initString("fef5f89d-a3dd-4b36-bf28-e7dde045c593");
pub const IID_IVdsIscsiPortalGroup = &IID_IVdsIscsiPortalGroup_Value;
pub const IVdsIscsiPortalGroup = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
GetProperties: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsIscsiPortalGroup,
pPortalGroupProp: ?*VDS_ISCSI_PORTALGROUP_PROP,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsIscsiPortalGroup,
pPortalGroupProp: ?*VDS_ISCSI_PORTALGROUP_PROP,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetTarget: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsIscsiPortalGroup,
ppTarget: ?*?*IVdsIscsiTarget,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsIscsiPortalGroup,
ppTarget: ?*?*IVdsIscsiTarget,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
QueryAssociatedPortals: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsIscsiPortalGroup,
ppEnum: ?*?*IEnumVdsObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsIscsiPortalGroup,
ppEnum: ?*?*IEnumVdsObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
AddPortal: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsIscsiPortalGroup,
portalId: Guid,
ppAsync: ?*?*IVdsAsync,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsIscsiPortalGroup,
portalId: Guid,
ppAsync: ?*?*IVdsAsync,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
RemovePortal: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsIscsiPortalGroup,
portalId: Guid,
ppAsync: ?*?*IVdsAsync,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsIscsiPortalGroup,
portalId: Guid,
ppAsync: ?*?*IVdsAsync,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
Delete: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsIscsiPortalGroup,
ppAsync: ?*?*IVdsAsync,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsIscsiPortalGroup,
ppAsync: ?*?*IVdsAsync,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsIscsiPortalGroup_GetProperties(self: *const T, pPortalGroupProp: ?*VDS_ISCSI_PORTALGROUP_PROP) callconv(.Inline) HRESULT {
return @as(*const IVdsIscsiPortalGroup.VTable, @ptrCast(self.vtable)).GetProperties(@as(*const IVdsIscsiPortalGroup, @ptrCast(self)), pPortalGroupProp);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsIscsiPortalGroup_GetTarget(self: *const T, ppTarget: ?*?*IVdsIscsiTarget) callconv(.Inline) HRESULT {
return @as(*const IVdsIscsiPortalGroup.VTable, @ptrCast(self.vtable)).GetTarget(@as(*const IVdsIscsiPortalGroup, @ptrCast(self)), ppTarget);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsIscsiPortalGroup_QueryAssociatedPortals(self: *const T, ppEnum: ?*?*IEnumVdsObject) callconv(.Inline) HRESULT {
return @as(*const IVdsIscsiPortalGroup.VTable, @ptrCast(self.vtable)).QueryAssociatedPortals(@as(*const IVdsIscsiPortalGroup, @ptrCast(self)), ppEnum);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsIscsiPortalGroup_AddPortal(self: *const T, portalId: Guid, ppAsync: ?*?*IVdsAsync) callconv(.Inline) HRESULT {
return @as(*const IVdsIscsiPortalGroup.VTable, @ptrCast(self.vtable)).AddPortal(@as(*const IVdsIscsiPortalGroup, @ptrCast(self)), portalId, ppAsync);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsIscsiPortalGroup_RemovePortal(self: *const T, portalId: Guid, ppAsync: ?*?*IVdsAsync) callconv(.Inline) HRESULT {
return @as(*const IVdsIscsiPortalGroup.VTable, @ptrCast(self.vtable)).RemovePortal(@as(*const IVdsIscsiPortalGroup, @ptrCast(self)), portalId, ppAsync);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsIscsiPortalGroup_Delete(self: *const T, ppAsync: ?*?*IVdsAsync) callconv(.Inline) HRESULT {
return @as(*const IVdsIscsiPortalGroup.VTable, @ptrCast(self.vtable)).Delete(@as(*const IVdsIscsiPortalGroup, @ptrCast(self)), ppAsync);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.1'
const IID_IVdsStoragePool_Value = Guid.initString("932ca8cf-0eb3-4ba8-9620-22665d7f8450");
pub const IID_IVdsStoragePool = &IID_IVdsStoragePool_Value;
pub const IVdsStoragePool = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
GetProvider: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsStoragePool,
ppProvider: ?*?*IVdsProvider,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsStoragePool,
ppProvider: ?*?*IVdsProvider,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetProperties: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsStoragePool,
pStoragePoolProp: ?*VDS_STORAGE_POOL_PROP,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsStoragePool,
pStoragePoolProp: ?*VDS_STORAGE_POOL_PROP,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetAttributes: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsStoragePool,
pStoragePoolAttributes: ?*VDS_POOL_ATTRIBUTES,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsStoragePool,
pStoragePoolAttributes: ?*VDS_POOL_ATTRIBUTES,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
QueryDriveExtents: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsStoragePool,
ppExtentArray: [*]?*VDS_STORAGE_POOL_DRIVE_EXTENT,
plNumberOfExtents: ?*i32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsStoragePool,
ppExtentArray: [*]?*VDS_STORAGE_POOL_DRIVE_EXTENT,
plNumberOfExtents: ?*i32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
QueryAllocatedLuns: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsStoragePool,
ppEnum: ?*?*IEnumVdsObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsStoragePool,
ppEnum: ?*?*IEnumVdsObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
QueryAllocatedStoragePools: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsStoragePool,
ppEnum: ?*?*IEnumVdsObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsStoragePool,
ppEnum: ?*?*IEnumVdsObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsStoragePool_GetProvider(self: *const T, ppProvider: ?*?*IVdsProvider) callconv(.Inline) HRESULT {
return @as(*const IVdsStoragePool.VTable, @ptrCast(self.vtable)).GetProvider(@as(*const IVdsStoragePool, @ptrCast(self)), ppProvider);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsStoragePool_GetProperties(self: *const T, pStoragePoolProp: ?*VDS_STORAGE_POOL_PROP) callconv(.Inline) HRESULT {
return @as(*const IVdsStoragePool.VTable, @ptrCast(self.vtable)).GetProperties(@as(*const IVdsStoragePool, @ptrCast(self)), pStoragePoolProp);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsStoragePool_GetAttributes(self: *const T, pStoragePoolAttributes: ?*VDS_POOL_ATTRIBUTES) callconv(.Inline) HRESULT {
return @as(*const IVdsStoragePool.VTable, @ptrCast(self.vtable)).GetAttributes(@as(*const IVdsStoragePool, @ptrCast(self)), pStoragePoolAttributes);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsStoragePool_QueryDriveExtents(self: *const T, ppExtentArray: [*]?*VDS_STORAGE_POOL_DRIVE_EXTENT, plNumberOfExtents: ?*i32) callconv(.Inline) HRESULT {
return @as(*const IVdsStoragePool.VTable, @ptrCast(self.vtable)).QueryDriveExtents(@as(*const IVdsStoragePool, @ptrCast(self)), ppExtentArray, plNumberOfExtents);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsStoragePool_QueryAllocatedLuns(self: *const T, ppEnum: ?*?*IEnumVdsObject) callconv(.Inline) HRESULT {
return @as(*const IVdsStoragePool.VTable, @ptrCast(self.vtable)).QueryAllocatedLuns(@as(*const IVdsStoragePool, @ptrCast(self)), ppEnum);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsStoragePool_QueryAllocatedStoragePools(self: *const T, ppEnum: ?*?*IEnumVdsObject) callconv(.Inline) HRESULT {
return @as(*const IVdsStoragePool.VTable, @ptrCast(self.vtable)).QueryAllocatedStoragePools(@as(*const IVdsStoragePool, @ptrCast(self)), ppEnum);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.0.6000'
const IID_IVdsMaintenance_Value = Guid.initString("daebeef3-8523-47ed-a2b9-05cecce2a1ae");
pub const IID_IVdsMaintenance = &IID_IVdsMaintenance_Value;
pub const IVdsMaintenance = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
StartMaintenance: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsMaintenance,
operation: VDS_MAINTENANCE_OPERATION,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsMaintenance,
operation: VDS_MAINTENANCE_OPERATION,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
StopMaintenance: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsMaintenance,
operation: VDS_MAINTENANCE_OPERATION,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsMaintenance,
operation: VDS_MAINTENANCE_OPERATION,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
PulseMaintenance: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsMaintenance,
operation: VDS_MAINTENANCE_OPERATION,
ulCount: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsMaintenance,
operation: VDS_MAINTENANCE_OPERATION,
ulCount: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsMaintenance_StartMaintenance(self: *const T, operation: VDS_MAINTENANCE_OPERATION) callconv(.Inline) HRESULT {
return @as(*const IVdsMaintenance.VTable, @ptrCast(self.vtable)).StartMaintenance(@as(*const IVdsMaintenance, @ptrCast(self)), operation);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsMaintenance_StopMaintenance(self: *const T, operation: VDS_MAINTENANCE_OPERATION) callconv(.Inline) HRESULT {
return @as(*const IVdsMaintenance.VTable, @ptrCast(self.vtable)).StopMaintenance(@as(*const IVdsMaintenance, @ptrCast(self)), operation);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsMaintenance_PulseMaintenance(self: *const T, operation: VDS_MAINTENANCE_OPERATION, ulCount: u32) callconv(.Inline) HRESULT {
return @as(*const IVdsMaintenance.VTable, @ptrCast(self.vtable)).PulseMaintenance(@as(*const IVdsMaintenance, @ptrCast(self)), operation, ulCount);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.0.6000'
const IID_IVdsHwProviderPrivate_Value = Guid.initString("98f17bf3-9f33-4f12-8714-8b4075092c2e");
pub const IID_IVdsHwProviderPrivate = &IID_IVdsHwProviderPrivate_Value;
pub const IVdsHwProviderPrivate = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
QueryIfCreatedLun: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsHwProviderPrivate,
pwszDevicePath: ?PWSTR,
pVdsLunInformation: ?*VDS_LUN_INFORMATION,
pLunId: ?*Guid,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsHwProviderPrivate,
pwszDevicePath: ?PWSTR,
pVdsLunInformation: ?*VDS_LUN_INFORMATION,
pLunId: ?*Guid,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsHwProviderPrivate_QueryIfCreatedLun(self: *const T, pwszDevicePath: ?PWSTR, pVdsLunInformation: ?*VDS_LUN_INFORMATION, pLunId: ?*Guid) callconv(.Inline) HRESULT {
return @as(*const IVdsHwProviderPrivate.VTable, @ptrCast(self.vtable)).QueryIfCreatedLun(@as(*const IVdsHwProviderPrivate, @ptrCast(self)), pwszDevicePath, pVdsLunInformation, pLunId);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.0.6000'
const IID_IVdsHwProviderPrivateMpio_Value = Guid.initString("310a7715-ac2b-4c6f-9827-3d742f351676");
pub const IID_IVdsHwProviderPrivateMpio = &IID_IVdsHwProviderPrivateMpio_Value;
pub const IVdsHwProviderPrivateMpio = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
SetAllPathStatusesFromHbaPort: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsHwProviderPrivateMpio,
hbaPortProp: VDS_HBAPORT_PROP,
status: VDS_PATH_STATUS,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsHwProviderPrivateMpio,
hbaPortProp: VDS_HBAPORT_PROP,
status: VDS_PATH_STATUS,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsHwProviderPrivateMpio_SetAllPathStatusesFromHbaPort(self: *const T, hbaPortProp: VDS_HBAPORT_PROP, status: VDS_PATH_STATUS) callconv(.Inline) HRESULT {
return @as(*const IVdsHwProviderPrivateMpio.VTable, @ptrCast(self.vtable)).SetAllPathStatusesFromHbaPort(@as(*const IVdsHwProviderPrivateMpio, @ptrCast(self)), hbaPortProp, status);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.0.6000'
const IID_IVdsAdmin_Value = Guid.initString("d188e97d-85aa-4d33-abc6-26299a10ffc1");
pub const IID_IVdsAdmin = &IID_IVdsAdmin_Value;
pub const IVdsAdmin = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
RegisterProvider: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsAdmin,
providerId: Guid,
providerClsid: Guid,
pwszName: ?PWSTR,
type: VDS_PROVIDER_TYPE,
pwszMachineName: ?PWSTR,
pwszVersion: ?PWSTR,
guidVersionId: Guid,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsAdmin,
providerId: Guid,
providerClsid: Guid,
pwszName: ?PWSTR,
type: VDS_PROVIDER_TYPE,
pwszMachineName: ?PWSTR,
pwszVersion: ?PWSTR,
guidVersionId: Guid,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
UnregisterProvider: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IVdsAdmin,
providerId: Guid,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IVdsAdmin,
providerId: Guid,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsAdmin_RegisterProvider(self: *const T, providerId: Guid, providerClsid: Guid, pwszName: ?PWSTR, type_: VDS_PROVIDER_TYPE, pwszMachineName: ?PWSTR, pwszVersion: ?PWSTR, guidVersionId: Guid) callconv(.Inline) HRESULT {
return @as(*const IVdsAdmin.VTable, @ptrCast(self.vtable)).RegisterProvider(@as(*const IVdsAdmin, @ptrCast(self)), providerId, providerClsid, pwszName, type_, pwszMachineName, pwszVersion, guidVersionId);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IVdsAdmin_UnregisterProvider(self: *const T, providerId: Guid) callconv(.Inline) HRESULT {
return @as(*const IVdsAdmin.VTable, @ptrCast(self.vtable)).UnregisterProvider(@as(*const IVdsAdmin, @ptrCast(self)), providerId);
}
};}
pub usingnamespace MethodMixin(@This());
};
//--------------------------------------------------------------------------------
// Section: Functions (0)
//--------------------------------------------------------------------------------
//--------------------------------------------------------------------------------
// Section: Unicode Aliases (0)
//--------------------------------------------------------------------------------
const thismodule = @This();
pub usingnamespace switch (@import("../zig.zig").unicode_mode) {
.ansi => struct {
},
.wide => struct {
},
.unspecified => if (@import("builtin").is_test) struct {
} else struct {
},
};
//--------------------------------------------------------------------------------
// Section: Imports (5)
//--------------------------------------------------------------------------------
const Guid = @import("../zig.zig").Guid;
const BOOL = @import("../foundation.zig").BOOL;
const HRESULT = @import("../foundation.zig").HRESULT;
const IUnknown = @import("../system/com.zig").IUnknown;
const PWSTR = @import("../foundation.zig").PWSTR;
test {
@setEvalBranchQuota(
comptime @import("std").meta.declarations(@This()).len * 3
);
// reference all the pub declarations
if (!@import("builtin").is_test) return;
inline for (comptime @import("std").meta.declarations(@This())) |decl| {
_ = @field(@This(), decl.name);
}
}