zigwin32/win32/system/ioctl.zig

6518 lines
226 KiB
Zig

//! NOTE: this file is autogenerated, DO NOT MODIFY
//--------------------------------------------------------------------------------
// Section: Constants (1013)
//--------------------------------------------------------------------------------
pub const IOCTL_STORAGE_BASE = @as(u32, 45);
pub const IOCTL_SCMBUS_BASE = @as(u32, 89);
pub const IOCTL_DISK_BASE = @as(u32, 7);
pub const IOCTL_CHANGER_BASE = @as(u32, 48);
pub const FILE_SPECIAL_ACCESS = @as(u32, 0);
pub const FILE_DEVICE_UNKNOWN = @as(u32, 34);
pub const GUID_DEVINTERFACE_DISK = Guid.initString("53f56307-b6bf-11d0-94f2-00a0c91efb8b");
pub const GUID_DEVINTERFACE_CDROM = Guid.initString("53f56308-b6bf-11d0-94f2-00a0c91efb8b");
pub const GUID_DEVINTERFACE_PARTITION = Guid.initString("53f5630a-b6bf-11d0-94f2-00a0c91efb8b");
pub const GUID_DEVINTERFACE_TAPE = Guid.initString("53f5630b-b6bf-11d0-94f2-00a0c91efb8b");
pub const GUID_DEVINTERFACE_WRITEONCEDISK = Guid.initString("53f5630c-b6bf-11d0-94f2-00a0c91efb8b");
pub const GUID_DEVINTERFACE_VOLUME = Guid.initString("53f5630d-b6bf-11d0-94f2-00a0c91efb8b");
pub const GUID_DEVINTERFACE_MEDIUMCHANGER = Guid.initString("53f56310-b6bf-11d0-94f2-00a0c91efb8b");
pub const GUID_DEVINTERFACE_FLOPPY = Guid.initString("53f56311-b6bf-11d0-94f2-00a0c91efb8b");
pub const GUID_DEVINTERFACE_CDCHANGER = Guid.initString("53f56312-b6bf-11d0-94f2-00a0c91efb8b");
pub const GUID_DEVINTERFACE_STORAGEPORT = Guid.initString("2accfe60-c130-11d2-b082-00a0c91efb8b");
pub const GUID_DEVINTERFACE_VMLUN = Guid.initString("6f416619-9f29-42a5-b20b-37e219ca02b0");
pub const GUID_DEVINTERFACE_SES = Guid.initString("1790c9ec-47d5-4df3-b5af-9adf3cf23e48");
pub const GUID_DEVINTERFACE_ZNSDISK = Guid.initString("b87941c5-ffdb-43c7-b6b1-20b632f0b109");
pub const GUID_DEVINTERFACE_SERVICE_VOLUME = Guid.initString("6ead3d82-25ec-46bc-b7fd-c1f0df8f5037");
pub const GUID_DEVINTERFACE_HIDDEN_VOLUME = Guid.initString("7f108a28-9833-4b3b-b780-2c6b5fa5c062");
pub const GUID_DEVINTERFACE_UNIFIED_ACCESS_RPMB = Guid.initString("27447c21-bcc3-4d07-a05b-a3395bb4eee7");
pub const GUID_DEVICEDUMP_STORAGE_DEVICE = Guid.initString("d8e2592f-1aab-4d56-a746-1f7585df40f4");
pub const GUID_DEVICEDUMP_DRIVER_STORAGE_PORT = Guid.initString("da82441d-7142-4bc1-b844-0807c5a4b67f");
pub const DEVPKEY_Storage_Portable = PROPERTYKEY { .fmtid = Guid.initString("4d1ebee8-0803-4774-9842-b77db50265e9"), .pid = 2 };
pub const DEVPKEY_Storage_Removable_Media = PROPERTYKEY { .fmtid = Guid.initString("4d1ebee8-0803-4774-9842-b77db50265e9"), .pid = 3 };
pub const DEVPKEY_Storage_System_Critical = PROPERTYKEY { .fmtid = Guid.initString("4d1ebee8-0803-4774-9842-b77db50265e9"), .pid = 4 };
pub const DEVPKEY_Storage_Disk_Number = PROPERTYKEY { .fmtid = Guid.initString("4d1ebee8-0803-4774-9842-b77db50265e9"), .pid = 5 };
pub const DEVPKEY_Storage_Partition_Number = PROPERTYKEY { .fmtid = Guid.initString("4d1ebee8-0803-4774-9842-b77db50265e9"), .pid = 6 };
pub const DEVPKEY_Storage_Mbr_Type = PROPERTYKEY { .fmtid = Guid.initString("4d1ebee8-0803-4774-9842-b77db50265e9"), .pid = 7 };
pub const DEVPKEY_Storage_Gpt_Type = PROPERTYKEY { .fmtid = Guid.initString("4d1ebee8-0803-4774-9842-b77db50265e9"), .pid = 8 };
pub const DEVPKEY_Storage_Gpt_Name = PROPERTYKEY { .fmtid = Guid.initString("4d1ebee8-0803-4774-9842-b77db50265e9"), .pid = 9 };
pub const IOCTL_STORAGE_CHECK_VERIFY = @as(u32, 2967552);
pub const IOCTL_STORAGE_CHECK_VERIFY2 = @as(u32, 2951168);
pub const IOCTL_STORAGE_MEDIA_REMOVAL = @as(u32, 2967556);
pub const IOCTL_STORAGE_EJECT_MEDIA = @as(u32, 2967560);
pub const IOCTL_STORAGE_LOAD_MEDIA = @as(u32, 2967564);
pub const IOCTL_STORAGE_LOAD_MEDIA2 = @as(u32, 2951180);
pub const IOCTL_STORAGE_RESERVE = @as(u32, 2967568);
pub const IOCTL_STORAGE_RELEASE = @as(u32, 2967572);
pub const IOCTL_STORAGE_FIND_NEW_DEVICES = @as(u32, 2967576);
pub const IOCTL_STORAGE_MANAGE_BYPASS_IO = @as(u32, 2951360);
pub const IOCTL_STORAGE_EJECTION_CONTROL = @as(u32, 2951488);
pub const IOCTL_STORAGE_MCN_CONTROL = @as(u32, 2951492);
pub const IOCTL_STORAGE_GET_MEDIA_TYPES = @as(u32, 2952192);
pub const IOCTL_STORAGE_GET_MEDIA_TYPES_EX = @as(u32, 2952196);
pub const IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER = @as(u32, 2952208);
pub const IOCTL_STORAGE_GET_HOTPLUG_INFO = @as(u32, 2952212);
pub const IOCTL_STORAGE_SET_HOTPLUG_INFO = @as(u32, 3001368);
pub const IOCTL_STORAGE_RESET_BUS = @as(u32, 2969600);
pub const IOCTL_STORAGE_RESET_DEVICE = @as(u32, 2969604);
pub const IOCTL_STORAGE_BREAK_RESERVATION = @as(u32, 2969620);
pub const IOCTL_STORAGE_PERSISTENT_RESERVE_IN = @as(u32, 2969624);
pub const IOCTL_STORAGE_PERSISTENT_RESERVE_OUT = @as(u32, 3002396);
pub const IOCTL_STORAGE_GET_DEVICE_NUMBER = @as(u32, 2953344);
pub const IOCTL_STORAGE_GET_DEVICE_NUMBER_EX = @as(u32, 2953348);
pub const IOCTL_STORAGE_PREDICT_FAILURE = @as(u32, 2953472);
pub const IOCTL_STORAGE_FAILURE_PREDICTION_CONFIG = @as(u32, 2953476);
pub const IOCTL_STORAGE_GET_COUNTERS = @as(u32, 2953480);
pub const IOCTL_STORAGE_READ_CAPACITY = @as(u32, 2969920);
pub const IOCTL_STORAGE_GET_DEVICE_TELEMETRY = @as(u32, 3002816);
pub const IOCTL_STORAGE_DEVICE_TELEMETRY_NOTIFY = @as(u32, 3002820);
pub const IOCTL_STORAGE_DEVICE_TELEMETRY_QUERY_CAPS = @as(u32, 3002824);
pub const IOCTL_STORAGE_GET_DEVICE_TELEMETRY_RAW = @as(u32, 3002828);
pub const IOCTL_STORAGE_SET_TEMPERATURE_THRESHOLD = @as(u32, 3002880);
pub const IOCTL_STORAGE_PROTOCOL_COMMAND = @as(u32, 3003328);
pub const IOCTL_STORAGE_SET_PROPERTY = @as(u32, 2987004);
pub const IOCTL_STORAGE_QUERY_PROPERTY = @as(u32, 2954240);
pub const IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES = @as(u32, 2987012);
pub const IOCTL_STORAGE_GET_LB_PROVISIONING_MAP_RESOURCES = @as(u32, 2970632);
pub const IOCTL_STORAGE_REINITIALIZE_MEDIA = @as(u32, 2987584);
pub const IOCTL_STORAGE_GET_BC_PROPERTIES = @as(u32, 2971648);
pub const IOCTL_STORAGE_ALLOCATE_BC_STREAM = @as(u32, 3004420);
pub const IOCTL_STORAGE_FREE_BC_STREAM = @as(u32, 3004424);
pub const IOCTL_STORAGE_CHECK_PRIORITY_HINT_SUPPORT = @as(u32, 2955392);
pub const IOCTL_STORAGE_START_DATA_INTEGRITY_CHECK = @as(u32, 3004548);
pub const IOCTL_STORAGE_STOP_DATA_INTEGRITY_CHECK = @as(u32, 3004552);
pub const OBSOLETE_IOCTL_STORAGE_RESET_BUS = @as(u32, 3002368);
pub const OBSOLETE_IOCTL_STORAGE_RESET_DEVICE = @as(u32, 3002372);
pub const IOCTL_STORAGE_FIRMWARE_GET_INFO = @as(u32, 2956288);
pub const IOCTL_STORAGE_FIRMWARE_DOWNLOAD = @as(u32, 3005444);
pub const IOCTL_STORAGE_FIRMWARE_ACTIVATE = @as(u32, 3005448);
pub const IOCTL_STORAGE_ENABLE_IDLE_POWER = @as(u32, 2956416);
pub const IOCTL_STORAGE_GET_IDLE_POWERUP_REASON = @as(u32, 2956420);
pub const IOCTL_STORAGE_POWER_ACTIVE = @as(u32, 2956424);
pub const IOCTL_STORAGE_POWER_IDLE = @as(u32, 2956428);
pub const IOCTL_STORAGE_EVENT_NOTIFICATION = @as(u32, 2956432);
pub const IOCTL_STORAGE_DEVICE_POWER_CAP = @as(u32, 2956436);
pub const IOCTL_STORAGE_RPMB_COMMAND = @as(u32, 2956440);
pub const IOCTL_STORAGE_ATTRIBUTE_MANAGEMENT = @as(u32, 3005596);
pub const IOCTL_STORAGE_DIAGNOSTIC = @as(u32, 2956448);
pub const IOCTL_STORAGE_GET_PHYSICAL_ELEMENT_STATUS = @as(u32, 2956452);
pub const IOCTL_STORAGE_REMOVE_ELEMENT_AND_TRUNCATE = @as(u32, 2956480);
pub const IOCTL_STORAGE_GET_DEVICE_INTERNAL_LOG = @as(u32, 2956484);
pub const STORAGE_DEVICE_FLAGS_RANDOM_DEVICEGUID_REASON_CONFLICT = @as(u32, 1);
pub const STORAGE_DEVICE_FLAGS_RANDOM_DEVICEGUID_REASON_NOHWID = @as(u32, 2);
pub const STORAGE_DEVICE_FLAGS_PAGE_83_DEVICEGUID = @as(u32, 4);
pub const RECOVERED_WRITES_VALID = @as(u32, 1);
pub const UNRECOVERED_WRITES_VALID = @as(u32, 2);
pub const RECOVERED_READS_VALID = @as(u32, 4);
pub const UNRECOVERED_READS_VALID = @as(u32, 8);
pub const WRITE_COMPRESSION_INFO_VALID = @as(u32, 16);
pub const READ_COMPRESSION_INFO_VALID = @as(u32, 32);
pub const TAPE_RETURN_STATISTICS = @as(i32, 0);
pub const TAPE_RETURN_ENV_INFO = @as(i32, 1);
pub const TAPE_RESET_STATISTICS = @as(i32, 2);
pub const MEDIA_ERASEABLE = @as(u32, 1);
pub const MEDIA_WRITE_ONCE = @as(u32, 2);
pub const MEDIA_READ_ONLY = @as(u32, 4);
pub const MEDIA_READ_WRITE = @as(u32, 8);
pub const MEDIA_WRITE_PROTECTED = @as(u32, 256);
pub const MEDIA_CURRENTLY_MOUNTED = @as(u32, 2147483648);
pub const STORAGE_FAILURE_PREDICTION_CONFIG_V1 = @as(u32, 1);
pub const SRB_TYPE_SCSI_REQUEST_BLOCK = @as(u32, 0);
pub const SRB_TYPE_STORAGE_REQUEST_BLOCK = @as(u32, 1);
pub const STORAGE_ADDRESS_TYPE_BTL8 = @as(u32, 0);
pub const STORAGE_RPMB_DESCRIPTOR_VERSION_1 = @as(u32, 1);
pub const STORAGE_RPMB_MINIMUM_RELIABLE_WRITE_SIZE = @as(u32, 512);
pub const STORAGE_CRYPTO_CAPABILITY_VERSION_1 = @as(u32, 1);
pub const STORAGE_CRYPTO_DESCRIPTOR_VERSION_1 = @as(u32, 1);
pub const STORAGE_TIER_NAME_LENGTH = @as(u32, 256);
pub const STORAGE_TIER_DESCRIPTION_LENGTH = @as(u32, 512);
pub const STORAGE_TIER_FLAG_NO_SEEK_PENALTY = @as(u32, 131072);
pub const STORAGE_TIER_FLAG_WRITE_BACK_CACHE = @as(u32, 2097152);
pub const STORAGE_TIER_FLAG_READ_CACHE = @as(u32, 4194304);
pub const STORAGE_TIER_FLAG_PARITY = @as(u32, 8388608);
pub const STORAGE_TIER_FLAG_SMR = @as(u32, 16777216);
pub const STORAGE_TEMPERATURE_VALUE_NOT_REPORTED = @as(u32, 32768);
pub const STORAGE_TEMPERATURE_THRESHOLD_FLAG_ADAPTER_REQUEST = @as(u32, 1);
pub const STORAGE_COMPONENT_ROLE_CACHE = @as(u32, 1);
pub const STORAGE_COMPONENT_ROLE_TIERING = @as(u32, 2);
pub const STORAGE_COMPONENT_ROLE_DATA = @as(u32, 4);
pub const STORAGE_ATTRIBUTE_BYTE_ADDRESSABLE_IO = @as(u32, 1);
pub const STORAGE_ATTRIBUTE_BLOCK_IO = @as(u32, 2);
pub const STORAGE_ATTRIBUTE_DYNAMIC_PERSISTENCE = @as(u32, 4);
pub const STORAGE_ATTRIBUTE_VOLATILE = @as(u32, 8);
pub const STORAGE_ATTRIBUTE_ASYNC_EVENT_NOTIFICATION = @as(u32, 16);
pub const STORAGE_ATTRIBUTE_PERF_SIZE_INDEPENDENT = @as(u32, 32);
pub const STORAGE_DEVICE_MAX_OPERATIONAL_STATUS = @as(u32, 16);
pub const STORAGE_ADAPTER_SERIAL_NUMBER_V1_MAX_LENGTH = @as(u32, 128);
pub const DeviceDsmActionFlag_NonDestructive = @as(u32, 2147483648);
pub const DEVICE_DSM_FLAG_ENTIRE_DATA_SET_RANGE = @as(u32, 1);
pub const DEVICE_DSM_FLAG_TRIM_NOT_FS_ALLOCATED = @as(u32, 2147483648);
pub const DEVICE_DSM_FLAG_TRIM_BYPASS_RZAT = @as(u32, 1073741824);
pub const DEVICE_DSM_NOTIFY_FLAG_BEGIN = @as(u32, 1);
pub const DEVICE_DSM_NOTIFY_FLAG_END = @as(u32, 2);
pub const STORAGE_OFFLOAD_MAX_TOKEN_LENGTH = @as(u32, 512);
pub const STORAGE_OFFLOAD_TOKEN_ID_LENGTH = @as(u32, 504);
pub const STORAGE_OFFLOAD_TOKEN_TYPE_ZERO_DATA = @as(u32, 4294901761);
pub const STORAGE_OFFLOAD_READ_RANGE_TRUNCATED = @as(u32, 1);
pub const STORAGE_OFFLOAD_WRITE_RANGE_TRUNCATED = @as(u32, 1);
pub const STORAGE_OFFLOAD_TOKEN_INVALID = @as(u32, 2);
pub const DEVICE_DSM_FLAG_ALLOCATION_CONSOLIDATEABLE_ONLY = @as(u32, 1073741824);
pub const DEVICE_DSM_PARAMETERS_V1 = @as(u32, 1);
pub const DEVICE_DATA_SET_LBP_STATE_PARAMETERS_VERSION_V1 = @as(u32, 1);
pub const DEVICE_DSM_FLAG_REPAIR_INPUT_TOPOLOGY_ID_PRESENT = @as(u32, 1073741824);
pub const DEVICE_DSM_FLAG_REPAIR_OUTPUT_PARITY_EXTENT = @as(u32, 536870912);
pub const DEVICE_DSM_FLAG_SCRUB_SKIP_IN_SYNC = @as(u32, 268435456);
pub const DEVICE_DSM_FLAG_SCRUB_OUTPUT_PARITY_EXTENT = @as(u32, 536870912);
pub const DEVICE_DSM_FLAG_PHYSICAL_ADDRESSES_OMIT_TOTAL_RANGES = @as(u32, 268435456);
pub const DEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT_V1 = @as(u32, 1);
pub const DEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT_VERSION_V1 = @as(u32, 1);
pub const DEVICE_STORAGE_NO_ERRORS = @as(u32, 1);
pub const DEVICE_DSM_RANGE_ERROR_OUTPUT_V1 = @as(u32, 1);
pub const DEVICE_DSM_RANGE_ERROR_INFO_VERSION_V1 = @as(u32, 1);
pub const IOCTL_STORAGE_BC_VERSION = @as(u32, 1);
pub const STORAGE_PRIORITY_HINT_SUPPORTED = @as(u32, 1);
pub const STORAGE_DIAGNOSTIC_FLAG_ADAPTER_REQUEST = @as(u32, 1);
pub const ERROR_HISTORY_DIRECTORY_ENTRY_DEFAULT_COUNT = @as(u32, 8);
pub const DEVICEDUMP_STRUCTURE_VERSION_V1 = @as(u32, 1);
pub const DEVICEDUMP_MAX_IDSTRING = @as(u32, 32);
pub const MAX_FW_BUCKET_ID_LENGTH = @as(u32, 132);
pub const STORAGE_CRASH_TELEMETRY_REGKEY = "\\Registry\\Machine\\System\\CurrentControlSet\\Control\\CrashControl\\StorageTelemetry";
pub const STORAGE_DEVICE_TELEMETRY_REGKEY = "\\Registry\\Machine\\System\\CurrentControlSet\\Control\\Storage\\StorageTelemetry";
pub const DDUMP_FLAG_DATA_READ_FROM_DEVICE = @as(u32, 1);
pub const FW_ISSUEID_NO_ISSUE = @as(u32, 0);
pub const FW_ISSUEID_UNKNOWN = @as(u32, 4294967295);
pub const TC_PUBLIC_DEVICEDUMP_CONTENT_SMART = @as(u32, 1);
pub const TC_PUBLIC_DEVICEDUMP_CONTENT_GPLOG = @as(u32, 2);
pub const TC_PUBLIC_DEVICEDUMP_CONTENT_GPLOG_MAX = @as(u32, 16);
pub const TC_DEVICEDUMP_SUBSECTION_DESC_LENGTH = @as(u32, 16);
pub const TC_PUBLIC_DATA_TYPE_ATAGP = "ATAGPLogPages";
pub const TC_PUBLIC_DATA_TYPE_ATASMART = "ATASMARTPages";
pub const CDB_SIZE = @as(u32, 16);
pub const TELEMETRY_COMMAND_SIZE = @as(u32, 16);
pub const DEVICEDUMP_CAP_PRIVATE_SECTION = @as(u32, 1);
pub const DEVICEDUMP_CAP_RESTRICTED_SECTION = @as(u32, 2);
pub const STORAGE_IDLE_POWERUP_REASON_VERSION_V1 = @as(u32, 1);
pub const STORAGE_DEVICE_POWER_CAP_VERSION_V1 = @as(u32, 1);
pub const STORAGE_EVENT_NOTIFICATION_VERSION_V1 = @as(u32, 1);
pub const STORAGE_EVENT_MEDIA_STATUS = @as(u64, 1);
pub const STORAGE_EVENT_DEVICE_STATUS = @as(u64, 2);
pub const STORAGE_EVENT_DEVICE_OPERATION = @as(u64, 4);
pub const READ_COPY_NUMBER_KEY = @as(u32, 1380142592);
pub const READ_COPY_NUMBER_BYPASS_CACHE_FLAG = @as(u32, 256);
pub const STORAGE_HW_FIRMWARE_REQUEST_FLAG_CONTROLLER = @as(u32, 1);
pub const STORAGE_HW_FIRMWARE_REQUEST_FLAG_LAST_SEGMENT = @as(u32, 2);
pub const STORAGE_HW_FIRMWARE_REQUEST_FLAG_FIRST_SEGMENT = @as(u32, 4);
pub const STORAGE_HW_FIRMWARE_REQUEST_FLAG_SWITCH_TO_EXISTING_FIRMWARE = @as(u32, 2147483648);
pub const STORAGE_HW_FIRMWARE_INVALID_SLOT = @as(u32, 255);
pub const STORAGE_HW_FIRMWARE_REVISION_LENGTH = @as(u32, 16);
pub const STORAGE_PROTOCOL_STRUCTURE_VERSION = @as(u32, 1);
pub const STORAGE_PROTOCOL_COMMAND_FLAG_ADAPTER_REQUEST = @as(u32, 2147483648);
pub const STORAGE_PROTOCOL_STATUS_PENDING = @as(u32, 0);
pub const STORAGE_PROTOCOL_STATUS_SUCCESS = @as(u32, 1);
pub const STORAGE_PROTOCOL_STATUS_ERROR = @as(u32, 2);
pub const STORAGE_PROTOCOL_STATUS_INVALID_REQUEST = @as(u32, 3);
pub const STORAGE_PROTOCOL_STATUS_NO_DEVICE = @as(u32, 4);
pub const STORAGE_PROTOCOL_STATUS_BUSY = @as(u32, 5);
pub const STORAGE_PROTOCOL_STATUS_DATA_OVERRUN = @as(u32, 6);
pub const STORAGE_PROTOCOL_STATUS_INSUFFICIENT_RESOURCES = @as(u32, 7);
pub const STORAGE_PROTOCOL_STATUS_THROTTLED_REQUEST = @as(u32, 8);
pub const STORAGE_PROTOCOL_STATUS_NOT_SUPPORTED = @as(u32, 255);
pub const STORAGE_PROTOCOL_COMMAND_LENGTH_NVME = @as(u32, 64);
pub const STORAGE_PROTOCOL_SPECIFIC_NVME_ADMIN_COMMAND = @as(u32, 1);
pub const STORAGE_PROTOCOL_SPECIFIC_NVME_NVM_COMMAND = @as(u32, 2);
pub const STORATTRIBUTE_NONE = @as(u32, 0);
pub const STORATTRIBUTE_MANAGEMENT_STATE = @as(u32, 1);
pub const STORAGE_SUPPORTED_FEATURES_BYPASS_IO = @as(u32, 1);
pub const STORAGE_SUPPORTED_FEATURES_MASK = @as(u32, 1);
pub const GUID_DEVINTERFACE_SCM_PHYSICAL_DEVICE = Guid.initString("4283609d-4dc2-43be-bbb4-4f15dfce2c61");
pub const GUID_SCM_PD_HEALTH_NOTIFICATION = Guid.initString("9da2d386-72f5-4ee3-8155-eca0678e3b06");
pub const GUID_SCM_PD_PASSTHROUGH_INVDIMM = Guid.initString("4309ac30-0d11-11e4-9191-0800200c9a66");
pub const GUID_DEVINTERFACE_COMPORT = Guid.initString("86e0d1e0-8089-11d0-9ce4-08003e301f73");
pub const GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR = Guid.initString("4d36e978-e325-11ce-bfc1-08002be10318");
pub const FILE_DEVICE_BEEP = @as(u32, 1);
pub const FILE_DEVICE_CD_ROM_FILE_SYSTEM = @as(u32, 3);
pub const FILE_DEVICE_CONTROLLER = @as(u32, 4);
pub const FILE_DEVICE_DATALINK = @as(u32, 5);
pub const FILE_DEVICE_DFS = @as(u32, 6);
pub const FILE_DEVICE_DISK_FILE_SYSTEM = @as(u32, 8);
pub const FILE_DEVICE_FILE_SYSTEM = @as(u32, 9);
pub const FILE_DEVICE_INPORT_PORT = @as(u32, 10);
pub const FILE_DEVICE_KEYBOARD = @as(u32, 11);
pub const FILE_DEVICE_MAILSLOT = @as(u32, 12);
pub const FILE_DEVICE_MIDI_IN = @as(u32, 13);
pub const FILE_DEVICE_MIDI_OUT = @as(u32, 14);
pub const FILE_DEVICE_MOUSE = @as(u32, 15);
pub const FILE_DEVICE_MULTI_UNC_PROVIDER = @as(u32, 16);
pub const FILE_DEVICE_NAMED_PIPE = @as(u32, 17);
pub const FILE_DEVICE_NETWORK = @as(u32, 18);
pub const FILE_DEVICE_NETWORK_BROWSER = @as(u32, 19);
pub const FILE_DEVICE_NETWORK_FILE_SYSTEM = @as(u32, 20);
pub const FILE_DEVICE_NULL = @as(u32, 21);
pub const FILE_DEVICE_PARALLEL_PORT = @as(u32, 22);
pub const FILE_DEVICE_PHYSICAL_NETCARD = @as(u32, 23);
pub const FILE_DEVICE_PRINTER = @as(u32, 24);
pub const FILE_DEVICE_SCANNER = @as(u32, 25);
pub const FILE_DEVICE_SERIAL_MOUSE_PORT = @as(u32, 26);
pub const FILE_DEVICE_SERIAL_PORT = @as(u32, 27);
pub const FILE_DEVICE_SCREEN = @as(u32, 28);
pub const FILE_DEVICE_SOUND = @as(u32, 29);
pub const FILE_DEVICE_STREAMS = @as(u32, 30);
pub const FILE_DEVICE_TAPE_FILE_SYSTEM = @as(u32, 32);
pub const FILE_DEVICE_TRANSPORT = @as(u32, 33);
pub const FILE_DEVICE_VIDEO = @as(u32, 35);
pub const FILE_DEVICE_VIRTUAL_DISK = @as(u32, 36);
pub const FILE_DEVICE_WAVE_IN = @as(u32, 37);
pub const FILE_DEVICE_WAVE_OUT = @as(u32, 38);
pub const FILE_DEVICE_8042_PORT = @as(u32, 39);
pub const FILE_DEVICE_NETWORK_REDIRECTOR = @as(u32, 40);
pub const FILE_DEVICE_BATTERY = @as(u32, 41);
pub const FILE_DEVICE_BUS_EXTENDER = @as(u32, 42);
pub const FILE_DEVICE_MODEM = @as(u32, 43);
pub const FILE_DEVICE_VDM = @as(u32, 44);
pub const FILE_DEVICE_MASS_STORAGE = @as(u32, 45);
pub const FILE_DEVICE_SMB = @as(u32, 46);
pub const FILE_DEVICE_KS = @as(u32, 47);
pub const FILE_DEVICE_CHANGER = @as(u32, 48);
pub const FILE_DEVICE_ACPI = @as(u32, 50);
pub const FILE_DEVICE_FULLSCREEN_VIDEO = @as(u32, 52);
pub const FILE_DEVICE_DFS_FILE_SYSTEM = @as(u32, 53);
pub const FILE_DEVICE_DFS_VOLUME = @as(u32, 54);
pub const FILE_DEVICE_SERENUM = @as(u32, 55);
pub const FILE_DEVICE_TERMSRV = @as(u32, 56);
pub const FILE_DEVICE_KSEC = @as(u32, 57);
pub const FILE_DEVICE_FIPS = @as(u32, 58);
pub const FILE_DEVICE_INFINIBAND = @as(u32, 59);
pub const FILE_DEVICE_VMBUS = @as(u32, 62);
pub const FILE_DEVICE_CRYPT_PROVIDER = @as(u32, 63);
pub const FILE_DEVICE_WPD = @as(u32, 64);
pub const FILE_DEVICE_BLUETOOTH = @as(u32, 65);
pub const FILE_DEVICE_MT_COMPOSITE = @as(u32, 66);
pub const FILE_DEVICE_MT_TRANSPORT = @as(u32, 67);
pub const FILE_DEVICE_BIOMETRIC = @as(u32, 68);
pub const FILE_DEVICE_PMI = @as(u32, 69);
pub const FILE_DEVICE_EHSTOR = @as(u32, 70);
pub const FILE_DEVICE_DEVAPI = @as(u32, 71);
pub const FILE_DEVICE_GPIO = @as(u32, 72);
pub const FILE_DEVICE_USBEX = @as(u32, 73);
pub const FILE_DEVICE_CONSOLE = @as(u32, 80);
pub const FILE_DEVICE_NFP = @as(u32, 81);
pub const FILE_DEVICE_SYSENV = @as(u32, 82);
pub const FILE_DEVICE_VIRTUAL_BLOCK = @as(u32, 83);
pub const FILE_DEVICE_POINT_OF_SERVICE = @as(u32, 84);
pub const FILE_DEVICE_STORAGE_REPLICATION = @as(u32, 85);
pub const FILE_DEVICE_TRUST_ENV = @as(u32, 86);
pub const FILE_DEVICE_UCM = @as(u32, 87);
pub const FILE_DEVICE_UCMTCPCI = @as(u32, 88);
pub const FILE_DEVICE_PERSISTENT_MEMORY = @as(u32, 89);
pub const FILE_DEVICE_NVDIMM = @as(u32, 90);
pub const FILE_DEVICE_HOLOGRAPHIC = @as(u32, 91);
pub const FILE_DEVICE_SDFXHCI = @as(u32, 92);
pub const FILE_DEVICE_UCMUCSI = @as(u32, 93);
pub const FILE_DEVICE_PRM = @as(u32, 94);
pub const FILE_DEVICE_EVENT_COLLECTOR = @as(u32, 95);
pub const FILE_DEVICE_USB4 = @as(u32, 96);
pub const FILE_DEVICE_SOUNDWIRE = @as(u32, 97);
pub const METHOD_BUFFERED = @as(u32, 0);
pub const METHOD_IN_DIRECT = @as(u32, 1);
pub const METHOD_OUT_DIRECT = @as(u32, 2);
pub const METHOD_NEITHER = @as(u32, 3);
pub const METHOD_DIRECT_TO_HARDWARE = @as(u32, 1);
pub const METHOD_DIRECT_FROM_HARDWARE = @as(u32, 2);
pub const FILE_ANY_ACCESS = @as(u32, 0);
pub const FILE_READ_ACCESS = @as(u32, 1);
pub const FILE_WRITE_ACCESS = @as(u32, 2);
pub const STORAGE_DEVICE_NUMA_NODE_UNKNOWN = @as(u32, 4294967295);
pub const IOCTL_SCMBUS_DEVICE_FUNCTION_BASE = @as(u32, 0);
pub const IOCTL_SCM_LOGICAL_DEVICE_FUNCTION_BASE = @as(u32, 768);
pub const IOCTL_SCM_PHYSICAL_DEVICE_FUNCTION_BASE = @as(u32, 1536);
pub const IOCTL_SCM_BUS_GET_LOGICAL_DEVICES = @as(u32, 5832704);
pub const IOCTL_SCM_BUS_GET_PHYSICAL_DEVICES = @as(u32, 5832708);
pub const IOCTL_SCM_BUS_GET_REGIONS = @as(u32, 5832712);
pub const IOCTL_SCM_BUS_QUERY_PROPERTY = @as(u32, 5832716);
pub const IOCTL_SCM_BUS_SET_PROPERTY = @as(u32, 5865492);
pub const IOCTL_SCM_BUS_RUNTIME_FW_ACTIVATE = @as(u32, 5865488);
pub const IOCTL_SCM_LD_GET_INTERLEAVE_SET = @as(u32, 5835776);
pub const IOCTL_SCM_PD_QUERY_PROPERTY = @as(u32, 5838848);
pub const IOCTL_SCM_PD_FIRMWARE_DOWNLOAD = @as(u32, 5871620);
pub const IOCTL_SCM_PD_FIRMWARE_ACTIVATE = @as(u32, 5871624);
pub const IOCTL_SCM_PD_PASSTHROUGH = @as(u32, 5888012);
pub const IOCTL_SCM_PD_UPDATE_MANAGEMENT_STATUS = @as(u32, 5838864);
pub const IOCTL_SCM_PD_REINITIALIZE_MEDIA = @as(u32, 5871636);
pub const IOCTL_SCM_PD_SET_PROPERTY = @as(u32, 5871640);
pub const SCM_MAX_SYMLINK_LEN_IN_CHARS = @as(u32, 256);
pub const MAX_INTERFACE_CODES = @as(u32, 8);
pub const SCM_PD_FIRMWARE_REVISION_LENGTH_BYTES = @as(u32, 32);
pub const SCM_PD_PROPERTY_NAME_LENGTH_IN_CHARS = @as(u32, 128);
pub const SCM_PD_MAX_OPERATIONAL_STATUS = @as(u32, 16);
pub const SCM_PD_FIRMWARE_LAST_DOWNLOAD = @as(u32, 1);
pub const IOCTL_DISK_GET_DRIVE_GEOMETRY = @as(u32, 458752);
pub const IOCTL_DISK_GET_PARTITION_INFO = @as(u32, 475140);
pub const IOCTL_DISK_SET_PARTITION_INFO = @as(u32, 507912);
pub const IOCTL_DISK_GET_DRIVE_LAYOUT = @as(u32, 475148);
pub const IOCTL_DISK_SET_DRIVE_LAYOUT = @as(u32, 507920);
pub const IOCTL_DISK_VERIFY = @as(u32, 458772);
pub const IOCTL_DISK_FORMAT_TRACKS = @as(u32, 507928);
pub const IOCTL_DISK_REASSIGN_BLOCKS = @as(u32, 507932);
pub const IOCTL_DISK_PERFORMANCE = @as(u32, 458784);
pub const IOCTL_DISK_IS_WRITABLE = @as(u32, 458788);
pub const IOCTL_DISK_LOGGING = @as(u32, 458792);
pub const IOCTL_DISK_FORMAT_TRACKS_EX = @as(u32, 507948);
pub const IOCTL_DISK_HISTOGRAM_STRUCTURE = @as(u32, 458800);
pub const IOCTL_DISK_HISTOGRAM_DATA = @as(u32, 458804);
pub const IOCTL_DISK_HISTOGRAM_RESET = @as(u32, 458808);
pub const IOCTL_DISK_REQUEST_STRUCTURE = @as(u32, 458812);
pub const IOCTL_DISK_REQUEST_DATA = @as(u32, 458816);
pub const IOCTL_DISK_PERFORMANCE_OFF = @as(u32, 458848);
pub const IOCTL_DISK_CONTROLLER_NUMBER = @as(u32, 458820);
pub const SMART_GET_VERSION = @as(u32, 475264);
pub const SMART_SEND_DRIVE_COMMAND = @as(u32, 508036);
pub const SMART_RCV_DRIVE_DATA = @as(u32, 508040);
pub const SMART_RCV_DRIVE_DATA_EX = @as(u32, 458892);
pub const IOCTL_DISK_GET_PARTITION_INFO_EX = @as(u32, 458824);
pub const IOCTL_DISK_SET_PARTITION_INFO_EX = @as(u32, 507980);
pub const IOCTL_DISK_GET_DRIVE_LAYOUT_EX = @as(u32, 458832);
pub const IOCTL_DISK_SET_DRIVE_LAYOUT_EX = @as(u32, 507988);
pub const IOCTL_DISK_CREATE_DISK = @as(u32, 507992);
pub const IOCTL_DISK_GET_LENGTH_INFO = @as(u32, 475228);
pub const IOCTL_DISK_GET_DRIVE_GEOMETRY_EX = @as(u32, 458912);
pub const IOCTL_DISK_REASSIGN_BLOCKS_EX = @as(u32, 508068);
pub const IOCTL_DISK_UPDATE_DRIVE_SIZE = @as(u32, 508104);
pub const IOCTL_DISK_GROW_PARTITION = @as(u32, 508112);
pub const IOCTL_DISK_GET_CACHE_INFORMATION = @as(u32, 475348);
pub const IOCTL_DISK_SET_CACHE_INFORMATION = @as(u32, 508120);
pub const IOCTL_DISK_GET_WRITE_CACHE_STATE = @as(u32, 475356);
pub const OBSOLETE_DISK_GET_WRITE_CACHE_STATE = @as(u32, 475356);
pub const IOCTL_DISK_DELETE_DRIVE_LAYOUT = @as(u32, 508160);
pub const IOCTL_DISK_UPDATE_PROPERTIES = @as(u32, 459072);
pub const IOCTL_DISK_FORMAT_DRIVE = @as(u32, 508876);
pub const IOCTL_DISK_SENSE_DEVICE = @as(u32, 459744);
pub const IOCTL_DISK_CHECK_VERIFY = @as(u32, 477184);
pub const IOCTL_DISK_MEDIA_REMOVAL = @as(u32, 477188);
pub const IOCTL_DISK_EJECT_MEDIA = @as(u32, 477192);
pub const IOCTL_DISK_LOAD_MEDIA = @as(u32, 477196);
pub const IOCTL_DISK_RESERVE = @as(u32, 477200);
pub const IOCTL_DISK_RELEASE = @as(u32, 477204);
pub const IOCTL_DISK_FIND_NEW_DEVICES = @as(u32, 477208);
pub const IOCTL_DISK_GET_MEDIA_TYPES = @as(u32, 461824);
pub const PARTITION_ENTRY_UNUSED = @as(u32, 0);
pub const PARTITION_FAT_12 = @as(u32, 1);
pub const PARTITION_XENIX_1 = @as(u32, 2);
pub const PARTITION_XENIX_2 = @as(u32, 3);
pub const PARTITION_FAT_16 = @as(u32, 4);
pub const PARTITION_EXTENDED = @as(u32, 5);
pub const PARTITION_HUGE = @as(u32, 6);
pub const PARTITION_IFS = @as(u32, 7);
pub const PARTITION_OS2BOOTMGR = @as(u32, 10);
pub const PARTITION_FAT32 = @as(u32, 11);
pub const PARTITION_FAT32_XINT13 = @as(u32, 12);
pub const PARTITION_XINT13 = @as(u32, 14);
pub const PARTITION_XINT13_EXTENDED = @as(u32, 15);
pub const PARTITION_MSFT_RECOVERY = @as(u32, 39);
pub const PARTITION_MAIN_OS = @as(u32, 40);
pub const PARTIITON_OS_DATA = @as(u32, 41);
pub const PARTITION_PRE_INSTALLED = @as(u32, 42);
pub const PARTITION_BSP = @as(u32, 43);
pub const PARTITION_DPP = @as(u32, 44);
pub const PARTITION_WINDOWS_SYSTEM = @as(u32, 45);
pub const PARTITION_PREP = @as(u32, 65);
pub const PARTITION_LDM = @as(u32, 66);
pub const PARTITION_DM = @as(u32, 84);
pub const PARTITION_EZDRIVE = @as(u32, 85);
pub const PARTITION_UNIX = @as(u32, 99);
pub const PARTITION_SPACES_DATA = @as(u32, 215);
pub const PARTITION_SPACES = @as(u32, 231);
pub const PARTITION_GPT = @as(u32, 238);
pub const PARTITION_SYSTEM = @as(u32, 239);
pub const VALID_NTFT = @as(u32, 192);
pub const PARTITION_NTFT = @as(u32, 128);
pub const GPT_ATTRIBUTE_NO_BLOCK_IO_PROTOCOL = @as(u64, 2);
pub const GPT_ATTRIBUTE_LEGACY_BIOS_BOOTABLE = @as(u64, 4);
pub const GPT_BASIC_DATA_ATTRIBUTE_OFFLINE = @as(u64, 576460752303423488);
pub const GPT_BASIC_DATA_ATTRIBUTE_DAX = @as(u64, 288230376151711744);
pub const GPT_BASIC_DATA_ATTRIBUTE_SERVICE = @as(u64, 144115188075855872);
pub const GPT_SPACES_ATTRIBUTE_NO_METADATA = @as(u64, 9223372036854775808);
pub const HIST_NO_OF_BUCKETS = @as(u32, 24);
pub const DISK_LOGGING_START = @as(u32, 0);
pub const DISK_LOGGING_STOP = @as(u32, 1);
pub const DISK_LOGGING_DUMP = @as(u32, 2);
pub const DISK_BINNING = @as(u32, 3);
pub const CAP_ATA_ID_CMD = @as(u32, 1);
pub const CAP_ATAPI_ID_CMD = @as(u32, 2);
pub const CAP_SMART_CMD = @as(u32, 4);
pub const ATAPI_ID_CMD = @as(u32, 161);
pub const ID_CMD = @as(u32, 236);
pub const SMART_CMD = @as(u32, 176);
pub const SMART_CYL_LOW = @as(u32, 79);
pub const SMART_CYL_HI = @as(u32, 194);
pub const SMART_NO_ERROR = @as(u32, 0);
pub const SMART_IDE_ERROR = @as(u32, 1);
pub const SMART_INVALID_FLAG = @as(u32, 2);
pub const SMART_INVALID_COMMAND = @as(u32, 3);
pub const SMART_INVALID_BUFFER = @as(u32, 4);
pub const SMART_INVALID_DRIVE = @as(u32, 5);
pub const SMART_INVALID_IOCTL = @as(u32, 6);
pub const SMART_ERROR_NO_MEM = @as(u32, 7);
pub const SMART_INVALID_REGISTER = @as(u32, 8);
pub const SMART_NOT_SUPPORTED = @as(u32, 9);
pub const SMART_NO_IDE_DEVICE = @as(u32, 10);
pub const SMART_OFFLINE_ROUTINE_OFFLINE = @as(u32, 0);
pub const SMART_SHORT_SELFTEST_OFFLINE = @as(u32, 1);
pub const SMART_EXTENDED_SELFTEST_OFFLINE = @as(u32, 2);
pub const SMART_ABORT_OFFLINE_SELFTEST = @as(u32, 127);
pub const SMART_SHORT_SELFTEST_CAPTIVE = @as(u32, 129);
pub const SMART_EXTENDED_SELFTEST_CAPTIVE = @as(u32, 130);
pub const READ_ATTRIBUTE_BUFFER_SIZE = @as(u32, 512);
pub const IDENTIFY_BUFFER_SIZE = @as(u32, 512);
pub const READ_THRESHOLD_BUFFER_SIZE = @as(u32, 512);
pub const SMART_LOG_SECTOR_SIZE = @as(u32, 512);
pub const READ_ATTRIBUTES = @as(u32, 208);
pub const READ_THRESHOLDS = @as(u32, 209);
pub const ENABLE_DISABLE_AUTOSAVE = @as(u32, 210);
pub const SAVE_ATTRIBUTE_VALUES = @as(u32, 211);
pub const EXECUTE_OFFLINE_DIAGS = @as(u32, 212);
pub const SMART_READ_LOG = @as(u32, 213);
pub const SMART_WRITE_LOG = @as(u32, 214);
pub const ENABLE_SMART = @as(u32, 216);
pub const DISABLE_SMART = @as(u32, 217);
pub const RETURN_SMART_STATUS = @as(u32, 218);
pub const ENABLE_DISABLE_AUTO_OFFLINE = @as(u32, 219);
pub const IOCTL_DISK_GET_DISK_ATTRIBUTES = @as(u32, 458992);
pub const IOCTL_DISK_SET_DISK_ATTRIBUTES = @as(u32, 508148);
pub const DISK_ATTRIBUTE_OFFLINE = @as(u64, 1);
pub const DISK_ATTRIBUTE_READ_ONLY = @as(u64, 2);
pub const IOCTL_DISK_RESET_SNAPSHOT_INFO = @as(u32, 508432);
pub const IOCTL_CHANGER_GET_PARAMETERS = @as(u32, 3162112);
pub const IOCTL_CHANGER_GET_STATUS = @as(u32, 3162116);
pub const IOCTL_CHANGER_GET_PRODUCT_DATA = @as(u32, 3162120);
pub const IOCTL_CHANGER_SET_ACCESS = @as(u32, 3194896);
pub const IOCTL_CHANGER_GET_ELEMENT_STATUS = @as(u32, 3194900);
pub const IOCTL_CHANGER_INITIALIZE_ELEMENT_STATUS = @as(u32, 3162136);
pub const IOCTL_CHANGER_SET_POSITION = @as(u32, 3162140);
pub const IOCTL_CHANGER_EXCHANGE_MEDIUM = @as(u32, 3162144);
pub const IOCTL_CHANGER_MOVE_MEDIUM = @as(u32, 3162148);
pub const IOCTL_CHANGER_REINITIALIZE_TRANSPORT = @as(u32, 3162152);
pub const IOCTL_CHANGER_QUERY_VOLUME_TAGS = @as(u32, 3194924);
pub const MAX_VOLUME_ID_SIZE = @as(u32, 36);
pub const MAX_VOLUME_TEMPLATE_SIZE = @as(u32, 40);
pub const VENDOR_ID_LENGTH = @as(u32, 8);
pub const PRODUCT_ID_LENGTH = @as(u32, 16);
pub const REVISION_LENGTH = @as(u32, 4);
pub const SERIAL_NUMBER_LENGTH = @as(u32, 32);
pub const CHANGER_RESERVED_BIT = @as(u32, 2147483648);
pub const CHANGER_TO_TRANSPORT = @as(u32, 1);
pub const CHANGER_TO_SLOT = @as(u32, 2);
pub const CHANGER_TO_IEPORT = @as(u32, 4);
pub const CHANGER_TO_DRIVE = @as(u32, 8);
pub const LOCK_UNLOCK_IEPORT = @as(u32, 1);
pub const LOCK_UNLOCK_DOOR = @as(u32, 2);
pub const LOCK_UNLOCK_KEYPAD = @as(u32, 4);
pub const LOCK_ELEMENT = @as(u32, 0);
pub const UNLOCK_ELEMENT = @as(u32, 1);
pub const EXTEND_IEPORT = @as(u32, 2);
pub const RETRACT_IEPORT = @as(u32, 3);
pub const ERROR_LABEL_UNREADABLE = @as(u32, 1);
pub const ERROR_LABEL_QUESTIONABLE = @as(u32, 2);
pub const ERROR_SLOT_NOT_PRESENT = @as(u32, 4);
pub const ERROR_DRIVE_NOT_INSTALLED = @as(u32, 8);
pub const ERROR_TRAY_MALFUNCTION = @as(u32, 16);
pub const ERROR_INIT_STATUS_NEEDED = @as(u32, 17);
pub const ERROR_UNHANDLED_ERROR = @as(u32, 4294967295);
pub const SEARCH_ALL = @as(u32, 0);
pub const SEARCH_PRIMARY = @as(u32, 1);
pub const SEARCH_ALTERNATE = @as(u32, 2);
pub const SEARCH_ALL_NO_SEQ = @as(u32, 4);
pub const SEARCH_PRI_NO_SEQ = @as(u32, 5);
pub const SEARCH_ALT_NO_SEQ = @as(u32, 6);
pub const ASSERT_PRIMARY = @as(u32, 8);
pub const ASSERT_ALTERNATE = @as(u32, 9);
pub const REPLACE_PRIMARY = @as(u32, 10);
pub const REPLACE_ALTERNATE = @as(u32, 11);
pub const UNDEFINE_PRIMARY = @as(u32, 12);
pub const UNDEFINE_ALTERNATE = @as(u32, 13);
pub const IOCTL_SERIAL_LSRMST_INSERT = @as(u32, 1769596);
pub const IOCTL_SERENUM_EXPOSE_HARDWARE = @as(u32, 3604992);
pub const IOCTL_SERENUM_REMOVE_HARDWARE = @as(u32, 3604996);
pub const IOCTL_SERENUM_PORT_DESC = @as(u32, 3605000);
pub const IOCTL_SERENUM_GET_PORT_NAME = @as(u32, 3605004);
pub const FSCTL_REQUEST_OPLOCK_LEVEL_1 = @as(u32, 589824);
pub const FSCTL_REQUEST_OPLOCK_LEVEL_2 = @as(u32, 589828);
pub const FSCTL_REQUEST_BATCH_OPLOCK = @as(u32, 589832);
pub const FSCTL_OPLOCK_BREAK_ACKNOWLEDGE = @as(u32, 589836);
pub const FSCTL_OPBATCH_ACK_CLOSE_PENDING = @as(u32, 589840);
pub const FSCTL_OPLOCK_BREAK_NOTIFY = @as(u32, 589844);
pub const FSCTL_LOCK_VOLUME = @as(u32, 589848);
pub const FSCTL_UNLOCK_VOLUME = @as(u32, 589852);
pub const FSCTL_DISMOUNT_VOLUME = @as(u32, 589856);
pub const FSCTL_IS_VOLUME_MOUNTED = @as(u32, 589864);
pub const FSCTL_IS_PATHNAME_VALID = @as(u32, 589868);
pub const FSCTL_MARK_VOLUME_DIRTY = @as(u32, 589872);
pub const FSCTL_QUERY_RETRIEVAL_POINTERS = @as(u32, 589883);
pub const FSCTL_GET_COMPRESSION = @as(u32, 589884);
pub const FSCTL_SET_COMPRESSION = @as(u32, 639040);
pub const FSCTL_SET_BOOTLOADER_ACCESSED = @as(u32, 589903);
pub const FSCTL_MARK_AS_SYSTEM_HIVE = @as(u32, 589903);
pub const FSCTL_OPLOCK_BREAK_ACK_NO_2 = @as(u32, 589904);
pub const FSCTL_INVALIDATE_VOLUMES = @as(u32, 589908);
pub const FSCTL_QUERY_FAT_BPB = @as(u32, 589912);
pub const FSCTL_REQUEST_FILTER_OPLOCK = @as(u32, 589916);
pub const FSCTL_FILESYSTEM_GET_STATISTICS = @as(u32, 589920);
pub const FSCTL_GET_NTFS_VOLUME_DATA = @as(u32, 589924);
pub const FSCTL_GET_NTFS_FILE_RECORD = @as(u32, 589928);
pub const FSCTL_GET_VOLUME_BITMAP = @as(u32, 589935);
pub const FSCTL_GET_RETRIEVAL_POINTERS = @as(u32, 589939);
pub const FSCTL_MOVE_FILE = @as(u32, 589940);
pub const FSCTL_IS_VOLUME_DIRTY = @as(u32, 589944);
pub const FSCTL_ALLOW_EXTENDED_DASD_IO = @as(u32, 589955);
pub const FSCTL_FIND_FILES_BY_SID = @as(u32, 589967);
pub const FSCTL_SET_OBJECT_ID = @as(u32, 589976);
pub const FSCTL_GET_OBJECT_ID = @as(u32, 589980);
pub const FSCTL_DELETE_OBJECT_ID = @as(u32, 589984);
pub const FSCTL_SET_REPARSE_POINT = @as(u32, 589988);
pub const FSCTL_GET_REPARSE_POINT = @as(u32, 589992);
pub const FSCTL_DELETE_REPARSE_POINT = @as(u32, 589996);
pub const FSCTL_ENUM_USN_DATA = @as(u32, 590003);
pub const FSCTL_SECURITY_ID_CHECK = @as(u32, 606391);
pub const FSCTL_READ_USN_JOURNAL = @as(u32, 590011);
pub const FSCTL_SET_OBJECT_ID_EXTENDED = @as(u32, 590012);
pub const FSCTL_CREATE_OR_GET_OBJECT_ID = @as(u32, 590016);
pub const FSCTL_SET_SPARSE = @as(u32, 590020);
pub const FSCTL_SET_ZERO_DATA = @as(u32, 622792);
pub const FSCTL_QUERY_ALLOCATED_RANGES = @as(u32, 606415);
pub const FSCTL_ENABLE_UPGRADE = @as(u32, 622800);
pub const FSCTL_SET_ENCRYPTION = @as(u32, 590039);
pub const FSCTL_ENCRYPTION_FSCTL_IO = @as(u32, 590043);
pub const FSCTL_WRITE_RAW_ENCRYPTED = @as(u32, 590047);
pub const FSCTL_READ_RAW_ENCRYPTED = @as(u32, 590051);
pub const FSCTL_CREATE_USN_JOURNAL = @as(u32, 590055);
pub const FSCTL_READ_FILE_USN_DATA = @as(u32, 590059);
pub const FSCTL_WRITE_USN_CLOSE_RECORD = @as(u32, 590063);
pub const FSCTL_EXTEND_VOLUME = @as(u32, 590064);
pub const FSCTL_QUERY_USN_JOURNAL = @as(u32, 590068);
pub const FSCTL_DELETE_USN_JOURNAL = @as(u32, 590072);
pub const FSCTL_MARK_HANDLE = @as(u32, 590076);
pub const FSCTL_SIS_COPYFILE = @as(u32, 590080);
pub const FSCTL_SIS_LINK_FILES = @as(u32, 639236);
pub const FSCTL_RECALL_FILE = @as(u32, 590103);
pub const FSCTL_READ_FROM_PLEX = @as(u32, 606494);
pub const FSCTL_FILE_PREFETCH = @as(u32, 590112);
pub const FSCTL_MAKE_MEDIA_COMPATIBLE = @as(u32, 622896);
pub const FSCTL_SET_DEFECT_MANAGEMENT = @as(u32, 622900);
pub const FSCTL_QUERY_SPARING_INFO = @as(u32, 590136);
pub const FSCTL_QUERY_ON_DISK_VOLUME_INFO = @as(u32, 590140);
pub const FSCTL_SET_VOLUME_COMPRESSION_STATE = @as(u32, 590144);
pub const FSCTL_TXFS_MODIFY_RM = @as(u32, 622916);
pub const FSCTL_TXFS_QUERY_RM_INFORMATION = @as(u32, 606536);
pub const FSCTL_TXFS_ROLLFORWARD_REDO = @as(u32, 622928);
pub const FSCTL_TXFS_ROLLFORWARD_UNDO = @as(u32, 622932);
pub const FSCTL_TXFS_START_RM = @as(u32, 622936);
pub const FSCTL_TXFS_SHUTDOWN_RM = @as(u32, 622940);
pub const FSCTL_TXFS_READ_BACKUP_INFORMATION = @as(u32, 606560);
pub const FSCTL_TXFS_WRITE_BACKUP_INFORMATION = @as(u32, 622948);
pub const FSCTL_TXFS_CREATE_SECONDARY_RM = @as(u32, 622952);
pub const FSCTL_TXFS_GET_METADATA_INFO = @as(u32, 606572);
pub const FSCTL_TXFS_GET_TRANSACTED_VERSION = @as(u32, 606576);
pub const FSCTL_TXFS_SAVEPOINT_INFORMATION = @as(u32, 622968);
pub const FSCTL_TXFS_CREATE_MINIVERSION = @as(u32, 622972);
pub const FSCTL_TXFS_TRANSACTION_ACTIVE = @as(u32, 606604);
pub const FSCTL_SET_ZERO_ON_DEALLOCATION = @as(u32, 590228);
pub const FSCTL_SET_REPAIR = @as(u32, 590232);
pub const FSCTL_GET_REPAIR = @as(u32, 590236);
pub const FSCTL_WAIT_FOR_REPAIR = @as(u32, 590240);
pub const FSCTL_INITIATE_REPAIR = @as(u32, 590248);
pub const FSCTL_CSC_INTERNAL = @as(u32, 590255);
pub const FSCTL_SHRINK_VOLUME = @as(u32, 590256);
pub const FSCTL_SET_SHORT_NAME_BEHAVIOR = @as(u32, 590260);
pub const FSCTL_DFSR_SET_GHOST_HANDLE_STATE = @as(u32, 590264);
pub const FSCTL_TXFS_LIST_TRANSACTION_LOCKED_FILES = @as(u32, 606688);
pub const FSCTL_TXFS_LIST_TRANSACTIONS = @as(u32, 606692);
pub const FSCTL_QUERY_PAGEFILE_ENCRYPTION = @as(u32, 590312);
pub const FSCTL_RESET_VOLUME_ALLOCATION_HINTS = @as(u32, 590316);
pub const FSCTL_QUERY_DEPENDENT_VOLUME = @as(u32, 590320);
pub const FSCTL_SD_GLOBAL_CHANGE = @as(u32, 590324);
pub const FSCTL_TXFS_READ_BACKUP_INFORMATION2 = @as(u32, 590328);
pub const FSCTL_LOOKUP_STREAM_FROM_CLUSTER = @as(u32, 590332);
pub const FSCTL_TXFS_WRITE_BACKUP_INFORMATION2 = @as(u32, 590336);
pub const FSCTL_FILE_TYPE_NOTIFICATION = @as(u32, 590340);
pub const FSCTL_FILE_LEVEL_TRIM = @as(u32, 623112);
pub const FSCTL_GET_BOOT_AREA_INFO = @as(u32, 590384);
pub const FSCTL_GET_RETRIEVAL_POINTER_BASE = @as(u32, 590388);
pub const FSCTL_SET_PERSISTENT_VOLUME_STATE = @as(u32, 590392);
pub const FSCTL_QUERY_PERSISTENT_VOLUME_STATE = @as(u32, 590396);
pub const FSCTL_REQUEST_OPLOCK = @as(u32, 590400);
pub const FSCTL_CSV_TUNNEL_REQUEST = @as(u32, 590404);
pub const FSCTL_IS_CSV_FILE = @as(u32, 590408);
pub const FSCTL_QUERY_FILE_SYSTEM_RECOGNITION = @as(u32, 590412);
pub const FSCTL_CSV_GET_VOLUME_PATH_NAME = @as(u32, 590416);
pub const FSCTL_CSV_GET_VOLUME_NAME_FOR_VOLUME_MOUNT_POINT = @as(u32, 590420);
pub const FSCTL_CSV_GET_VOLUME_PATH_NAMES_FOR_VOLUME_NAME = @as(u32, 590424);
pub const FSCTL_IS_FILE_ON_CSV_VOLUME = @as(u32, 590428);
pub const FSCTL_CORRUPTION_HANDLING = @as(u32, 590432);
pub const FSCTL_OFFLOAD_READ = @as(u32, 606820);
pub const FSCTL_OFFLOAD_WRITE = @as(u32, 623208);
pub const FSCTL_CSV_INTERNAL = @as(u32, 590444);
pub const FSCTL_SET_PURGE_FAILURE_MODE = @as(u32, 590448);
pub const FSCTL_QUERY_FILE_LAYOUT = @as(u32, 590455);
pub const FSCTL_IS_VOLUME_OWNED_BYCSVFS = @as(u32, 590456);
pub const FSCTL_GET_INTEGRITY_INFORMATION = @as(u32, 590460);
pub const FSCTL_SET_INTEGRITY_INFORMATION = @as(u32, 639616);
pub const FSCTL_QUERY_FILE_REGIONS = @as(u32, 590468);
pub const FSCTL_RKF_INTERNAL = @as(u32, 590511);
pub const FSCTL_SCRUB_DATA = @as(u32, 590512);
pub const FSCTL_REPAIR_COPIES = @as(u32, 639668);
pub const FSCTL_DISABLE_LOCAL_BUFFERING = @as(u32, 590520);
pub const FSCTL_CSV_MGMT_LOCK = @as(u32, 590524);
pub const FSCTL_CSV_QUERY_DOWN_LEVEL_FILE_SYSTEM_CHARACTERISTICS = @as(u32, 590528);
pub const FSCTL_ADVANCE_FILE_ID = @as(u32, 590532);
pub const FSCTL_CSV_SYNC_TUNNEL_REQUEST = @as(u32, 590536);
pub const FSCTL_CSV_QUERY_VETO_FILE_DIRECT_IO = @as(u32, 590540);
pub const FSCTL_WRITE_USN_REASON = @as(u32, 590544);
pub const FSCTL_CSV_CONTROL = @as(u32, 590548);
pub const FSCTL_GET_REFS_VOLUME_DATA = @as(u32, 590552);
pub const FSCTL_CSV_H_BREAKING_SYNC_TUNNEL_REQUEST = @as(u32, 590564);
pub const FSCTL_QUERY_STORAGE_CLASSES = @as(u32, 590572);
pub const FSCTL_QUERY_REGION_INFO = @as(u32, 590576);
pub const FSCTL_USN_TRACK_MODIFIED_RANGES = @as(u32, 590580);
pub const FSCTL_QUERY_SHARED_VIRTUAL_DISK_SUPPORT = @as(u32, 590592);
pub const FSCTL_SVHDX_SYNC_TUNNEL_REQUEST = @as(u32, 590596);
pub const FSCTL_SVHDX_SET_INITIATOR_INFORMATION = @as(u32, 590600);
pub const FSCTL_SET_EXTERNAL_BACKING = @as(u32, 590604);
pub const FSCTL_GET_EXTERNAL_BACKING = @as(u32, 590608);
pub const FSCTL_DELETE_EXTERNAL_BACKING = @as(u32, 590612);
pub const FSCTL_ENUM_EXTERNAL_BACKING = @as(u32, 590616);
pub const FSCTL_ENUM_OVERLAY = @as(u32, 590623);
pub const FSCTL_ADD_OVERLAY = @as(u32, 623408);
pub const FSCTL_REMOVE_OVERLAY = @as(u32, 623412);
pub const FSCTL_UPDATE_OVERLAY = @as(u32, 623416);
pub const FSCTL_SHUFFLE_FILE = @as(u32, 639808);
pub const FSCTL_DUPLICATE_EXTENTS_TO_FILE = @as(u32, 623428);
pub const FSCTL_SPARSE_OVERALLOCATE = @as(u32, 590668);
pub const FSCTL_STORAGE_QOS_CONTROL = @as(u32, 590672);
pub const FSCTL_INITIATE_FILE_METADATA_OPTIMIZATION = @as(u32, 590684);
pub const FSCTL_QUERY_FILE_METADATA_OPTIMIZATION = @as(u32, 590688);
pub const FSCTL_SVHDX_ASYNC_TUNNEL_REQUEST = @as(u32, 590692);
pub const FSCTL_GET_WOF_VERSION = @as(u32, 590696);
pub const FSCTL_HCS_SYNC_TUNNEL_REQUEST = @as(u32, 590700);
pub const FSCTL_HCS_ASYNC_TUNNEL_REQUEST = @as(u32, 590704);
pub const FSCTL_QUERY_EXTENT_READ_CACHE_INFO = @as(u32, 590711);
pub const FSCTL_QUERY_REFS_VOLUME_COUNTER_INFO = @as(u32, 590715);
pub const FSCTL_CLEAN_VOLUME_METADATA = @as(u32, 590716);
pub const FSCTL_SET_INTEGRITY_INFORMATION_EX = @as(u32, 590720);
pub const FSCTL_SUSPEND_OVERLAY = @as(u32, 590724);
pub const FSCTL_VIRTUAL_STORAGE_QUERY_PROPERTY = @as(u32, 590728);
pub const FSCTL_FILESYSTEM_GET_STATISTICS_EX = @as(u32, 590732);
pub const FSCTL_QUERY_VOLUME_CONTAINER_STATE = @as(u32, 590736);
pub const FSCTL_SET_LAYER_ROOT = @as(u32, 590740);
pub const FSCTL_QUERY_DIRECT_ACCESS_EXTENTS = @as(u32, 590747);
pub const FSCTL_NOTIFY_STORAGE_SPACE_ALLOCATION = @as(u32, 590748);
pub const FSCTL_SSDI_STORAGE_REQUEST = @as(u32, 590752);
pub const FSCTL_QUERY_DIRECT_IMAGE_ORIGINAL_BASE = @as(u32, 590756);
pub const FSCTL_READ_UNPRIVILEGED_USN_JOURNAL = @as(u32, 590763);
pub const FSCTL_GHOST_FILE_EXTENTS = @as(u32, 623532);
pub const FSCTL_QUERY_GHOSTED_FILE_EXTENTS = @as(u32, 590768);
pub const FSCTL_UNMAP_SPACE = @as(u32, 590772);
pub const FSCTL_HCS_SYNC_NO_WRITE_TUNNEL_REQUEST = @as(u32, 590776);
pub const FSCTL_START_VIRTUALIZATION_INSTANCE = @as(u32, 590784);
pub const FSCTL_GET_FILTER_FILE_IDENTIFIER = @as(u32, 590788);
pub const FSCTL_STREAMS_QUERY_PARAMETERS = @as(u32, 590788);
pub const FSCTL_STREAMS_ASSOCIATE_ID = @as(u32, 590792);
pub const FSCTL_STREAMS_QUERY_ID = @as(u32, 590796);
pub const FSCTL_GET_RETRIEVAL_POINTERS_AND_REFCOUNT = @as(u32, 590803);
pub const FSCTL_QUERY_VOLUME_NUMA_INFO = @as(u32, 590804);
pub const FSCTL_REFS_DEALLOCATE_RANGES = @as(u32, 590808);
pub const FSCTL_QUERY_REFS_SMR_VOLUME_INFO = @as(u32, 590812);
pub const FSCTL_SET_REFS_SMR_VOLUME_GC_PARAMETERS = @as(u32, 590816);
pub const FSCTL_SET_REFS_FILE_STRICTLY_SEQUENTIAL = @as(u32, 590820);
pub const FSCTL_DUPLICATE_EXTENTS_TO_FILE_EX = @as(u32, 623592);
pub const FSCTL_QUERY_BAD_RANGES = @as(u32, 590828);
pub const FSCTL_SET_DAX_ALLOC_ALIGNMENT_HINT = @as(u32, 590832);
pub const FSCTL_DELETE_CORRUPTED_REFS_CONTAINER = @as(u32, 590836);
pub const FSCTL_SCRUB_UNDISCOVERABLE_ID = @as(u32, 590840);
pub const FSCTL_NOTIFY_DATA_CHANGE = @as(u32, 590844);
pub const FSCTL_START_VIRTUALIZATION_INSTANCE_EX = @as(u32, 590848);
pub const FSCTL_ENCRYPTION_KEY_CONTROL = @as(u32, 590852);
pub const FSCTL_VIRTUAL_STORAGE_SET_BEHAVIOR = @as(u32, 590856);
pub const FSCTL_SET_REPARSE_POINT_EX = @as(u32, 590860);
pub const FSCTL_REARRANGE_FILE = @as(u32, 640032);
pub const FSCTL_VIRTUAL_STORAGE_PASSTHROUGH = @as(u32, 590884);
pub const FSCTL_GET_RETRIEVAL_POINTER_COUNT = @as(u32, 590891);
pub const FSCTL_ENABLE_PER_IO_FLAGS = @as(u32, 590892);
pub const FSCTL_QUERY_ASYNC_DUPLICATE_EXTENTS_STATUS = @as(u32, 590896);
pub const FSCTL_SMB_SHARE_FLUSH_AND_PURGE = @as(u32, 590908);
pub const FSCTL_REFS_STREAM_SNAPSHOT_MANAGEMENT = @as(u32, 590912);
pub const FSCTL_MANAGE_BYPASS_IO = @as(u32, 590920);
pub const GET_VOLUME_BITMAP_FLAG_MASK_METADATA = @as(u32, 1);
pub const FLAG_USN_TRACK_MODIFIED_RANGES_ENABLE = @as(u32, 1);
pub const USN_PAGE_SIZE = @as(u32, 4096);
pub const USN_REASON_DATA_OVERWRITE = @as(u32, 1);
pub const USN_REASON_DATA_EXTEND = @as(u32, 2);
pub const USN_REASON_DATA_TRUNCATION = @as(u32, 4);
pub const USN_REASON_NAMED_DATA_OVERWRITE = @as(u32, 16);
pub const USN_REASON_NAMED_DATA_EXTEND = @as(u32, 32);
pub const USN_REASON_NAMED_DATA_TRUNCATION = @as(u32, 64);
pub const USN_REASON_FILE_CREATE = @as(u32, 256);
pub const USN_REASON_FILE_DELETE = @as(u32, 512);
pub const USN_REASON_EA_CHANGE = @as(u32, 1024);
pub const USN_REASON_SECURITY_CHANGE = @as(u32, 2048);
pub const USN_REASON_RENAME_OLD_NAME = @as(u32, 4096);
pub const USN_REASON_RENAME_NEW_NAME = @as(u32, 8192);
pub const USN_REASON_INDEXABLE_CHANGE = @as(u32, 16384);
pub const USN_REASON_BASIC_INFO_CHANGE = @as(u32, 32768);
pub const USN_REASON_HARD_LINK_CHANGE = @as(u32, 65536);
pub const USN_REASON_COMPRESSION_CHANGE = @as(u32, 131072);
pub const USN_REASON_ENCRYPTION_CHANGE = @as(u32, 262144);
pub const USN_REASON_OBJECT_ID_CHANGE = @as(u32, 524288);
pub const USN_REASON_REPARSE_POINT_CHANGE = @as(u32, 1048576);
pub const USN_REASON_STREAM_CHANGE = @as(u32, 2097152);
pub const USN_REASON_TRANSACTED_CHANGE = @as(u32, 4194304);
pub const USN_REASON_INTEGRITY_CHANGE = @as(u32, 8388608);
pub const USN_REASON_DESIRED_STORAGE_CLASS_CHANGE = @as(u32, 16777216);
pub const USN_REASON_CLOSE = @as(u32, 2147483648);
pub const USN_DELETE_VALID_FLAGS = @as(u32, 3);
pub const MARK_HANDLE_PROTECT_CLUSTERS = @as(u32, 1);
pub const MARK_HANDLE_TXF_SYSTEM_LOG = @as(u32, 4);
pub const MARK_HANDLE_NOT_TXF_SYSTEM_LOG = @as(u32, 8);
pub const MARK_HANDLE_REALTIME = @as(u32, 32);
pub const MARK_HANDLE_NOT_REALTIME = @as(u32, 64);
pub const MARK_HANDLE_CLOUD_SYNC = @as(u32, 2048);
pub const MARK_HANDLE_READ_COPY = @as(u32, 128);
pub const MARK_HANDLE_NOT_READ_COPY = @as(u32, 256);
pub const MARK_HANDLE_FILTER_METADATA = @as(u32, 512);
pub const MARK_HANDLE_RETURN_PURGE_FAILURE = @as(u32, 1024);
pub const MARK_HANDLE_DISABLE_FILE_METADATA_OPTIMIZATION = @as(u32, 4096);
pub const MARK_HANDLE_ENABLE_USN_SOURCE_ON_PAGING_IO = @as(u32, 8192);
pub const MARK_HANDLE_SKIP_COHERENCY_SYNC_DISALLOW_WRITES = @as(u32, 16384);
pub const MARK_HANDLE_SUPPRESS_VOLUME_OPEN_FLUSH = @as(u32, 32768);
pub const MARK_HANDLE_ENABLE_CPU_CACHE = @as(u32, 268435456);
pub const VOLUME_IS_DIRTY = @as(u32, 1);
pub const VOLUME_UPGRADE_SCHEDULED = @as(u32, 2);
pub const VOLUME_SESSION_OPEN = @as(u32, 4);
pub const FILE_PREFETCH_TYPE_FOR_CREATE = @as(u32, 1);
pub const FILE_PREFETCH_TYPE_FOR_DIRENUM = @as(u32, 2);
pub const FILE_PREFETCH_TYPE_FOR_CREATE_EX = @as(u32, 3);
pub const FILE_PREFETCH_TYPE_FOR_DIRENUM_EX = @as(u32, 4);
pub const FILE_PREFETCH_TYPE_MAX = @as(u32, 4);
pub const FILESYSTEM_STATISTICS_TYPE_REFS = @as(u32, 4);
pub const FILE_ZERO_DATA_INFORMATION_FLAG_PRESERVE_CACHED_DATA = @as(u32, 1);
pub const FILE_SET_ENCRYPTION = @as(u32, 1);
pub const FILE_CLEAR_ENCRYPTION = @as(u32, 2);
pub const STREAM_SET_ENCRYPTION = @as(u32, 3);
pub const STREAM_CLEAR_ENCRYPTION = @as(u32, 4);
pub const MAXIMUM_ENCRYPTION_VALUE = @as(u32, 4);
pub const ENCRYPTION_FORMAT_DEFAULT = @as(u32, 1);
pub const ENCRYPTED_DATA_INFO_SPARSE_FILE = @as(u32, 1);
pub const COPYFILE_SIS_LINK = @as(u32, 1);
pub const COPYFILE_SIS_REPLACE = @as(u32, 2);
pub const COPYFILE_SIS_FLAGS = @as(u32, 3);
pub const SET_REPAIR_ENABLED = @as(u32, 1);
pub const SET_REPAIR_WARN_ABOUT_DATA_LOSS = @as(u32, 8);
pub const SET_REPAIR_DISABLED_AND_BUGCHECK_ON_CORRUPT = @as(u32, 16);
pub const SET_REPAIR_VALID_MASK = @as(u32, 25);
pub const FILE_INITIATE_REPAIR_HINT1_FILE_RECORD_NOT_IN_USE = @as(u64, 1);
pub const FILE_INITIATE_REPAIR_HINT1_FILE_RECORD_REUSED = @as(u64, 2);
pub const FILE_INITIATE_REPAIR_HINT1_FILE_RECORD_NOT_EXIST = @as(u64, 4);
pub const FILE_INITIATE_REPAIR_HINT1_FILE_RECORD_NOT_BASE_RECORD = @as(u64, 8);
pub const FILE_INITIATE_REPAIR_HINT1_SYSTEM_FILE = @as(u64, 16);
pub const FILE_INITIATE_REPAIR_HINT1_NOT_IMPLEMENTED = @as(u64, 32);
pub const FILE_INITIATE_REPAIR_HINT1_UNABLE_TO_REPAIR = @as(u64, 64);
pub const FILE_INITIATE_REPAIR_HINT1_REPAIR_DISABLED = @as(u64, 128);
pub const FILE_INITIATE_REPAIR_HINT1_RECURSIVELY_CORRUPTED = @as(u64, 256);
pub const FILE_INITIATE_REPAIR_HINT1_ORPHAN_GENERATED = @as(u64, 512);
pub const FILE_INITIATE_REPAIR_HINT1_REPAIRED = @as(u64, 1024);
pub const FILE_INITIATE_REPAIR_HINT1_NOTHING_WRONG = @as(u64, 2048);
pub const FILE_INITIATE_REPAIR_HINT1_ATTRIBUTE_NOT_FOUND = @as(u64, 4096);
pub const FILE_INITIATE_REPAIR_HINT1_POTENTIAL_CROSSLINK = @as(u64, 8192);
pub const FILE_INITIATE_REPAIR_HINT1_STALE_INFORMATION = @as(u64, 16384);
pub const FILE_INITIATE_REPAIR_HINT1_CLUSTERS_ALREADY_IN_USE = @as(u64, 32768);
pub const FILE_INITIATE_REPAIR_HINT1_LCN_NOT_EXIST = @as(u64, 65536);
pub const FILE_INITIATE_REPAIR_HINT1_INVALID_RUN_LENGTH = @as(u64, 131072);
pub const FILE_INITIATE_REPAIR_HINT1_FILE_RECORD_NOT_ORPHAN = @as(u64, 262144);
pub const FILE_INITIATE_REPAIR_HINT1_FILE_RECORD_IS_BASE_RECORD = @as(u64, 524288);
pub const FILE_INITIATE_REPAIR_HINT1_INVALID_ARRAY_LENGTH_COUNT = @as(u64, 1048576);
pub const FILE_INITIATE_REPAIR_HINT1_SID_VALID = @as(u64, 2097152);
pub const FILE_INITIATE_REPAIR_HINT1_SID_MISMATCH = @as(u64, 4194304);
pub const FILE_INITIATE_REPAIR_HINT1_INVALID_PARENT = @as(u64, 8388608);
pub const FILE_INITIATE_REPAIR_HINT1_PARENT_FILE_RECORD_NOT_IN_USE = @as(u64, 16777216);
pub const FILE_INITIATE_REPAIR_HINT1_PARENT_FILE_RECORD_REUSED = @as(u64, 33554432);
pub const FILE_INITIATE_REPAIR_HINT1_PARENT_FILE_RECORD_NOT_EXIST = @as(u64, 67108864);
pub const FILE_INITIATE_REPAIR_HINT1_PARENT_FILE_RECORD_NOT_BASE_RECORD = @as(u64, 134217728);
pub const FILE_INITIATE_REPAIR_HINT1_PARENT_FILE_RECORD_NOT_INDEX = @as(u64, 268435456);
pub const FILE_INITIATE_REPAIR_HINT1_VALID_INDEX_ENTRY = @as(u64, 536870912);
pub const FILE_INITIATE_REPAIR_HINT1_OUT_OF_GENERIC_NAMES = @as(u64, 1073741824);
pub const FILE_INITIATE_REPAIR_HINT1_OUT_OF_RESOURCE = @as(u64, 2147483648);
pub const FILE_INITIATE_REPAIR_HINT1_INVALID_LCN = @as(u64, 4294967296);
pub const FILE_INITIATE_REPAIR_HINT1_INVALID_VCN = @as(u64, 8589934592);
pub const FILE_INITIATE_REPAIR_HINT1_NAME_CONFLICT = @as(u64, 17179869184);
pub const FILE_INITIATE_REPAIR_HINT1_ORPHAN = @as(u64, 34359738368);
pub const FILE_INITIATE_REPAIR_HINT1_ATTRIBUTE_TOO_SMALL = @as(u64, 68719476736);
pub const FILE_INITIATE_REPAIR_HINT1_ATTRIBUTE_NON_RESIDENT = @as(u64, 137438953472);
pub const FILE_INITIATE_REPAIR_HINT1_DENY_DEFRAG = @as(u64, 274877906944);
pub const FILE_INITIATE_REPAIR_HINT1_PREVIOUS_PARENT_STILL_VALID = @as(u64, 549755813888);
pub const FILE_INITIATE_REPAIR_HINT1_INDEX_ENTRY_MISMATCH = @as(u64, 1099511627776);
pub const FILE_INITIATE_REPAIR_HINT1_INVALID_ORPHAN_RECOVERY_NAME = @as(u64, 2199023255552);
pub const FILE_INITIATE_REPAIR_HINT1_MULTIPLE_FILE_NAME_ATTRIBUTES = @as(u64, 4398046511104);
pub const TXFS_LOGGING_MODE_SIMPLE = @as(u32, 1);
pub const TXFS_LOGGING_MODE_FULL = @as(u32, 2);
pub const TXFS_TRANSACTION_STATE_NONE = @as(u32, 0);
pub const TXFS_TRANSACTION_STATE_ACTIVE = @as(u32, 1);
pub const TXFS_TRANSACTION_STATE_PREPARED = @as(u32, 2);
pub const TXFS_TRANSACTION_STATE_NOTACTIVE = @as(u32, 3);
pub const TXFS_RM_STATE_NOT_STARTED = @as(u32, 0);
pub const TXFS_RM_STATE_STARTING = @as(u32, 1);
pub const TXFS_RM_STATE_ACTIVE = @as(u32, 2);
pub const TXFS_RM_STATE_SHUTTING_DOWN = @as(u32, 3);
pub const TXFS_ROLLFORWARD_REDO_FLAG_USE_LAST_REDO_LSN = @as(u32, 1);
pub const TXFS_ROLLFORWARD_REDO_FLAG_USE_LAST_VIRTUAL_CLOCK = @as(u32, 2);
pub const TXFS_START_RM_FLAG_LOG_CONTAINER_COUNT_MAX = @as(u32, 1);
pub const TXFS_START_RM_FLAG_LOG_CONTAINER_COUNT_MIN = @as(u32, 2);
pub const TXFS_START_RM_FLAG_LOG_CONTAINER_SIZE = @as(u32, 4);
pub const TXFS_START_RM_FLAG_LOG_GROWTH_INCREMENT_NUM_CONTAINERS = @as(u32, 8);
pub const TXFS_START_RM_FLAG_LOG_GROWTH_INCREMENT_PERCENT = @as(u32, 16);
pub const TXFS_START_RM_FLAG_LOG_AUTO_SHRINK_PERCENTAGE = @as(u32, 32);
pub const TXFS_START_RM_FLAG_LOG_NO_CONTAINER_COUNT_MAX = @as(u32, 64);
pub const TXFS_START_RM_FLAG_LOG_NO_CONTAINER_COUNT_MIN = @as(u32, 128);
pub const TXFS_START_RM_FLAG_RECOVER_BEST_EFFORT = @as(u32, 512);
pub const TXFS_START_RM_FLAG_LOGGING_MODE = @as(u32, 1024);
pub const TXFS_START_RM_FLAG_PRESERVE_CHANGES = @as(u32, 2048);
pub const TXFS_START_RM_FLAG_PREFER_CONSISTENCY = @as(u32, 4096);
pub const TXFS_START_RM_FLAG_PREFER_AVAILABILITY = @as(u32, 8192);
pub const TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY_FLAG_CREATED = @as(u32, 1);
pub const TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY_FLAG_DELETED = @as(u32, 2);
pub const TXFS_TRANSACTED_VERSION_NONTRANSACTED = @as(u32, 4294967294);
pub const TXFS_TRANSACTED_VERSION_UNCOMMITTED = @as(u32, 4294967295);
pub const TXFS_SAVEPOINT_SET = @as(u32, 1);
pub const TXFS_SAVEPOINT_ROLLBACK = @as(u32, 2);
pub const TXFS_SAVEPOINT_CLEAR = @as(u32, 4);
pub const TXFS_SAVEPOINT_CLEAR_ALL = @as(u32, 16);
pub const PERSISTENT_VOLUME_STATE_SHORT_NAME_CREATION_DISABLED = @as(u32, 1);
pub const PERSISTENT_VOLUME_STATE_VOLUME_SCRUB_DISABLED = @as(u32, 2);
pub const PERSISTENT_VOLUME_STATE_GLOBAL_METADATA_NO_SEEK_PENALTY = @as(u32, 4);
pub const PERSISTENT_VOLUME_STATE_LOCAL_METADATA_NO_SEEK_PENALTY = @as(u32, 8);
pub const PERSISTENT_VOLUME_STATE_NO_HEAT_GATHERING = @as(u32, 16);
pub const PERSISTENT_VOLUME_STATE_CONTAINS_BACKING_WIM = @as(u32, 32);
pub const PERSISTENT_VOLUME_STATE_BACKED_BY_WIM = @as(u32, 64);
pub const PERSISTENT_VOLUME_STATE_NO_WRITE_AUTO_TIERING = @as(u32, 128);
pub const PERSISTENT_VOLUME_STATE_TXF_DISABLED = @as(u32, 256);
pub const PERSISTENT_VOLUME_STATE_REALLOCATE_ALL_DATA_WRITES = @as(u32, 512);
pub const PERSISTENT_VOLUME_STATE_CHKDSK_RAN_ONCE = @as(u32, 1024);
pub const PERSISTENT_VOLUME_STATE_MODIFIED_BY_CHKDSK = @as(u32, 2048);
pub const PERSISTENT_VOLUME_STATE_DAX_FORMATTED = @as(u32, 4096);
pub const OPLOCK_LEVEL_CACHE_READ = @as(u32, 1);
pub const OPLOCK_LEVEL_CACHE_HANDLE = @as(u32, 2);
pub const OPLOCK_LEVEL_CACHE_WRITE = @as(u32, 4);
pub const REQUEST_OPLOCK_INPUT_FLAG_REQUEST = @as(u32, 1);
pub const REQUEST_OPLOCK_INPUT_FLAG_ACK = @as(u32, 2);
pub const REQUEST_OPLOCK_INPUT_FLAG_COMPLETE_ACK_ON_CLOSE = @as(u32, 4);
pub const REQUEST_OPLOCK_CURRENT_VERSION = @as(u32, 1);
pub const REQUEST_OPLOCK_OUTPUT_FLAG_ACK_REQUIRED = @as(u32, 1);
pub const REQUEST_OPLOCK_OUTPUT_FLAG_MODES_PROVIDED = @as(u32, 2);
pub const QUERY_DEPENDENT_VOLUME_REQUEST_FLAG_HOST_VOLUMES = @as(u32, 1);
pub const QUERY_DEPENDENT_VOLUME_REQUEST_FLAG_GUEST_VOLUMES = @as(u32, 2);
pub const SD_GLOBAL_CHANGE_TYPE_MACHINE_SID = @as(u32, 1);
pub const SD_GLOBAL_CHANGE_TYPE_QUERY_STATS = @as(u32, 65536);
pub const SD_GLOBAL_CHANGE_TYPE_ENUM_SDS = @as(u32, 131072);
pub const LOOKUP_STREAM_FROM_CLUSTER_ENTRY_FLAG_PAGE_FILE = @as(u32, 1);
pub const LOOKUP_STREAM_FROM_CLUSTER_ENTRY_FLAG_DENY_DEFRAG_SET = @as(u32, 2);
pub const LOOKUP_STREAM_FROM_CLUSTER_ENTRY_FLAG_FS_SYSTEM_FILE = @as(u32, 4);
pub const LOOKUP_STREAM_FROM_CLUSTER_ENTRY_FLAG_TXF_SYSTEM_FILE = @as(u32, 8);
pub const LOOKUP_STREAM_FROM_CLUSTER_ENTRY_ATTRIBUTE_MASK = @as(u32, 4278190080);
pub const LOOKUP_STREAM_FROM_CLUSTER_ENTRY_ATTRIBUTE_DATA = @as(u32, 16777216);
pub const LOOKUP_STREAM_FROM_CLUSTER_ENTRY_ATTRIBUTE_INDEX = @as(u32, 33554432);
pub const LOOKUP_STREAM_FROM_CLUSTER_ENTRY_ATTRIBUTE_SYSTEM = @as(u32, 50331648);
pub const FILE_TYPE_NOTIFICATION_FLAG_USAGE_BEGIN = @as(u32, 1);
pub const FILE_TYPE_NOTIFICATION_FLAG_USAGE_END = @as(u32, 2);
pub const FILE_TYPE_NOTIFICATION_GUID_PAGE_FILE = Guid.initString("0d0a64a1-38fc-4db8-9fe7-3f4352cd7c5c");
pub const FILE_TYPE_NOTIFICATION_GUID_HIBERNATION_FILE = Guid.initString("b7624d64-b9a3-4cf8-8011-5b86c940e7b7");
pub const FILE_TYPE_NOTIFICATION_GUID_CRASHDUMP_FILE = Guid.initString("9d453eb7-d2a6-4dbd-a2e3-fbd0ed9109a9");
pub const CSV_MGMTLOCK_CHECK_VOLUME_REDIRECTED = @as(u32, 1);
pub const CSV_INVALID_DEVICE_NUMBER = @as(u32, 4294967295);
pub const CSV_QUERY_MDS_PATH_V2_VERSION_1 = @as(u32, 1);
pub const CSV_QUERY_MDS_PATH_FLAG_STORAGE_ON_THIS_NODE_IS_CONNECTED = @as(u32, 1);
pub const CSV_QUERY_MDS_PATH_FLAG_CSV_DIRECT_IO_ENABLED = @as(u32, 2);
pub const CSV_QUERY_MDS_PATH_FLAG_SMB_BYPASS_CSV_ENABLED = @as(u32, 4);
pub const QUERY_FILE_LAYOUT_RESTART = @as(u32, 1);
pub const QUERY_FILE_LAYOUT_INCLUDE_NAMES = @as(u32, 2);
pub const QUERY_FILE_LAYOUT_INCLUDE_STREAMS = @as(u32, 4);
pub const QUERY_FILE_LAYOUT_INCLUDE_EXTENTS = @as(u32, 8);
pub const QUERY_FILE_LAYOUT_INCLUDE_EXTRA_INFO = @as(u32, 16);
pub const QUERY_FILE_LAYOUT_INCLUDE_STREAMS_WITH_NO_CLUSTERS_ALLOCATED = @as(u32, 32);
pub const QUERY_FILE_LAYOUT_INCLUDE_FULL_PATH_IN_NAMES = @as(u32, 64);
pub const QUERY_FILE_LAYOUT_INCLUDE_STREAM_INFORMATION = @as(u32, 128);
pub const QUERY_FILE_LAYOUT_INCLUDE_STREAM_INFORMATION_FOR_DSC_ATTRIBUTE = @as(u32, 256);
pub const QUERY_FILE_LAYOUT_INCLUDE_STREAM_INFORMATION_FOR_TXF_ATTRIBUTE = @as(u32, 512);
pub const QUERY_FILE_LAYOUT_INCLUDE_STREAM_INFORMATION_FOR_EFS_ATTRIBUTE = @as(u32, 1024);
pub const QUERY_FILE_LAYOUT_INCLUDE_ONLY_FILES_WITH_SPECIFIC_ATTRIBUTES = @as(u32, 2048);
pub const QUERY_FILE_LAYOUT_INCLUDE_FILES_WITH_DSC_ATTRIBUTE = @as(u32, 4096);
pub const QUERY_FILE_LAYOUT_INCLUDE_STREAM_INFORMATION_FOR_DATA_ATTRIBUTE = @as(u32, 8192);
pub const QUERY_FILE_LAYOUT_INCLUDE_STREAM_INFORMATION_FOR_REPARSE_ATTRIBUTE = @as(u32, 16384);
pub const QUERY_FILE_LAYOUT_INCLUDE_STREAM_INFORMATION_FOR_EA_ATTRIBUTE = @as(u32, 32768);
pub const QUERY_FILE_LAYOUT_SINGLE_INSTANCED = @as(u32, 1);
pub const FILE_LAYOUT_NAME_ENTRY_PRIMARY = @as(u32, 1);
pub const FILE_LAYOUT_NAME_ENTRY_DOS = @as(u32, 2);
pub const STREAM_LAYOUT_ENTRY_IMMOVABLE = @as(u32, 1);
pub const STREAM_LAYOUT_ENTRY_PINNED = @as(u32, 2);
pub const STREAM_LAYOUT_ENTRY_RESIDENT = @as(u32, 4);
pub const STREAM_LAYOUT_ENTRY_NO_CLUSTERS_ALLOCATED = @as(u32, 8);
pub const STREAM_LAYOUT_ENTRY_HAS_INFORMATION = @as(u32, 16);
pub const STREAM_EXTENT_ENTRY_AS_RETRIEVAL_POINTERS = @as(u32, 1);
pub const STREAM_EXTENT_ENTRY_ALL_EXTENTS = @as(u32, 2);
pub const CHECKSUM_TYPE_UNCHANGED = @as(i32, -1);
pub const CHECKSUM_TYPE_NONE = @as(u32, 0);
pub const CHECKSUM_TYPE_CRC32 = @as(u32, 1);
pub const CHECKSUM_TYPE_CRC64 = @as(u32, 2);
pub const CHECKSUM_TYPE_ECC = @as(u32, 3);
pub const CHECKSUM_TYPE_FIRST_UNUSED_TYPE = @as(u32, 4);
pub const FSCTL_INTEGRITY_FLAG_CHECKSUM_ENFORCEMENT_OFF = @as(u32, 1);
pub const OFFLOAD_READ_FLAG_ALL_ZERO_BEYOND_CURRENT_RANGE = @as(u32, 1);
pub const SET_PURGE_FAILURE_MODE_ENABLED = @as(u32, 1);
pub const SET_PURGE_FAILURE_MODE_DISABLED = @as(u32, 2);
pub const FILE_REGION_USAGE_VALID_CACHED_DATA = @as(u32, 1);
pub const FILE_REGION_USAGE_VALID_NONCACHED_DATA = @as(u32, 2);
pub const FILE_REGION_USAGE_OTHER_PAGE_ALIGNMENT = @as(u32, 4);
pub const FILE_REGION_USAGE_LARGE_PAGE_ALIGNMENT = @as(u32, 8);
pub const FILE_REGION_USAGE_HUGE_PAGE_ALIGNMENT = @as(u32, 16);
pub const FILE_REGION_USAGE_QUERY_ALIGNMENT = @as(u32, 8);
pub const FILE_STORAGE_TIER_NAME_LENGTH = @as(u32, 256);
pub const FILE_STORAGE_TIER_DESCRIPTION_LENGTH = @as(u32, 512);
pub const FILE_STORAGE_TIER_FLAG_WRITE_BACK_CACHE = @as(u32, 2097152);
pub const FILE_STORAGE_TIER_FLAG_READ_CACHE = @as(u32, 4194304);
pub const FILE_STORAGE_TIER_FLAG_PARITY = @as(u32, 8388608);
pub const FILE_STORAGE_TIER_FLAG_SMR = @as(u32, 16777216);
pub const QUERY_STORAGE_CLASSES_FLAGS_MEASURE_WRITE = @as(u32, 2147483648);
pub const QUERY_STORAGE_CLASSES_FLAGS_MEASURE_READ = @as(u32, 1073741824);
pub const QUERY_STORAGE_CLASSES_FLAGS_NO_DEFRAG_VOLUME = @as(u32, 536870912);
pub const QUERY_FILE_LAYOUT_REPARSE_DATA_INVALID = @as(u32, 1);
pub const QUERY_FILE_LAYOUT_REPARSE_TAG_INVALID = @as(u32, 2);
pub const DUPLICATE_EXTENTS_DATA_EX_SOURCE_ATOMIC = @as(u32, 1);
pub const DUPLICATE_EXTENTS_DATA_EX_ASYNC = @as(u32, 2);
pub const REFS_SMR_VOLUME_INFO_OUTPUT_VERSION_V0 = @as(u32, 0);
pub const REFS_SMR_VOLUME_INFO_OUTPUT_VERSION_V1 = @as(u32, 1);
pub const REFS_SMR_VOLUME_GC_PARAMETERS_VERSION_V1 = @as(u32, 1);
pub const STREAMS_INVALID_ID = @as(u32, 0);
pub const STREAMS_MAX_ID = @as(u32, 65535);
pub const STREAMS_ASSOCIATE_ID_CLEAR = @as(u32, 1);
pub const STREAMS_ASSOCIATE_ID_SET = @as(u32, 2);
pub const DAX_ALLOC_ALIGNMENT_FLAG_MANDATORY = @as(u32, 1);
pub const DAX_ALLOC_ALIGNMENT_FLAG_FALLBACK_SPECIFIED = @as(u32, 2);
pub const WOF_CURRENT_VERSION = @as(u32, 1);
pub const WOF_PROVIDER_CLOUD = @as(u32, 3);
pub const WIM_PROVIDER_CURRENT_VERSION = @as(u32, 1);
pub const WIM_PROVIDER_EXTERNAL_FLAG_NOT_ACTIVE = @as(u32, 1);
pub const WIM_PROVIDER_EXTERNAL_FLAG_SUSPENDED = @as(u32, 2);
pub const FILE_PROVIDER_CURRENT_VERSION = @as(u32, 1);
pub const FILE_PROVIDER_SINGLE_FILE = @as(u32, 1);
pub const FILE_PROVIDER_COMPRESSION_MAXIMUM = @as(u32, 4);
pub const FILE_PROVIDER_FLAG_COMPRESS_ON_WRITE = @as(u32, 1);
pub const CONTAINER_VOLUME_STATE_HOSTING_CONTAINER = @as(u32, 1);
pub const CONTAINER_ROOT_INFO_FLAG_SCRATCH_ROOT = @as(u32, 1);
pub const CONTAINER_ROOT_INFO_FLAG_LAYER_ROOT = @as(u32, 2);
pub const CONTAINER_ROOT_INFO_FLAG_VIRTUALIZATION_ROOT = @as(u32, 4);
pub const CONTAINER_ROOT_INFO_FLAG_VIRTUALIZATION_TARGET_ROOT = @as(u32, 8);
pub const CONTAINER_ROOT_INFO_FLAG_VIRTUALIZATION_EXCEPTION_ROOT = @as(u32, 16);
pub const CONTAINER_ROOT_INFO_FLAG_BIND_ROOT = @as(u32, 32);
pub const CONTAINER_ROOT_INFO_FLAG_BIND_TARGET_ROOT = @as(u32, 64);
pub const CONTAINER_ROOT_INFO_FLAG_BIND_EXCEPTION_ROOT = @as(u32, 128);
pub const CONTAINER_ROOT_INFO_FLAG_BIND_DO_NOT_MAP_NAME = @as(u32, 256);
pub const CONTAINER_ROOT_INFO_FLAG_UNION_LAYER_ROOT = @as(u32, 512);
pub const CONTAINER_ROOT_INFO_VALID_FLAGS = @as(u32, 1023);
pub const PROJFS_PROTOCOL_VERSION = @as(u32, 3);
pub const EFS_TRACKED_OFFSET_HEADER_FLAG = @as(u32, 1);
pub const SPACES_TRACKED_OFFSET_HEADER_FLAG = @as(u32, 2);
//--------------------------------------------------------------------------------
// Section: Types (521)
//--------------------------------------------------------------------------------
pub const GPT_ATTRIBUTES = enum(u64) {
ATTRIBUTE_PLATFORM_REQUIRED = 1,
BASIC_DATA_ATTRIBUTE_NO_DRIVE_LETTER = 9223372036854775808,
BASIC_DATA_ATTRIBUTE_HIDDEN = 4611686018427387904,
BASIC_DATA_ATTRIBUTE_SHADOW_COPY = 2305843009213693952,
BASIC_DATA_ATTRIBUTE_READ_ONLY = 1152921504606846976,
_,
pub fn initFlags(o: struct {
ATTRIBUTE_PLATFORM_REQUIRED: u1 = 0,
BASIC_DATA_ATTRIBUTE_NO_DRIVE_LETTER: u1 = 0,
BASIC_DATA_ATTRIBUTE_HIDDEN: u1 = 0,
BASIC_DATA_ATTRIBUTE_SHADOW_COPY: u1 = 0,
BASIC_DATA_ATTRIBUTE_READ_ONLY: u1 = 0,
}) GPT_ATTRIBUTES {
return @as(GPT_ATTRIBUTES, @enumFromInt(
(if (o.ATTRIBUTE_PLATFORM_REQUIRED == 1) @intFromEnum(GPT_ATTRIBUTES.ATTRIBUTE_PLATFORM_REQUIRED) else 0)
| (if (o.BASIC_DATA_ATTRIBUTE_NO_DRIVE_LETTER == 1) @intFromEnum(GPT_ATTRIBUTES.BASIC_DATA_ATTRIBUTE_NO_DRIVE_LETTER) else 0)
| (if (o.BASIC_DATA_ATTRIBUTE_HIDDEN == 1) @intFromEnum(GPT_ATTRIBUTES.BASIC_DATA_ATTRIBUTE_HIDDEN) else 0)
| (if (o.BASIC_DATA_ATTRIBUTE_SHADOW_COPY == 1) @intFromEnum(GPT_ATTRIBUTES.BASIC_DATA_ATTRIBUTE_SHADOW_COPY) else 0)
| (if (o.BASIC_DATA_ATTRIBUTE_READ_ONLY == 1) @intFromEnum(GPT_ATTRIBUTES.BASIC_DATA_ATTRIBUTE_READ_ONLY) else 0)
));
}
};
pub const GPT_ATTRIBUTE_PLATFORM_REQUIRED = GPT_ATTRIBUTES.ATTRIBUTE_PLATFORM_REQUIRED;
pub const GPT_BASIC_DATA_ATTRIBUTE_NO_DRIVE_LETTER = GPT_ATTRIBUTES.BASIC_DATA_ATTRIBUTE_NO_DRIVE_LETTER;
pub const GPT_BASIC_DATA_ATTRIBUTE_HIDDEN = GPT_ATTRIBUTES.BASIC_DATA_ATTRIBUTE_HIDDEN;
pub const GPT_BASIC_DATA_ATTRIBUTE_SHADOW_COPY = GPT_ATTRIBUTES.BASIC_DATA_ATTRIBUTE_SHADOW_COPY;
pub const GPT_BASIC_DATA_ATTRIBUTE_READ_ONLY = GPT_ATTRIBUTES.BASIC_DATA_ATTRIBUTE_READ_ONLY;
pub const USN_DELETE_FLAGS = enum(u32) {
DELETE = 1,
NOTIFY = 2,
_,
pub fn initFlags(o: struct {
DELETE: u1 = 0,
NOTIFY: u1 = 0,
}) USN_DELETE_FLAGS {
return @as(USN_DELETE_FLAGS, @enumFromInt(
(if (o.DELETE == 1) @intFromEnum(USN_DELETE_FLAGS.DELETE) else 0)
| (if (o.NOTIFY == 1) @intFromEnum(USN_DELETE_FLAGS.NOTIFY) else 0)
));
}
};
pub const USN_DELETE_FLAG_DELETE = USN_DELETE_FLAGS.DELETE;
pub const USN_DELETE_FLAG_NOTIFY = USN_DELETE_FLAGS.NOTIFY;
pub const CHANGER_FEATURES = enum(u32) {
BAR_CODE_SCANNER_INSTALLED = 1,
CARTRIDGE_MAGAZINE = 256,
CLEANER_ACCESS_NOT_VALID = 262144,
CLEANER_SLOT = 64,
CLOSE_IEPORT = 4,
DEVICE_REINITIALIZE_CAPABLE = 134217728,
DRIVE_CLEANING_REQUIRED = 65536,
DRIVE_EMPTY_ON_DOOR_ACCESS = 536870912,
EXCHANGE_MEDIA = 32,
INIT_ELEM_STAT_WITH_RANGE = 2,
KEYPAD_ENABLE_DISABLE = 268435456,
LOCK_UNLOCK = 128,
MEDIUM_FLIP = 512,
OPEN_IEPORT = 8,
POSITION_TO_ELEMENT = 1024,
PREDISMOUNT_EJECT_REQUIRED = 131072,
PREMOUNT_EJECT_REQUIRED = 524288,
REPORT_IEPORT_STATE = 2048,
SERIAL_NUMBER_VALID = 67108864,
STATUS_NON_VOLATILE = 16,
STORAGE_DRIVE = 4096,
STORAGE_IEPORT = 8192,
STORAGE_SLOT = 16384,
STORAGE_TRANSPORT = 32768,
VOLUME_ASSERT = 4194304,
VOLUME_IDENTIFICATION = 1048576,
VOLUME_REPLACE = 8388608,
VOLUME_SEARCH = 2097152,
VOLUME_UNDEFINE = 16777216,
_,
pub fn initFlags(o: struct {
BAR_CODE_SCANNER_INSTALLED: u1 = 0,
CARTRIDGE_MAGAZINE: u1 = 0,
CLEANER_ACCESS_NOT_VALID: u1 = 0,
CLEANER_SLOT: u1 = 0,
CLOSE_IEPORT: u1 = 0,
DEVICE_REINITIALIZE_CAPABLE: u1 = 0,
DRIVE_CLEANING_REQUIRED: u1 = 0,
DRIVE_EMPTY_ON_DOOR_ACCESS: u1 = 0,
EXCHANGE_MEDIA: u1 = 0,
INIT_ELEM_STAT_WITH_RANGE: u1 = 0,
KEYPAD_ENABLE_DISABLE: u1 = 0,
LOCK_UNLOCK: u1 = 0,
MEDIUM_FLIP: u1 = 0,
OPEN_IEPORT: u1 = 0,
POSITION_TO_ELEMENT: u1 = 0,
PREDISMOUNT_EJECT_REQUIRED: u1 = 0,
PREMOUNT_EJECT_REQUIRED: u1 = 0,
REPORT_IEPORT_STATE: u1 = 0,
SERIAL_NUMBER_VALID: u1 = 0,
STATUS_NON_VOLATILE: u1 = 0,
STORAGE_DRIVE: u1 = 0,
STORAGE_IEPORT: u1 = 0,
STORAGE_SLOT: u1 = 0,
STORAGE_TRANSPORT: u1 = 0,
VOLUME_ASSERT: u1 = 0,
VOLUME_IDENTIFICATION: u1 = 0,
VOLUME_REPLACE: u1 = 0,
VOLUME_SEARCH: u1 = 0,
VOLUME_UNDEFINE: u1 = 0,
}) CHANGER_FEATURES {
return @as(CHANGER_FEATURES, @enumFromInt(
(if (o.BAR_CODE_SCANNER_INSTALLED == 1) @intFromEnum(CHANGER_FEATURES.BAR_CODE_SCANNER_INSTALLED) else 0)
| (if (o.CARTRIDGE_MAGAZINE == 1) @intFromEnum(CHANGER_FEATURES.CARTRIDGE_MAGAZINE) else 0)
| (if (o.CLEANER_ACCESS_NOT_VALID == 1) @intFromEnum(CHANGER_FEATURES.CLEANER_ACCESS_NOT_VALID) else 0)
| (if (o.CLEANER_SLOT == 1) @intFromEnum(CHANGER_FEATURES.CLEANER_SLOT) else 0)
| (if (o.CLOSE_IEPORT == 1) @intFromEnum(CHANGER_FEATURES.CLOSE_IEPORT) else 0)
| (if (o.DEVICE_REINITIALIZE_CAPABLE == 1) @intFromEnum(CHANGER_FEATURES.DEVICE_REINITIALIZE_CAPABLE) else 0)
| (if (o.DRIVE_CLEANING_REQUIRED == 1) @intFromEnum(CHANGER_FEATURES.DRIVE_CLEANING_REQUIRED) else 0)
| (if (o.DRIVE_EMPTY_ON_DOOR_ACCESS == 1) @intFromEnum(CHANGER_FEATURES.DRIVE_EMPTY_ON_DOOR_ACCESS) else 0)
| (if (o.EXCHANGE_MEDIA == 1) @intFromEnum(CHANGER_FEATURES.EXCHANGE_MEDIA) else 0)
| (if (o.INIT_ELEM_STAT_WITH_RANGE == 1) @intFromEnum(CHANGER_FEATURES.INIT_ELEM_STAT_WITH_RANGE) else 0)
| (if (o.KEYPAD_ENABLE_DISABLE == 1) @intFromEnum(CHANGER_FEATURES.KEYPAD_ENABLE_DISABLE) else 0)
| (if (o.LOCK_UNLOCK == 1) @intFromEnum(CHANGER_FEATURES.LOCK_UNLOCK) else 0)
| (if (o.MEDIUM_FLIP == 1) @intFromEnum(CHANGER_FEATURES.MEDIUM_FLIP) else 0)
| (if (o.OPEN_IEPORT == 1) @intFromEnum(CHANGER_FEATURES.OPEN_IEPORT) else 0)
| (if (o.POSITION_TO_ELEMENT == 1) @intFromEnum(CHANGER_FEATURES.POSITION_TO_ELEMENT) else 0)
| (if (o.PREDISMOUNT_EJECT_REQUIRED == 1) @intFromEnum(CHANGER_FEATURES.PREDISMOUNT_EJECT_REQUIRED) else 0)
| (if (o.PREMOUNT_EJECT_REQUIRED == 1) @intFromEnum(CHANGER_FEATURES.PREMOUNT_EJECT_REQUIRED) else 0)
| (if (o.REPORT_IEPORT_STATE == 1) @intFromEnum(CHANGER_FEATURES.REPORT_IEPORT_STATE) else 0)
| (if (o.SERIAL_NUMBER_VALID == 1) @intFromEnum(CHANGER_FEATURES.SERIAL_NUMBER_VALID) else 0)
| (if (o.STATUS_NON_VOLATILE == 1) @intFromEnum(CHANGER_FEATURES.STATUS_NON_VOLATILE) else 0)
| (if (o.STORAGE_DRIVE == 1) @intFromEnum(CHANGER_FEATURES.STORAGE_DRIVE) else 0)
| (if (o.STORAGE_IEPORT == 1) @intFromEnum(CHANGER_FEATURES.STORAGE_IEPORT) else 0)
| (if (o.STORAGE_SLOT == 1) @intFromEnum(CHANGER_FEATURES.STORAGE_SLOT) else 0)
| (if (o.STORAGE_TRANSPORT == 1) @intFromEnum(CHANGER_FEATURES.STORAGE_TRANSPORT) else 0)
| (if (o.VOLUME_ASSERT == 1) @intFromEnum(CHANGER_FEATURES.VOLUME_ASSERT) else 0)
| (if (o.VOLUME_IDENTIFICATION == 1) @intFromEnum(CHANGER_FEATURES.VOLUME_IDENTIFICATION) else 0)
| (if (o.VOLUME_REPLACE == 1) @intFromEnum(CHANGER_FEATURES.VOLUME_REPLACE) else 0)
| (if (o.VOLUME_SEARCH == 1) @intFromEnum(CHANGER_FEATURES.VOLUME_SEARCH) else 0)
| (if (o.VOLUME_UNDEFINE == 1) @intFromEnum(CHANGER_FEATURES.VOLUME_UNDEFINE) else 0)
));
}
};
pub const CHANGER_BAR_CODE_SCANNER_INSTALLED = CHANGER_FEATURES.BAR_CODE_SCANNER_INSTALLED;
pub const CHANGER_CARTRIDGE_MAGAZINE = CHANGER_FEATURES.CARTRIDGE_MAGAZINE;
pub const CHANGER_CLEANER_ACCESS_NOT_VALID = CHANGER_FEATURES.CLEANER_ACCESS_NOT_VALID;
pub const CHANGER_CLEANER_SLOT = CHANGER_FEATURES.CLEANER_SLOT;
pub const CHANGER_CLOSE_IEPORT = CHANGER_FEATURES.CLOSE_IEPORT;
pub const CHANGER_DEVICE_REINITIALIZE_CAPABLE = CHANGER_FEATURES.DEVICE_REINITIALIZE_CAPABLE;
pub const CHANGER_DRIVE_CLEANING_REQUIRED = CHANGER_FEATURES.DRIVE_CLEANING_REQUIRED;
pub const CHANGER_DRIVE_EMPTY_ON_DOOR_ACCESS = CHANGER_FEATURES.DRIVE_EMPTY_ON_DOOR_ACCESS;
pub const CHANGER_EXCHANGE_MEDIA = CHANGER_FEATURES.EXCHANGE_MEDIA;
pub const CHANGER_INIT_ELEM_STAT_WITH_RANGE = CHANGER_FEATURES.INIT_ELEM_STAT_WITH_RANGE;
pub const CHANGER_KEYPAD_ENABLE_DISABLE = CHANGER_FEATURES.KEYPAD_ENABLE_DISABLE;
pub const CHANGER_LOCK_UNLOCK = CHANGER_FEATURES.LOCK_UNLOCK;
pub const CHANGER_MEDIUM_FLIP = CHANGER_FEATURES.MEDIUM_FLIP;
pub const CHANGER_OPEN_IEPORT = CHANGER_FEATURES.OPEN_IEPORT;
pub const CHANGER_POSITION_TO_ELEMENT = CHANGER_FEATURES.POSITION_TO_ELEMENT;
pub const CHANGER_PREDISMOUNT_EJECT_REQUIRED = CHANGER_FEATURES.PREDISMOUNT_EJECT_REQUIRED;
pub const CHANGER_PREMOUNT_EJECT_REQUIRED = CHANGER_FEATURES.PREMOUNT_EJECT_REQUIRED;
pub const CHANGER_REPORT_IEPORT_STATE = CHANGER_FEATURES.REPORT_IEPORT_STATE;
pub const CHANGER_SERIAL_NUMBER_VALID = CHANGER_FEATURES.SERIAL_NUMBER_VALID;
pub const CHANGER_STATUS_NON_VOLATILE = CHANGER_FEATURES.STATUS_NON_VOLATILE;
pub const CHANGER_STORAGE_DRIVE = CHANGER_FEATURES.STORAGE_DRIVE;
pub const CHANGER_STORAGE_IEPORT = CHANGER_FEATURES.STORAGE_IEPORT;
pub const CHANGER_STORAGE_SLOT = CHANGER_FEATURES.STORAGE_SLOT;
pub const CHANGER_STORAGE_TRANSPORT = CHANGER_FEATURES.STORAGE_TRANSPORT;
pub const CHANGER_VOLUME_ASSERT = CHANGER_FEATURES.VOLUME_ASSERT;
pub const CHANGER_VOLUME_IDENTIFICATION = CHANGER_FEATURES.VOLUME_IDENTIFICATION;
pub const CHANGER_VOLUME_REPLACE = CHANGER_FEATURES.VOLUME_REPLACE;
pub const CHANGER_VOLUME_SEARCH = CHANGER_FEATURES.VOLUME_SEARCH;
pub const CHANGER_VOLUME_UNDEFINE = CHANGER_FEATURES.VOLUME_UNDEFINE;
pub const TXFS_RMF_LAGS = enum(u32) {
LOGGING_MODE = 1,
RENAME_RM = 2,
LOG_CONTAINER_COUNT_MAX = 4,
LOG_CONTAINER_COUNT_MIN = 8,
LOG_GROWTH_INCREMENT_NUM_CONTAINERS = 16,
LOG_GROWTH_INCREMENT_PERCENT = 32,
LOG_AUTO_SHRINK_PERCENTAGE = 64,
LOG_NO_CONTAINER_COUNT_MAX = 128,
LOG_NO_CONTAINER_COUNT_MIN = 256,
GROW_LOG = 1024,
SHRINK_LOG = 2048,
ENFORCE_MINIMUM_SIZE = 4096,
PRESERVE_CHANGES = 8192,
RESET_RM_AT_NEXT_START = 16384,
DO_NOT_RESET_RM_AT_NEXT_START = 32768,
PREFER_CONSISTENCY = 65536,
PREFER_AVAILABILITY = 131072,
_,
pub fn initFlags(o: struct {
LOGGING_MODE: u1 = 0,
RENAME_RM: u1 = 0,
LOG_CONTAINER_COUNT_MAX: u1 = 0,
LOG_CONTAINER_COUNT_MIN: u1 = 0,
LOG_GROWTH_INCREMENT_NUM_CONTAINERS: u1 = 0,
LOG_GROWTH_INCREMENT_PERCENT: u1 = 0,
LOG_AUTO_SHRINK_PERCENTAGE: u1 = 0,
LOG_NO_CONTAINER_COUNT_MAX: u1 = 0,
LOG_NO_CONTAINER_COUNT_MIN: u1 = 0,
GROW_LOG: u1 = 0,
SHRINK_LOG: u1 = 0,
ENFORCE_MINIMUM_SIZE: u1 = 0,
PRESERVE_CHANGES: u1 = 0,
RESET_RM_AT_NEXT_START: u1 = 0,
DO_NOT_RESET_RM_AT_NEXT_START: u1 = 0,
PREFER_CONSISTENCY: u1 = 0,
PREFER_AVAILABILITY: u1 = 0,
}) TXFS_RMF_LAGS {
return @as(TXFS_RMF_LAGS, @enumFromInt(
(if (o.LOGGING_MODE == 1) @intFromEnum(TXFS_RMF_LAGS.LOGGING_MODE) else 0)
| (if (o.RENAME_RM == 1) @intFromEnum(TXFS_RMF_LAGS.RENAME_RM) else 0)
| (if (o.LOG_CONTAINER_COUNT_MAX == 1) @intFromEnum(TXFS_RMF_LAGS.LOG_CONTAINER_COUNT_MAX) else 0)
| (if (o.LOG_CONTAINER_COUNT_MIN == 1) @intFromEnum(TXFS_RMF_LAGS.LOG_CONTAINER_COUNT_MIN) else 0)
| (if (o.LOG_GROWTH_INCREMENT_NUM_CONTAINERS == 1) @intFromEnum(TXFS_RMF_LAGS.LOG_GROWTH_INCREMENT_NUM_CONTAINERS) else 0)
| (if (o.LOG_GROWTH_INCREMENT_PERCENT == 1) @intFromEnum(TXFS_RMF_LAGS.LOG_GROWTH_INCREMENT_PERCENT) else 0)
| (if (o.LOG_AUTO_SHRINK_PERCENTAGE == 1) @intFromEnum(TXFS_RMF_LAGS.LOG_AUTO_SHRINK_PERCENTAGE) else 0)
| (if (o.LOG_NO_CONTAINER_COUNT_MAX == 1) @intFromEnum(TXFS_RMF_LAGS.LOG_NO_CONTAINER_COUNT_MAX) else 0)
| (if (o.LOG_NO_CONTAINER_COUNT_MIN == 1) @intFromEnum(TXFS_RMF_LAGS.LOG_NO_CONTAINER_COUNT_MIN) else 0)
| (if (o.GROW_LOG == 1) @intFromEnum(TXFS_RMF_LAGS.GROW_LOG) else 0)
| (if (o.SHRINK_LOG == 1) @intFromEnum(TXFS_RMF_LAGS.SHRINK_LOG) else 0)
| (if (o.ENFORCE_MINIMUM_SIZE == 1) @intFromEnum(TXFS_RMF_LAGS.ENFORCE_MINIMUM_SIZE) else 0)
| (if (o.PRESERVE_CHANGES == 1) @intFromEnum(TXFS_RMF_LAGS.PRESERVE_CHANGES) else 0)
| (if (o.RESET_RM_AT_NEXT_START == 1) @intFromEnum(TXFS_RMF_LAGS.RESET_RM_AT_NEXT_START) else 0)
| (if (o.DO_NOT_RESET_RM_AT_NEXT_START == 1) @intFromEnum(TXFS_RMF_LAGS.DO_NOT_RESET_RM_AT_NEXT_START) else 0)
| (if (o.PREFER_CONSISTENCY == 1) @intFromEnum(TXFS_RMF_LAGS.PREFER_CONSISTENCY) else 0)
| (if (o.PREFER_AVAILABILITY == 1) @intFromEnum(TXFS_RMF_LAGS.PREFER_AVAILABILITY) else 0)
));
}
};
pub const TXFS_RM_FLAG_LOGGING_MODE = TXFS_RMF_LAGS.LOGGING_MODE;
pub const TXFS_RM_FLAG_RENAME_RM = TXFS_RMF_LAGS.RENAME_RM;
pub const TXFS_RM_FLAG_LOG_CONTAINER_COUNT_MAX = TXFS_RMF_LAGS.LOG_CONTAINER_COUNT_MAX;
pub const TXFS_RM_FLAG_LOG_CONTAINER_COUNT_MIN = TXFS_RMF_LAGS.LOG_CONTAINER_COUNT_MIN;
pub const TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_NUM_CONTAINERS = TXFS_RMF_LAGS.LOG_GROWTH_INCREMENT_NUM_CONTAINERS;
pub const TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_PERCENT = TXFS_RMF_LAGS.LOG_GROWTH_INCREMENT_PERCENT;
pub const TXFS_RM_FLAG_LOG_AUTO_SHRINK_PERCENTAGE = TXFS_RMF_LAGS.LOG_AUTO_SHRINK_PERCENTAGE;
pub const TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MAX = TXFS_RMF_LAGS.LOG_NO_CONTAINER_COUNT_MAX;
pub const TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MIN = TXFS_RMF_LAGS.LOG_NO_CONTAINER_COUNT_MIN;
pub const TXFS_RM_FLAG_GROW_LOG = TXFS_RMF_LAGS.GROW_LOG;
pub const TXFS_RM_FLAG_SHRINK_LOG = TXFS_RMF_LAGS.SHRINK_LOG;
pub const TXFS_RM_FLAG_ENFORCE_MINIMUM_SIZE = TXFS_RMF_LAGS.ENFORCE_MINIMUM_SIZE;
pub const TXFS_RM_FLAG_PRESERVE_CHANGES = TXFS_RMF_LAGS.PRESERVE_CHANGES;
pub const TXFS_RM_FLAG_RESET_RM_AT_NEXT_START = TXFS_RMF_LAGS.RESET_RM_AT_NEXT_START;
pub const TXFS_RM_FLAG_DO_NOT_RESET_RM_AT_NEXT_START = TXFS_RMF_LAGS.DO_NOT_RESET_RM_AT_NEXT_START;
pub const TXFS_RM_FLAG_PREFER_CONSISTENCY = TXFS_RMF_LAGS.PREFER_CONSISTENCY;
pub const TXFS_RM_FLAG_PREFER_AVAILABILITY = TXFS_RMF_LAGS.PREFER_AVAILABILITY;
pub const FILESYSTEM_STATISTICS_TYPE = enum(u16) {
EXFAT = 3,
FAT = 2,
NTFS = 1,
};
pub const FILESYSTEM_STATISTICS_TYPE_EXFAT = FILESYSTEM_STATISTICS_TYPE.EXFAT;
pub const FILESYSTEM_STATISTICS_TYPE_FAT = FILESYSTEM_STATISTICS_TYPE.FAT;
pub const FILESYSTEM_STATISTICS_TYPE_NTFS = FILESYSTEM_STATISTICS_TYPE.NTFS;
pub const USN_SOURCE_INFO_ID = enum(u32) {
AUXILIARY_DATA = 2,
DATA_MANAGEMENT = 1,
REPLICATION_MANAGEMENT = 4,
CLIENT_REPLICATION_MANAGEMENT = 8,
};
pub const USN_SOURCE_AUXILIARY_DATA = USN_SOURCE_INFO_ID.AUXILIARY_DATA;
pub const USN_SOURCE_DATA_MANAGEMENT = USN_SOURCE_INFO_ID.DATA_MANAGEMENT;
pub const USN_SOURCE_REPLICATION_MANAGEMENT = USN_SOURCE_INFO_ID.REPLICATION_MANAGEMENT;
pub const USN_SOURCE_CLIENT_REPLICATION_MANAGEMENT = USN_SOURCE_INFO_ID.CLIENT_REPLICATION_MANAGEMENT;
pub const FILE_STORAGE_TIER_FLAGS = enum(u32) {
Y = 131072,
_,
pub fn initFlags(o: struct {
Y: u1 = 0,
}) FILE_STORAGE_TIER_FLAGS {
return @as(FILE_STORAGE_TIER_FLAGS, @enumFromInt(
(if (o.Y == 1) @intFromEnum(FILE_STORAGE_TIER_FLAGS.Y) else 0)
));
}
};
pub const FILE_STORAGE_TIER_FLAG_NO_SEEK_PENALTY = FILE_STORAGE_TIER_FLAGS.Y;
pub const CHANGER_ELEMENT_STATUS_FLAGS = enum(u32) {
ACCESS = 8,
AVOLTAG = 536870912,
EXCEPT = 4,
EXENAB = 16,
FULL = 1,
ID_VALID = 8192,
IMPEXP = 2,
INENAB = 32,
INVERT = 4194304,
LUN_VALID = 4096,
NOT_BUS = 32768,
PVOLTAG = 268435456,
SVALID = 8388608,
PRODUCT_DATA = 64,
_,
pub fn initFlags(o: struct {
ACCESS: u1 = 0,
AVOLTAG: u1 = 0,
EXCEPT: u1 = 0,
EXENAB: u1 = 0,
FULL: u1 = 0,
ID_VALID: u1 = 0,
IMPEXP: u1 = 0,
INENAB: u1 = 0,
INVERT: u1 = 0,
LUN_VALID: u1 = 0,
NOT_BUS: u1 = 0,
PVOLTAG: u1 = 0,
SVALID: u1 = 0,
PRODUCT_DATA: u1 = 0,
}) CHANGER_ELEMENT_STATUS_FLAGS {
return @as(CHANGER_ELEMENT_STATUS_FLAGS, @enumFromInt(
(if (o.ACCESS == 1) @intFromEnum(CHANGER_ELEMENT_STATUS_FLAGS.ACCESS) else 0)
| (if (o.AVOLTAG == 1) @intFromEnum(CHANGER_ELEMENT_STATUS_FLAGS.AVOLTAG) else 0)
| (if (o.EXCEPT == 1) @intFromEnum(CHANGER_ELEMENT_STATUS_FLAGS.EXCEPT) else 0)
| (if (o.EXENAB == 1) @intFromEnum(CHANGER_ELEMENT_STATUS_FLAGS.EXENAB) else 0)
| (if (o.FULL == 1) @intFromEnum(CHANGER_ELEMENT_STATUS_FLAGS.FULL) else 0)
| (if (o.ID_VALID == 1) @intFromEnum(CHANGER_ELEMENT_STATUS_FLAGS.ID_VALID) else 0)
| (if (o.IMPEXP == 1) @intFromEnum(CHANGER_ELEMENT_STATUS_FLAGS.IMPEXP) else 0)
| (if (o.INENAB == 1) @intFromEnum(CHANGER_ELEMENT_STATUS_FLAGS.INENAB) else 0)
| (if (o.INVERT == 1) @intFromEnum(CHANGER_ELEMENT_STATUS_FLAGS.INVERT) else 0)
| (if (o.LUN_VALID == 1) @intFromEnum(CHANGER_ELEMENT_STATUS_FLAGS.LUN_VALID) else 0)
| (if (o.NOT_BUS == 1) @intFromEnum(CHANGER_ELEMENT_STATUS_FLAGS.NOT_BUS) else 0)
| (if (o.PVOLTAG == 1) @intFromEnum(CHANGER_ELEMENT_STATUS_FLAGS.PVOLTAG) else 0)
| (if (o.SVALID == 1) @intFromEnum(CHANGER_ELEMENT_STATUS_FLAGS.SVALID) else 0)
| (if (o.PRODUCT_DATA == 1) @intFromEnum(CHANGER_ELEMENT_STATUS_FLAGS.PRODUCT_DATA) else 0)
));
}
};
pub const ELEMENT_STATUS_ACCESS = CHANGER_ELEMENT_STATUS_FLAGS.ACCESS;
pub const ELEMENT_STATUS_AVOLTAG = CHANGER_ELEMENT_STATUS_FLAGS.AVOLTAG;
pub const ELEMENT_STATUS_EXCEPT = CHANGER_ELEMENT_STATUS_FLAGS.EXCEPT;
pub const ELEMENT_STATUS_EXENAB = CHANGER_ELEMENT_STATUS_FLAGS.EXENAB;
pub const ELEMENT_STATUS_FULL = CHANGER_ELEMENT_STATUS_FLAGS.FULL;
pub const ELEMENT_STATUS_ID_VALID = CHANGER_ELEMENT_STATUS_FLAGS.ID_VALID;
pub const ELEMENT_STATUS_IMPEXP = CHANGER_ELEMENT_STATUS_FLAGS.IMPEXP;
pub const ELEMENT_STATUS_INENAB = CHANGER_ELEMENT_STATUS_FLAGS.INENAB;
pub const ELEMENT_STATUS_INVERT = CHANGER_ELEMENT_STATUS_FLAGS.INVERT;
pub const ELEMENT_STATUS_LUN_VALID = CHANGER_ELEMENT_STATUS_FLAGS.LUN_VALID;
pub const ELEMENT_STATUS_NOT_BUS = CHANGER_ELEMENT_STATUS_FLAGS.NOT_BUS;
pub const ELEMENT_STATUS_PVOLTAG = CHANGER_ELEMENT_STATUS_FLAGS.PVOLTAG;
pub const ELEMENT_STATUS_SVALID = CHANGER_ELEMENT_STATUS_FLAGS.SVALID;
pub const ELEMENT_STATUS_PRODUCT_DATA = CHANGER_ELEMENT_STATUS_FLAGS.PRODUCT_DATA;
pub const GET_CHANGER_PARAMETERS_FEATURES1 = enum(u32) {
CLEANER_AUTODISMOUNT = 2147483652,
CLEANER_OPS_NOT_SUPPORTED = 2147483712,
IEPORT_USER_CONTROL_CLOSE = 2147483904,
IEPORT_USER_CONTROL_OPEN = 2147483776,
MOVE_EXTENDS_IEPORT = 2147484160,
MOVE_RETRACTS_IEPORT = 2147484672,
PREDISMOUNT_ALIGN_TO_DRIVE = 2147483650,
PREDISMOUNT_ALIGN_TO_SLOT = 2147483649,
RTN_MEDIA_TO_ORIGINAL_ADDR = 2147483680,
SLOTS_USE_TRAYS = 2147483664,
TRUE_EXCHANGE_CAPABLE = 2147483656,
_,
pub fn initFlags(o: struct {
CLEANER_AUTODISMOUNT: u1 = 0,
CLEANER_OPS_NOT_SUPPORTED: u1 = 0,
IEPORT_USER_CONTROL_CLOSE: u1 = 0,
IEPORT_USER_CONTROL_OPEN: u1 = 0,
MOVE_EXTENDS_IEPORT: u1 = 0,
MOVE_RETRACTS_IEPORT: u1 = 0,
PREDISMOUNT_ALIGN_TO_DRIVE: u1 = 0,
PREDISMOUNT_ALIGN_TO_SLOT: u1 = 0,
RTN_MEDIA_TO_ORIGINAL_ADDR: u1 = 0,
SLOTS_USE_TRAYS: u1 = 0,
TRUE_EXCHANGE_CAPABLE: u1 = 0,
}) GET_CHANGER_PARAMETERS_FEATURES1 {
return @as(GET_CHANGER_PARAMETERS_FEATURES1, @enumFromInt(
(if (o.CLEANER_AUTODISMOUNT == 1) @intFromEnum(GET_CHANGER_PARAMETERS_FEATURES1.CLEANER_AUTODISMOUNT) else 0)
| (if (o.CLEANER_OPS_NOT_SUPPORTED == 1) @intFromEnum(GET_CHANGER_PARAMETERS_FEATURES1.CLEANER_OPS_NOT_SUPPORTED) else 0)
| (if (o.IEPORT_USER_CONTROL_CLOSE == 1) @intFromEnum(GET_CHANGER_PARAMETERS_FEATURES1.IEPORT_USER_CONTROL_CLOSE) else 0)
| (if (o.IEPORT_USER_CONTROL_OPEN == 1) @intFromEnum(GET_CHANGER_PARAMETERS_FEATURES1.IEPORT_USER_CONTROL_OPEN) else 0)
| (if (o.MOVE_EXTENDS_IEPORT == 1) @intFromEnum(GET_CHANGER_PARAMETERS_FEATURES1.MOVE_EXTENDS_IEPORT) else 0)
| (if (o.MOVE_RETRACTS_IEPORT == 1) @intFromEnum(GET_CHANGER_PARAMETERS_FEATURES1.MOVE_RETRACTS_IEPORT) else 0)
| (if (o.PREDISMOUNT_ALIGN_TO_DRIVE == 1) @intFromEnum(GET_CHANGER_PARAMETERS_FEATURES1.PREDISMOUNT_ALIGN_TO_DRIVE) else 0)
| (if (o.PREDISMOUNT_ALIGN_TO_SLOT == 1) @intFromEnum(GET_CHANGER_PARAMETERS_FEATURES1.PREDISMOUNT_ALIGN_TO_SLOT) else 0)
| (if (o.RTN_MEDIA_TO_ORIGINAL_ADDR == 1) @intFromEnum(GET_CHANGER_PARAMETERS_FEATURES1.RTN_MEDIA_TO_ORIGINAL_ADDR) else 0)
| (if (o.SLOTS_USE_TRAYS == 1) @intFromEnum(GET_CHANGER_PARAMETERS_FEATURES1.SLOTS_USE_TRAYS) else 0)
| (if (o.TRUE_EXCHANGE_CAPABLE == 1) @intFromEnum(GET_CHANGER_PARAMETERS_FEATURES1.TRUE_EXCHANGE_CAPABLE) else 0)
));
}
};
pub const CHANGER_CLEANER_AUTODISMOUNT = GET_CHANGER_PARAMETERS_FEATURES1.CLEANER_AUTODISMOUNT;
pub const CHANGER_CLEANER_OPS_NOT_SUPPORTED = GET_CHANGER_PARAMETERS_FEATURES1.CLEANER_OPS_NOT_SUPPORTED;
pub const CHANGER_IEPORT_USER_CONTROL_CLOSE = GET_CHANGER_PARAMETERS_FEATURES1.IEPORT_USER_CONTROL_CLOSE;
pub const CHANGER_IEPORT_USER_CONTROL_OPEN = GET_CHANGER_PARAMETERS_FEATURES1.IEPORT_USER_CONTROL_OPEN;
pub const CHANGER_MOVE_EXTENDS_IEPORT = GET_CHANGER_PARAMETERS_FEATURES1.MOVE_EXTENDS_IEPORT;
pub const CHANGER_MOVE_RETRACTS_IEPORT = GET_CHANGER_PARAMETERS_FEATURES1.MOVE_RETRACTS_IEPORT;
pub const CHANGER_PREDISMOUNT_ALIGN_TO_DRIVE = GET_CHANGER_PARAMETERS_FEATURES1.PREDISMOUNT_ALIGN_TO_DRIVE;
pub const CHANGER_PREDISMOUNT_ALIGN_TO_SLOT = GET_CHANGER_PARAMETERS_FEATURES1.PREDISMOUNT_ALIGN_TO_SLOT;
pub const CHANGER_RTN_MEDIA_TO_ORIGINAL_ADDR = GET_CHANGER_PARAMETERS_FEATURES1.RTN_MEDIA_TO_ORIGINAL_ADDR;
pub const CHANGER_SLOTS_USE_TRAYS = GET_CHANGER_PARAMETERS_FEATURES1.SLOTS_USE_TRAYS;
pub const CHANGER_TRUE_EXCHANGE_CAPABLE = GET_CHANGER_PARAMETERS_FEATURES1.TRUE_EXCHANGE_CAPABLE;
pub const STORAGE_HOTPLUG_INFO = extern struct {
Size: u32,
MediaRemovable: BOOLEAN,
MediaHotplug: BOOLEAN,
DeviceHotplug: BOOLEAN,
WriteCacheEnableOverride: BOOLEAN,
};
pub const STORAGE_DEVICE_NUMBER = extern struct {
DeviceType: u32,
DeviceNumber: u32,
PartitionNumber: u32,
};
pub const STORAGE_DEVICE_NUMBERS = extern struct {
Version: u32,
Size: u32,
NumberOfDevices: u32,
Devices: [1]STORAGE_DEVICE_NUMBER,
};
pub const STORAGE_DEVICE_NUMBER_EX = extern struct {
Version: u32,
Size: u32,
Flags: u32,
DeviceType: u32,
DeviceNumber: u32,
DeviceGuid: Guid,
PartitionNumber: u32,
};
pub const STORAGE_BUS_RESET_REQUEST = extern struct {
PathId: u8,
};
pub const STORAGE_BREAK_RESERVATION_REQUEST = extern struct {
Length: u32,
_unused: u8,
PathId: u8,
TargetId: u8,
Lun: u8,
};
pub const PREVENT_MEDIA_REMOVAL = extern struct {
PreventMediaRemoval: BOOLEAN,
};
pub const CLASS_MEDIA_CHANGE_CONTEXT = extern struct {
MediaChangeCount: u32,
NewState: u32,
};
pub const TAPE_STATISTICS = extern struct {
Version: u32,
Flags: u32,
RecoveredWrites: LARGE_INTEGER,
UnrecoveredWrites: LARGE_INTEGER,
RecoveredReads: LARGE_INTEGER,
UnrecoveredReads: LARGE_INTEGER,
CompressionRatioReads: u8,
CompressionRatioWrites: u8,
};
pub const TAPE_GET_STATISTICS = extern struct {
Operation: u32,
};
pub const STORAGE_MEDIA_TYPE = enum(i32) {
DDS_4mm = 32,
MiniQic = 33,
Travan = 34,
QIC = 35,
MP_8mm = 36,
AME_8mm = 37,
AIT1_8mm = 38,
DLT = 39,
NCTP = 40,
IBM_3480 = 41,
IBM_3490E = 42,
IBM_Magstar_3590 = 43,
IBM_Magstar_MP = 44,
STK_DATA_D3 = 45,
SONY_DTF = 46,
DV_6mm = 47,
DMI = 48,
SONY_D2 = 49,
CLEANER_CARTRIDGE = 50,
CD_ROM = 51,
CD_R = 52,
CD_RW = 53,
DVD_ROM = 54,
DVD_R = 55,
DVD_RW = 56,
MO_3_RW = 57,
MO_5_WO = 58,
MO_5_RW = 59,
MO_5_LIMDOW = 60,
PC_5_WO = 61,
PC_5_RW = 62,
PD_5_RW = 63,
ABL_5_WO = 64,
PINNACLE_APEX_5_RW = 65,
SONY_12_WO = 66,
PHILIPS_12_WO = 67,
HITACHI_12_WO = 68,
CYGNET_12_WO = 69,
KODAK_14_WO = 70,
MO_NFR_525 = 71,
NIKON_12_RW = 72,
IOMEGA_ZIP = 73,
IOMEGA_JAZ = 74,
SYQUEST_EZ135 = 75,
SYQUEST_EZFLYER = 76,
SYQUEST_SYJET = 77,
AVATAR_F2 = 78,
MP2_8mm = 79,
DST_S = 80,
DST_M = 81,
DST_L = 82,
VXATape_1 = 83,
VXATape_2 = 84,
STK_9840 = 85,
LTO_Ultrium = 86,
LTO_Accelis = 87,
DVD_RAM = 88,
AIT_8mm = 89,
ADR_1 = 90,
ADR_2 = 91,
STK_9940 = 92,
SAIT = 93,
VXATape = 94,
};
pub const DDS_4mm = STORAGE_MEDIA_TYPE.DDS_4mm;
pub const MiniQic = STORAGE_MEDIA_TYPE.MiniQic;
pub const Travan = STORAGE_MEDIA_TYPE.Travan;
pub const QIC = STORAGE_MEDIA_TYPE.QIC;
pub const MP_8mm = STORAGE_MEDIA_TYPE.MP_8mm;
pub const AME_8mm = STORAGE_MEDIA_TYPE.AME_8mm;
pub const AIT1_8mm = STORAGE_MEDIA_TYPE.AIT1_8mm;
pub const DLT = STORAGE_MEDIA_TYPE.DLT;
pub const NCTP = STORAGE_MEDIA_TYPE.NCTP;
pub const IBM_3480 = STORAGE_MEDIA_TYPE.IBM_3480;
pub const IBM_3490E = STORAGE_MEDIA_TYPE.IBM_3490E;
pub const IBM_Magstar_3590 = STORAGE_MEDIA_TYPE.IBM_Magstar_3590;
pub const IBM_Magstar_MP = STORAGE_MEDIA_TYPE.IBM_Magstar_MP;
pub const STK_DATA_D3 = STORAGE_MEDIA_TYPE.STK_DATA_D3;
pub const SONY_DTF = STORAGE_MEDIA_TYPE.SONY_DTF;
pub const DV_6mm = STORAGE_MEDIA_TYPE.DV_6mm;
pub const DMI = STORAGE_MEDIA_TYPE.DMI;
pub const SONY_D2 = STORAGE_MEDIA_TYPE.SONY_D2;
pub const CLEANER_CARTRIDGE = STORAGE_MEDIA_TYPE.CLEANER_CARTRIDGE;
pub const CD_ROM = STORAGE_MEDIA_TYPE.CD_ROM;
pub const CD_R = STORAGE_MEDIA_TYPE.CD_R;
pub const CD_RW = STORAGE_MEDIA_TYPE.CD_RW;
pub const DVD_ROM = STORAGE_MEDIA_TYPE.DVD_ROM;
pub const DVD_R = STORAGE_MEDIA_TYPE.DVD_R;
pub const DVD_RW = STORAGE_MEDIA_TYPE.DVD_RW;
pub const MO_3_RW = STORAGE_MEDIA_TYPE.MO_3_RW;
pub const MO_5_WO = STORAGE_MEDIA_TYPE.MO_5_WO;
pub const MO_5_RW = STORAGE_MEDIA_TYPE.MO_5_RW;
pub const MO_5_LIMDOW = STORAGE_MEDIA_TYPE.MO_5_LIMDOW;
pub const PC_5_WO = STORAGE_MEDIA_TYPE.PC_5_WO;
pub const PC_5_RW = STORAGE_MEDIA_TYPE.PC_5_RW;
pub const PD_5_RW = STORAGE_MEDIA_TYPE.PD_5_RW;
pub const ABL_5_WO = STORAGE_MEDIA_TYPE.ABL_5_WO;
pub const PINNACLE_APEX_5_RW = STORAGE_MEDIA_TYPE.PINNACLE_APEX_5_RW;
pub const SONY_12_WO = STORAGE_MEDIA_TYPE.SONY_12_WO;
pub const PHILIPS_12_WO = STORAGE_MEDIA_TYPE.PHILIPS_12_WO;
pub const HITACHI_12_WO = STORAGE_MEDIA_TYPE.HITACHI_12_WO;
pub const CYGNET_12_WO = STORAGE_MEDIA_TYPE.CYGNET_12_WO;
pub const KODAK_14_WO = STORAGE_MEDIA_TYPE.KODAK_14_WO;
pub const MO_NFR_525 = STORAGE_MEDIA_TYPE.MO_NFR_525;
pub const NIKON_12_RW = STORAGE_MEDIA_TYPE.NIKON_12_RW;
pub const IOMEGA_ZIP = STORAGE_MEDIA_TYPE.IOMEGA_ZIP;
pub const IOMEGA_JAZ = STORAGE_MEDIA_TYPE.IOMEGA_JAZ;
pub const SYQUEST_EZ135 = STORAGE_MEDIA_TYPE.SYQUEST_EZ135;
pub const SYQUEST_EZFLYER = STORAGE_MEDIA_TYPE.SYQUEST_EZFLYER;
pub const SYQUEST_SYJET = STORAGE_MEDIA_TYPE.SYQUEST_SYJET;
pub const AVATAR_F2 = STORAGE_MEDIA_TYPE.AVATAR_F2;
pub const MP2_8mm = STORAGE_MEDIA_TYPE.MP2_8mm;
pub const DST_S = STORAGE_MEDIA_TYPE.DST_S;
pub const DST_M = STORAGE_MEDIA_TYPE.DST_M;
pub const DST_L = STORAGE_MEDIA_TYPE.DST_L;
pub const VXATape_1 = STORAGE_MEDIA_TYPE.VXATape_1;
pub const VXATape_2 = STORAGE_MEDIA_TYPE.VXATape_2;
pub const STK_9840 = STORAGE_MEDIA_TYPE.STK_9840;
pub const LTO_Ultrium = STORAGE_MEDIA_TYPE.LTO_Ultrium;
pub const LTO_Accelis = STORAGE_MEDIA_TYPE.LTO_Accelis;
pub const DVD_RAM = STORAGE_MEDIA_TYPE.DVD_RAM;
pub const AIT_8mm = STORAGE_MEDIA_TYPE.AIT_8mm;
pub const ADR_1 = STORAGE_MEDIA_TYPE.ADR_1;
pub const ADR_2 = STORAGE_MEDIA_TYPE.ADR_2;
pub const STK_9940 = STORAGE_MEDIA_TYPE.STK_9940;
pub const SAIT = STORAGE_MEDIA_TYPE.SAIT;
pub const VXATape = STORAGE_MEDIA_TYPE.VXATape;
pub const DEVICE_MEDIA_INFO = extern struct {
DeviceSpecific: extern union {
DiskInfo: extern struct {
Cylinders: LARGE_INTEGER,
MediaType: STORAGE_MEDIA_TYPE,
TracksPerCylinder: u32,
SectorsPerTrack: u32,
BytesPerSector: u32,
NumberMediaSides: u32,
MediaCharacteristics: u32,
},
RemovableDiskInfo: extern struct {
Cylinders: LARGE_INTEGER,
MediaType: STORAGE_MEDIA_TYPE,
TracksPerCylinder: u32,
SectorsPerTrack: u32,
BytesPerSector: u32,
NumberMediaSides: u32,
MediaCharacteristics: u32,
},
TapeInfo: extern struct {
MediaType: STORAGE_MEDIA_TYPE,
MediaCharacteristics: u32,
CurrentBlockSize: u32,
BusType: STORAGE_BUS_TYPE,
BusSpecificData: extern union {
ScsiInformation: extern struct {
MediumType: u8,
DensityCode: u8,
},
},
},
},
};
pub const GET_MEDIA_TYPES = extern struct {
DeviceType: u32,
MediaInfoCount: u32,
MediaInfo: [1]DEVICE_MEDIA_INFO,
};
pub const STORAGE_PREDICT_FAILURE = extern struct {
PredictFailure: u32,
VendorSpecific: [512]u8,
};
pub const STORAGE_FAILURE_PREDICTION_CONFIG = extern struct {
Version: u32,
Size: u32,
Set: BOOLEAN,
Enabled: BOOLEAN,
Reserved: u16,
};
pub const STORAGE_QUERY_TYPE = enum(i32) {
StandardQuery = 0,
ExistsQuery = 1,
MaskQuery = 2,
QueryMaxDefined = 3,
};
pub const PropertyStandardQuery = STORAGE_QUERY_TYPE.StandardQuery;
pub const PropertyExistsQuery = STORAGE_QUERY_TYPE.ExistsQuery;
pub const PropertyMaskQuery = STORAGE_QUERY_TYPE.MaskQuery;
pub const PropertyQueryMaxDefined = STORAGE_QUERY_TYPE.QueryMaxDefined;
pub const STORAGE_SET_TYPE = enum(i32) {
StandardSet = 0,
ExistsSet = 1,
SetMaxDefined = 2,
};
pub const PropertyStandardSet = STORAGE_SET_TYPE.StandardSet;
pub const PropertyExistsSet = STORAGE_SET_TYPE.ExistsSet;
pub const PropertySetMaxDefined = STORAGE_SET_TYPE.SetMaxDefined;
pub const STORAGE_PROPERTY_ID = enum(i32) {
DeviceProperty = 0,
AdapterProperty = 1,
DeviceIdProperty = 2,
DeviceUniqueIdProperty = 3,
DeviceWriteCacheProperty = 4,
MiniportProperty = 5,
AccessAlignmentProperty = 6,
DeviceSeekPenaltyProperty = 7,
DeviceTrimProperty = 8,
DeviceWriteAggregationProperty = 9,
DeviceDeviceTelemetryProperty = 10,
DeviceLBProvisioningProperty = 11,
DevicePowerProperty = 12,
DeviceCopyOffloadProperty = 13,
DeviceResiliencyProperty = 14,
DeviceMediumProductType = 15,
AdapterRpmbProperty = 16,
AdapterCryptoProperty = 17,
DeviceIoCapabilityProperty = 48,
AdapterProtocolSpecificProperty = 49,
DeviceProtocolSpecificProperty = 50,
AdapterTemperatureProperty = 51,
DeviceTemperatureProperty = 52,
AdapterPhysicalTopologyProperty = 53,
DevicePhysicalTopologyProperty = 54,
DeviceAttributesProperty = 55,
DeviceManagementStatus = 56,
AdapterSerialNumberProperty = 57,
DeviceLocationProperty = 58,
DeviceNumaProperty = 59,
DeviceZonedDeviceProperty = 60,
DeviceUnsafeShutdownCount = 61,
DeviceEnduranceProperty = 62,
DeviceLedStateProperty = 63,
DeviceSelfEncryptionProperty = 64,
FruIdProperty = 65,
};
pub const StorageDeviceProperty = STORAGE_PROPERTY_ID.DeviceProperty;
pub const StorageAdapterProperty = STORAGE_PROPERTY_ID.AdapterProperty;
pub const StorageDeviceIdProperty = STORAGE_PROPERTY_ID.DeviceIdProperty;
pub const StorageDeviceUniqueIdProperty = STORAGE_PROPERTY_ID.DeviceUniqueIdProperty;
pub const StorageDeviceWriteCacheProperty = STORAGE_PROPERTY_ID.DeviceWriteCacheProperty;
pub const StorageMiniportProperty = STORAGE_PROPERTY_ID.MiniportProperty;
pub const StorageAccessAlignmentProperty = STORAGE_PROPERTY_ID.AccessAlignmentProperty;
pub const StorageDeviceSeekPenaltyProperty = STORAGE_PROPERTY_ID.DeviceSeekPenaltyProperty;
pub const StorageDeviceTrimProperty = STORAGE_PROPERTY_ID.DeviceTrimProperty;
pub const StorageDeviceWriteAggregationProperty = STORAGE_PROPERTY_ID.DeviceWriteAggregationProperty;
pub const StorageDeviceDeviceTelemetryProperty = STORAGE_PROPERTY_ID.DeviceDeviceTelemetryProperty;
pub const StorageDeviceLBProvisioningProperty = STORAGE_PROPERTY_ID.DeviceLBProvisioningProperty;
pub const StorageDevicePowerProperty = STORAGE_PROPERTY_ID.DevicePowerProperty;
pub const StorageDeviceCopyOffloadProperty = STORAGE_PROPERTY_ID.DeviceCopyOffloadProperty;
pub const StorageDeviceResiliencyProperty = STORAGE_PROPERTY_ID.DeviceResiliencyProperty;
pub const StorageDeviceMediumProductType = STORAGE_PROPERTY_ID.DeviceMediumProductType;
pub const StorageAdapterRpmbProperty = STORAGE_PROPERTY_ID.AdapterRpmbProperty;
pub const StorageAdapterCryptoProperty = STORAGE_PROPERTY_ID.AdapterCryptoProperty;
pub const StorageDeviceIoCapabilityProperty = STORAGE_PROPERTY_ID.DeviceIoCapabilityProperty;
pub const StorageAdapterProtocolSpecificProperty = STORAGE_PROPERTY_ID.AdapterProtocolSpecificProperty;
pub const StorageDeviceProtocolSpecificProperty = STORAGE_PROPERTY_ID.DeviceProtocolSpecificProperty;
pub const StorageAdapterTemperatureProperty = STORAGE_PROPERTY_ID.AdapterTemperatureProperty;
pub const StorageDeviceTemperatureProperty = STORAGE_PROPERTY_ID.DeviceTemperatureProperty;
pub const StorageAdapterPhysicalTopologyProperty = STORAGE_PROPERTY_ID.AdapterPhysicalTopologyProperty;
pub const StorageDevicePhysicalTopologyProperty = STORAGE_PROPERTY_ID.DevicePhysicalTopologyProperty;
pub const StorageDeviceAttributesProperty = STORAGE_PROPERTY_ID.DeviceAttributesProperty;
pub const StorageDeviceManagementStatus = STORAGE_PROPERTY_ID.DeviceManagementStatus;
pub const StorageAdapterSerialNumberProperty = STORAGE_PROPERTY_ID.AdapterSerialNumberProperty;
pub const StorageDeviceLocationProperty = STORAGE_PROPERTY_ID.DeviceLocationProperty;
pub const StorageDeviceNumaProperty = STORAGE_PROPERTY_ID.DeviceNumaProperty;
pub const StorageDeviceZonedDeviceProperty = STORAGE_PROPERTY_ID.DeviceZonedDeviceProperty;
pub const StorageDeviceUnsafeShutdownCount = STORAGE_PROPERTY_ID.DeviceUnsafeShutdownCount;
pub const StorageDeviceEnduranceProperty = STORAGE_PROPERTY_ID.DeviceEnduranceProperty;
pub const StorageDeviceLedStateProperty = STORAGE_PROPERTY_ID.DeviceLedStateProperty;
pub const StorageDeviceSelfEncryptionProperty = STORAGE_PROPERTY_ID.DeviceSelfEncryptionProperty;
pub const StorageFruIdProperty = STORAGE_PROPERTY_ID.FruIdProperty;
pub const STORAGE_PROPERTY_QUERY = extern struct {
PropertyId: STORAGE_PROPERTY_ID,
QueryType: STORAGE_QUERY_TYPE,
AdditionalParameters: [1]u8,
};
pub const STORAGE_PROPERTY_SET = extern struct {
PropertyId: STORAGE_PROPERTY_ID,
SetType: STORAGE_SET_TYPE,
AdditionalParameters: [1]u8,
};
pub const STORAGE_DESCRIPTOR_HEADER = extern struct {
Version: u32,
Size: u32,
};
pub const STORAGE_DEVICE_DESCRIPTOR = extern struct {
Version: u32,
Size: u32,
DeviceType: u8,
DeviceTypeModifier: u8,
RemovableMedia: BOOLEAN,
CommandQueueing: BOOLEAN,
VendorIdOffset: u32,
ProductIdOffset: u32,
ProductRevisionOffset: u32,
SerialNumberOffset: u32,
BusType: STORAGE_BUS_TYPE,
RawPropertiesLength: u32,
RawDeviceProperties: [1]u8,
};
pub const STORAGE_ADAPTER_DESCRIPTOR = extern struct {
Version: u32,
Size: u32,
MaximumTransferLength: u32,
MaximumPhysicalPages: u32,
AlignmentMask: u32,
AdapterUsesPio: BOOLEAN,
AdapterScansDown: BOOLEAN,
CommandQueueing: BOOLEAN,
AcceleratedTransfer: BOOLEAN,
BusType: u8,
BusMajorVersion: u16,
BusMinorVersion: u16,
SrbType: u8,
AddressType: u8,
};
pub const STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR = extern struct {
Version: u32,
Size: u32,
BytesPerCacheLine: u32,
BytesOffsetForCacheAlignment: u32,
BytesPerLogicalSector: u32,
BytesPerPhysicalSector: u32,
BytesOffsetForSectorAlignment: u32,
};
pub const STORAGE_MEDIUM_PRODUCT_TYPE_DESCRIPTOR = extern struct {
Version: u32,
Size: u32,
MediumProductType: u32,
};
pub const STORAGE_PORT_CODE_SET = enum(i32) {
Reserved = 0,
Storport = 1,
SCSIport = 2,
Spaceport = 3,
ATAport = 4,
USBport = 5,
SBP2port = 6,
SDport = 7,
};
pub const StoragePortCodeSetReserved = STORAGE_PORT_CODE_SET.Reserved;
pub const StoragePortCodeSetStorport = STORAGE_PORT_CODE_SET.Storport;
pub const StoragePortCodeSetSCSIport = STORAGE_PORT_CODE_SET.SCSIport;
pub const StoragePortCodeSetSpaceport = STORAGE_PORT_CODE_SET.Spaceport;
pub const StoragePortCodeSetATAport = STORAGE_PORT_CODE_SET.ATAport;
pub const StoragePortCodeSetUSBport = STORAGE_PORT_CODE_SET.USBport;
pub const StoragePortCodeSetSBP2port = STORAGE_PORT_CODE_SET.SBP2port;
pub const StoragePortCodeSetSDport = STORAGE_PORT_CODE_SET.SDport;
pub const STORAGE_MINIPORT_DESCRIPTOR = extern struct {
Version: u32,
Size: u32,
Portdriver: STORAGE_PORT_CODE_SET,
LUNResetSupported: BOOLEAN,
TargetResetSupported: BOOLEAN,
IoTimeoutValue: u16,
ExtraIoInfoSupported: BOOLEAN,
Flags: extern union {
Anonymous: extern struct {
_bitfield: u8,
},
AsBYTE: u8,
},
Reserved0: [2]u8,
Reserved1: u32,
};
pub const STORAGE_IDENTIFIER_CODE_SET = enum(i32) {
Reserved = 0,
Binary = 1,
Ascii = 2,
Utf8 = 3,
};
pub const StorageIdCodeSetReserved = STORAGE_IDENTIFIER_CODE_SET.Reserved;
pub const StorageIdCodeSetBinary = STORAGE_IDENTIFIER_CODE_SET.Binary;
pub const StorageIdCodeSetAscii = STORAGE_IDENTIFIER_CODE_SET.Ascii;
pub const StorageIdCodeSetUtf8 = STORAGE_IDENTIFIER_CODE_SET.Utf8;
pub const 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 StorageIdTypeVendorSpecific = STORAGE_IDENTIFIER_TYPE.VendorSpecific;
pub const StorageIdTypeVendorId = STORAGE_IDENTIFIER_TYPE.VendorId;
pub const StorageIdTypeEUI64 = STORAGE_IDENTIFIER_TYPE.EUI64;
pub const StorageIdTypeFCPHName = STORAGE_IDENTIFIER_TYPE.FCPHName;
pub const StorageIdTypePortRelative = STORAGE_IDENTIFIER_TYPE.PortRelative;
pub const StorageIdTypeTargetPortGroup = STORAGE_IDENTIFIER_TYPE.TargetPortGroup;
pub const StorageIdTypeLogicalUnitGroup = STORAGE_IDENTIFIER_TYPE.LogicalUnitGroup;
pub const StorageIdTypeMD5LogicalUnitIdentifier = STORAGE_IDENTIFIER_TYPE.MD5LogicalUnitIdentifier;
pub const StorageIdTypeScsiNameString = STORAGE_IDENTIFIER_TYPE.ScsiNameString;
pub const STORAGE_ID_NAA_FORMAT = enum(i32) {
Extended = 2,
Registered = 3,
ERegisteredExtended = 5,
};
pub const StorageIdNAAFormatIEEEExtended = STORAGE_ID_NAA_FORMAT.Extended;
pub const StorageIdNAAFormatIEEERegistered = STORAGE_ID_NAA_FORMAT.Registered;
pub const StorageIdNAAFormatIEEEERegisteredExtended = STORAGE_ID_NAA_FORMAT.ERegisteredExtended;
pub const STORAGE_ASSOCIATION_TYPE = enum(i32) {
Device = 0,
Port = 1,
Target = 2,
};
pub const StorageIdAssocDevice = STORAGE_ASSOCIATION_TYPE.Device;
pub const StorageIdAssocPort = STORAGE_ASSOCIATION_TYPE.Port;
pub const StorageIdAssocTarget = STORAGE_ASSOCIATION_TYPE.Target;
pub const STORAGE_IDENTIFIER = extern struct {
CodeSet: STORAGE_IDENTIFIER_CODE_SET,
Type: STORAGE_IDENTIFIER_TYPE,
IdentifierSize: u16,
NextOffset: u16,
Association: STORAGE_ASSOCIATION_TYPE,
Identifier: [1]u8,
};
pub const STORAGE_DEVICE_ID_DESCRIPTOR = extern struct {
Version: u32,
Size: u32,
NumberOfIdentifiers: u32,
Identifiers: [1]u8,
};
pub const DEVICE_SEEK_PENALTY_DESCRIPTOR = extern struct {
Version: u32,
Size: u32,
IncursSeekPenalty: BOOLEAN,
};
pub const DEVICE_WRITE_AGGREGATION_DESCRIPTOR = extern struct {
Version: u32,
Size: u32,
BenefitsFromWriteAggregation: BOOLEAN,
};
pub const DEVICE_TRIM_DESCRIPTOR = extern struct {
Version: u32,
Size: u32,
TrimEnabled: BOOLEAN,
};
pub const DEVICE_LB_PROVISIONING_DESCRIPTOR = extern struct {
Version: u32,
Size: u32,
_bitfield: u8,
Reserved1: [7]u8,
OptimalUnmapGranularity: u64,
UnmapGranularityAlignment: u64,
MaxUnmapLbaCount: u32,
MaxUnmapBlockDescriptorCount: u32,
};
pub const STORAGE_LB_PROVISIONING_MAP_RESOURCES = extern struct {
Size: u32,
Version: u32,
_bitfield1: u8,
Reserved1: [3]u8,
_bitfield2: u8,
Reserved3: [3]u8,
AvailableMappingResources: u64,
UsedMappingResources: u64,
};
pub const DEVICE_POWER_DESCRIPTOR = extern struct {
Version: u32,
Size: u32,
DeviceAttentionSupported: BOOLEAN,
AsynchronousNotificationSupported: BOOLEAN,
IdlePowerManagementEnabled: BOOLEAN,
D3ColdEnabled: BOOLEAN,
D3ColdSupported: BOOLEAN,
NoVerifyDuringIdlePower: BOOLEAN,
Reserved: [2]u8,
IdleTimeoutInMS: u32,
};
pub const DEVICE_COPY_OFFLOAD_DESCRIPTOR = extern struct {
Version: u32,
Size: u32,
MaximumTokenLifetime: u32,
DefaultTokenLifetime: u32,
MaximumTransferSize: u64,
OptimalTransferCount: u64,
MaximumDataDescriptors: u32,
MaximumTransferLengthPerDescriptor: u32,
OptimalTransferLengthPerDescriptor: u32,
OptimalTransferLengthGranularity: u16,
Reserved: [2]u8,
};
pub const STORAGE_DEVICE_RESILIENCY_DESCRIPTOR = extern struct {
Version: u32,
Size: u32,
NameOffset: u32,
NumberOfLogicalCopies: u32,
NumberOfPhysicalCopies: u32,
PhysicalDiskRedundancy: u32,
NumberOfColumns: u32,
Interleave: u32,
};
pub const STORAGE_RPMB_FRAME_TYPE = enum(i32) {
Unknown = 0,
Standard = 1,
Max = 2,
};
pub const StorageRpmbFrameTypeUnknown = STORAGE_RPMB_FRAME_TYPE.Unknown;
pub const StorageRpmbFrameTypeStandard = STORAGE_RPMB_FRAME_TYPE.Standard;
pub const StorageRpmbFrameTypeMax = STORAGE_RPMB_FRAME_TYPE.Max;
pub const STORAGE_RPMB_DESCRIPTOR = extern struct {
Version: u32,
Size: u32,
SizeInBytes: u32,
MaxReliableWriteSizeInBytes: u32,
FrameFormat: STORAGE_RPMB_FRAME_TYPE,
};
pub const STORAGE_CRYPTO_ALGORITHM_ID = enum(i32) {
Unknown = 0,
XTSAES = 1,
BitlockerAESCBC = 2,
AESECB = 3,
ESSIVAESCBC = 4,
Max = 5,
};
pub const StorageCryptoAlgorithmUnknown = STORAGE_CRYPTO_ALGORITHM_ID.Unknown;
pub const StorageCryptoAlgorithmXTSAES = STORAGE_CRYPTO_ALGORITHM_ID.XTSAES;
pub const StorageCryptoAlgorithmBitlockerAESCBC = STORAGE_CRYPTO_ALGORITHM_ID.BitlockerAESCBC;
pub const StorageCryptoAlgorithmAESECB = STORAGE_CRYPTO_ALGORITHM_ID.AESECB;
pub const StorageCryptoAlgorithmESSIVAESCBC = STORAGE_CRYPTO_ALGORITHM_ID.ESSIVAESCBC;
pub const StorageCryptoAlgorithmMax = STORAGE_CRYPTO_ALGORITHM_ID.Max;
pub const STORAGE_CRYPTO_KEY_SIZE = enum(i32) {
Unknown = 0,
@"128Bits" = 1,
@"192Bits" = 2,
@"256Bits" = 3,
@"512Bits" = 4,
};
pub const StorageCryptoKeySizeUnknown = STORAGE_CRYPTO_KEY_SIZE.Unknown;
pub const StorageCryptoKeySize128Bits = STORAGE_CRYPTO_KEY_SIZE.@"128Bits";
pub const StorageCryptoKeySize192Bits = STORAGE_CRYPTO_KEY_SIZE.@"192Bits";
pub const StorageCryptoKeySize256Bits = STORAGE_CRYPTO_KEY_SIZE.@"256Bits";
pub const StorageCryptoKeySize512Bits = STORAGE_CRYPTO_KEY_SIZE.@"512Bits";
pub const STORAGE_CRYPTO_CAPABILITY = extern struct {
Version: u32,
Size: u32,
CryptoCapabilityIndex: u32,
AlgorithmId: STORAGE_CRYPTO_ALGORITHM_ID,
KeySize: STORAGE_CRYPTO_KEY_SIZE,
DataUnitSizeBitmask: u32,
};
pub const STORAGE_CRYPTO_DESCRIPTOR = extern struct {
Version: u32,
Size: u32,
NumKeysSupported: u32,
NumCryptoCapabilities: u32,
CryptoCapabilities: [1]STORAGE_CRYPTO_CAPABILITY,
};
pub const STORAGE_TIER_MEDIA_TYPE = enum(i32) {
Unspecified = 0,
Disk = 1,
Ssd = 2,
Scm = 4,
Max = 5,
};
pub const StorageTierMediaTypeUnspecified = STORAGE_TIER_MEDIA_TYPE.Unspecified;
pub const StorageTierMediaTypeDisk = STORAGE_TIER_MEDIA_TYPE.Disk;
pub const StorageTierMediaTypeSsd = STORAGE_TIER_MEDIA_TYPE.Ssd;
pub const StorageTierMediaTypeScm = STORAGE_TIER_MEDIA_TYPE.Scm;
pub const StorageTierMediaTypeMax = STORAGE_TIER_MEDIA_TYPE.Max;
pub const STORAGE_TIER_CLASS = enum(i32) {
Unspecified = 0,
Capacity = 1,
Performance = 2,
Max = 3,
};
pub const StorageTierClassUnspecified = STORAGE_TIER_CLASS.Unspecified;
pub const StorageTierClassCapacity = STORAGE_TIER_CLASS.Capacity;
pub const StorageTierClassPerformance = STORAGE_TIER_CLASS.Performance;
pub const StorageTierClassMax = STORAGE_TIER_CLASS.Max;
pub const STORAGE_TIER = extern struct {
Id: Guid,
Name: [256]u16,
Description: [256]u16,
Flags: u64,
ProvisionedCapacity: u64,
MediaType: STORAGE_TIER_MEDIA_TYPE,
Class: STORAGE_TIER_CLASS,
};
pub const STORAGE_DEVICE_TIERING_DESCRIPTOR = extern struct {
Version: u32,
Size: u32,
Flags: u32,
TotalNumberOfTiers: u32,
NumberOfTiersReturned: u32,
Tiers: [1]STORAGE_TIER,
};
pub const STORAGE_DEVICE_FAULT_DOMAIN_DESCRIPTOR = extern struct {
Version: u32,
Size: u32,
NumberOfFaultDomains: u32,
FaultDomainIds: [1]Guid,
};
pub const STORAGE_PROTOCOL_TYPE = enum(i32) {
Unknown = 0,
Scsi = 1,
Ata = 2,
Nvme = 3,
Sd = 4,
Ufs = 5,
Proprietary = 126,
MaxReserved = 127,
};
pub const ProtocolTypeUnknown = STORAGE_PROTOCOL_TYPE.Unknown;
pub const ProtocolTypeScsi = STORAGE_PROTOCOL_TYPE.Scsi;
pub const ProtocolTypeAta = STORAGE_PROTOCOL_TYPE.Ata;
pub const ProtocolTypeNvme = STORAGE_PROTOCOL_TYPE.Nvme;
pub const ProtocolTypeSd = STORAGE_PROTOCOL_TYPE.Sd;
pub const ProtocolTypeUfs = STORAGE_PROTOCOL_TYPE.Ufs;
pub const ProtocolTypeProprietary = STORAGE_PROTOCOL_TYPE.Proprietary;
pub const ProtocolTypeMaxReserved = STORAGE_PROTOCOL_TYPE.MaxReserved;
pub const STORAGE_PROTOCOL_NVME_DATA_TYPE = enum(i32) {
Unknown = 0,
Identify = 1,
LogPage = 2,
Feature = 3,
};
pub const NVMeDataTypeUnknown = STORAGE_PROTOCOL_NVME_DATA_TYPE.Unknown;
pub const NVMeDataTypeIdentify = STORAGE_PROTOCOL_NVME_DATA_TYPE.Identify;
pub const NVMeDataTypeLogPage = STORAGE_PROTOCOL_NVME_DATA_TYPE.LogPage;
pub const NVMeDataTypeFeature = STORAGE_PROTOCOL_NVME_DATA_TYPE.Feature;
pub const STORAGE_PROTOCOL_ATA_DATA_TYPE = enum(i32) {
Unknown = 0,
Identify = 1,
LogPage = 2,
};
pub const AtaDataTypeUnknown = STORAGE_PROTOCOL_ATA_DATA_TYPE.Unknown;
pub const AtaDataTypeIdentify = STORAGE_PROTOCOL_ATA_DATA_TYPE.Identify;
pub const AtaDataTypeLogPage = STORAGE_PROTOCOL_ATA_DATA_TYPE.LogPage;
pub const STORAGE_PROTOCOL_UFS_DATA_TYPE = enum(i32) {
Unknown = 0,
QueryDescriptor = 1,
QueryAttribute = 2,
QueryFlag = 3,
QueryDmeAttribute = 4,
QueryDmePeerAttribute = 5,
Max = 6,
};
pub const UfsDataTypeUnknown = STORAGE_PROTOCOL_UFS_DATA_TYPE.Unknown;
pub const UfsDataTypeQueryDescriptor = STORAGE_PROTOCOL_UFS_DATA_TYPE.QueryDescriptor;
pub const UfsDataTypeQueryAttribute = STORAGE_PROTOCOL_UFS_DATA_TYPE.QueryAttribute;
pub const UfsDataTypeQueryFlag = STORAGE_PROTOCOL_UFS_DATA_TYPE.QueryFlag;
pub const UfsDataTypeQueryDmeAttribute = STORAGE_PROTOCOL_UFS_DATA_TYPE.QueryDmeAttribute;
pub const UfsDataTypeQueryDmePeerAttribute = STORAGE_PROTOCOL_UFS_DATA_TYPE.QueryDmePeerAttribute;
pub const UfsDataTypeMax = STORAGE_PROTOCOL_UFS_DATA_TYPE.Max;
pub const STORAGE_PROTOCOL_DATA_SUBVALUE_GET_LOG_PAGE = extern union {
Anonymous: extern struct {
_bitfield: u32,
},
AsUlong: u32,
};
pub const STORAGE_PROTOCOL_SPECIFIC_DATA = extern struct {
ProtocolType: STORAGE_PROTOCOL_TYPE,
DataType: u32,
ProtocolDataRequestValue: u32,
ProtocolDataRequestSubValue: u32,
ProtocolDataOffset: u32,
ProtocolDataLength: u32,
FixedProtocolReturnData: u32,
ProtocolDataRequestSubValue2: u32,
ProtocolDataRequestSubValue3: u32,
ProtocolDataRequestSubValue4: u32,
};
pub const STORAGE_PROTOCOL_SPECIFIC_DATA_EXT = extern struct {
ProtocolType: STORAGE_PROTOCOL_TYPE,
DataType: u32,
ProtocolDataValue: u32,
ProtocolDataSubValue: u32,
ProtocolDataOffset: u32,
ProtocolDataLength: u32,
FixedProtocolReturnData: u32,
ProtocolDataSubValue2: u32,
ProtocolDataSubValue3: u32,
ProtocolDataSubValue4: u32,
ProtocolDataSubValue5: u32,
Reserved: [5]u32,
};
pub const STORAGE_PROTOCOL_DATA_DESCRIPTOR = extern struct {
Version: u32,
Size: u32,
ProtocolSpecificData: STORAGE_PROTOCOL_SPECIFIC_DATA,
};
pub const STORAGE_PROTOCOL_DATA_DESCRIPTOR_EXT = extern struct {
Version: u32,
Size: u32,
ProtocolSpecificData: STORAGE_PROTOCOL_SPECIFIC_DATA_EXT,
};
pub const STORAGE_TEMPERATURE_INFO = extern struct {
Index: u16,
Temperature: i16,
OverThreshold: i16,
UnderThreshold: i16,
OverThresholdChangable: BOOLEAN,
UnderThresholdChangable: BOOLEAN,
EventGenerated: BOOLEAN,
Reserved0: u8,
Reserved1: u32,
};
pub const STORAGE_TEMPERATURE_DATA_DESCRIPTOR = extern struct {
Version: u32,
Size: u32,
CriticalTemperature: i16,
WarningTemperature: i16,
InfoCount: u16,
Reserved0: [2]u8,
Reserved1: [2]u32,
TemperatureInfo: [1]STORAGE_TEMPERATURE_INFO,
};
pub const STORAGE_TEMPERATURE_THRESHOLD = extern struct {
Version: u32,
Size: u32,
Flags: u16,
Index: u16,
Threshold: i16,
OverThreshold: BOOLEAN,
Reserved: u8,
};
pub const STORAGE_DEVICE_FORM_FACTOR = enum(i32) {
Unknown = 0,
@"3_5" = 1,
@"2_5" = 2,
@"1_8" = 3,
@"1_8Less" = 4,
Embedded = 5,
MemoryCard = 6,
mSata = 7,
M_2 = 8,
PCIeBoard = 9,
Dimm = 10,
};
pub const FormFactorUnknown = STORAGE_DEVICE_FORM_FACTOR.Unknown;
pub const FormFactor3_5 = STORAGE_DEVICE_FORM_FACTOR.@"3_5";
pub const FormFactor2_5 = STORAGE_DEVICE_FORM_FACTOR.@"2_5";
pub const FormFactor1_8 = STORAGE_DEVICE_FORM_FACTOR.@"1_8";
pub const FormFactor1_8Less = STORAGE_DEVICE_FORM_FACTOR.@"1_8Less";
pub const FormFactorEmbedded = STORAGE_DEVICE_FORM_FACTOR.Embedded;
pub const FormFactorMemoryCard = STORAGE_DEVICE_FORM_FACTOR.MemoryCard;
pub const FormFactormSata = STORAGE_DEVICE_FORM_FACTOR.mSata;
pub const FormFactorM_2 = STORAGE_DEVICE_FORM_FACTOR.M_2;
pub const FormFactorPCIeBoard = STORAGE_DEVICE_FORM_FACTOR.PCIeBoard;
pub const FormFactorDimm = STORAGE_DEVICE_FORM_FACTOR.Dimm;
pub const STORAGE_COMPONENT_HEALTH_STATUS = enum(i32) {
Unknown = 0,
Normal = 1,
Throttled = 2,
Warning = 3,
Disabled = 4,
Failed = 5,
};
pub const HealthStatusUnknown = STORAGE_COMPONENT_HEALTH_STATUS.Unknown;
pub const HealthStatusNormal = STORAGE_COMPONENT_HEALTH_STATUS.Normal;
pub const HealthStatusThrottled = STORAGE_COMPONENT_HEALTH_STATUS.Throttled;
pub const HealthStatusWarning = STORAGE_COMPONENT_HEALTH_STATUS.Warning;
pub const HealthStatusDisabled = STORAGE_COMPONENT_HEALTH_STATUS.Disabled;
pub const HealthStatusFailed = STORAGE_COMPONENT_HEALTH_STATUS.Failed;
pub const STORAGE_SPEC_VERSION = extern union {
Anonymous: extern struct {
MinorVersion: extern union {
Anonymous: extern struct {
SubMinor: u8,
Minor: u8,
},
AsUshort: u16,
},
MajorVersion: u16,
},
AsUlong: u32,
};
pub const STORAGE_PHYSICAL_DEVICE_DATA = extern struct {
DeviceId: u32,
Role: u32,
HealthStatus: STORAGE_COMPONENT_HEALTH_STATUS,
CommandProtocol: STORAGE_PROTOCOL_TYPE,
SpecVersion: STORAGE_SPEC_VERSION,
FormFactor: STORAGE_DEVICE_FORM_FACTOR,
Vendor: [8]u8,
Model: [40]u8,
FirmwareRevision: [16]u8,
Capacity: u64,
PhysicalLocation: [32]u8,
Reserved: [2]u32,
};
pub const STORAGE_PHYSICAL_ADAPTER_DATA = extern struct {
AdapterId: u32,
HealthStatus: STORAGE_COMPONENT_HEALTH_STATUS,
CommandProtocol: STORAGE_PROTOCOL_TYPE,
SpecVersion: STORAGE_SPEC_VERSION,
Vendor: [8]u8,
Model: [40]u8,
FirmwareRevision: [16]u8,
PhysicalLocation: [32]u8,
ExpanderConnected: BOOLEAN,
Reserved0: [3]u8,
Reserved1: [3]u32,
};
pub const STORAGE_PHYSICAL_NODE_DATA = extern struct {
NodeId: u32,
AdapterCount: u32,
AdapterDataLength: u32,
AdapterDataOffset: u32,
DeviceCount: u32,
DeviceDataLength: u32,
DeviceDataOffset: u32,
Reserved: [3]u32,
};
pub const STORAGE_PHYSICAL_TOPOLOGY_DESCRIPTOR = extern struct {
Version: u32,
Size: u32,
NodeCount: u32,
Reserved: u32,
Node: [1]STORAGE_PHYSICAL_NODE_DATA,
};
pub const STORAGE_DEVICE_IO_CAPABILITY_DESCRIPTOR = extern struct {
Version: u32,
Size: u32,
LunMaxIoCount: u32,
AdapterMaxIoCount: u32,
};
pub const STORAGE_DEVICE_ATTRIBUTES_DESCRIPTOR = extern struct {
Version: u32,
Size: u32,
Attributes: u64,
};
pub const STORAGE_DISK_HEALTH_STATUS = enum(i32) {
Unknown = 0,
Unhealthy = 1,
Warning = 2,
Healthy = 3,
Max = 4,
};
pub const DiskHealthUnknown = STORAGE_DISK_HEALTH_STATUS.Unknown;
pub const DiskHealthUnhealthy = STORAGE_DISK_HEALTH_STATUS.Unhealthy;
pub const DiskHealthWarning = STORAGE_DISK_HEALTH_STATUS.Warning;
pub const DiskHealthHealthy = STORAGE_DISK_HEALTH_STATUS.Healthy;
pub const DiskHealthMax = STORAGE_DISK_HEALTH_STATUS.Max;
pub const STORAGE_DISK_OPERATIONAL_STATUS = enum(i32) {
None = 0,
Unknown = 1,
Ok = 2,
PredictingFailure = 3,
InService = 4,
HardwareError = 5,
NotUsable = 6,
TransientError = 7,
Missing = 8,
};
pub const DiskOpStatusNone = STORAGE_DISK_OPERATIONAL_STATUS.None;
pub const DiskOpStatusUnknown = STORAGE_DISK_OPERATIONAL_STATUS.Unknown;
pub const DiskOpStatusOk = STORAGE_DISK_OPERATIONAL_STATUS.Ok;
pub const DiskOpStatusPredictingFailure = STORAGE_DISK_OPERATIONAL_STATUS.PredictingFailure;
pub const DiskOpStatusInService = STORAGE_DISK_OPERATIONAL_STATUS.InService;
pub const DiskOpStatusHardwareError = STORAGE_DISK_OPERATIONAL_STATUS.HardwareError;
pub const DiskOpStatusNotUsable = STORAGE_DISK_OPERATIONAL_STATUS.NotUsable;
pub const DiskOpStatusTransientError = STORAGE_DISK_OPERATIONAL_STATUS.TransientError;
pub const DiskOpStatusMissing = STORAGE_DISK_OPERATIONAL_STATUS.Missing;
pub const STORAGE_OPERATIONAL_STATUS_REASON = enum(i32) {
Unknown = 0,
ScsiSenseCode = 1,
Media = 2,
Io = 3,
ThresholdExceeded = 4,
LostData = 5,
EnergySource = 6,
Configuration = 7,
DeviceController = 8,
MediaController = 9,
Component = 10,
NVDIMM_N = 11,
BackgroundOperation = 12,
InvalidFirmware = 13,
HealthCheck = 14,
LostDataPersistence = 15,
DisabledByPlatform = 16,
LostWritePersistence = 17,
DataPersistenceLossImminent = 18,
WritePersistenceLossImminent = 19,
Max = 20,
};
pub const DiskOpReasonUnknown = STORAGE_OPERATIONAL_STATUS_REASON.Unknown;
pub const DiskOpReasonScsiSenseCode = STORAGE_OPERATIONAL_STATUS_REASON.ScsiSenseCode;
pub const DiskOpReasonMedia = STORAGE_OPERATIONAL_STATUS_REASON.Media;
pub const DiskOpReasonIo = STORAGE_OPERATIONAL_STATUS_REASON.Io;
pub const DiskOpReasonThresholdExceeded = STORAGE_OPERATIONAL_STATUS_REASON.ThresholdExceeded;
pub const DiskOpReasonLostData = STORAGE_OPERATIONAL_STATUS_REASON.LostData;
pub const DiskOpReasonEnergySource = STORAGE_OPERATIONAL_STATUS_REASON.EnergySource;
pub const DiskOpReasonConfiguration = STORAGE_OPERATIONAL_STATUS_REASON.Configuration;
pub const DiskOpReasonDeviceController = STORAGE_OPERATIONAL_STATUS_REASON.DeviceController;
pub const DiskOpReasonMediaController = STORAGE_OPERATIONAL_STATUS_REASON.MediaController;
pub const DiskOpReasonComponent = STORAGE_OPERATIONAL_STATUS_REASON.Component;
pub const DiskOpReasonNVDIMM_N = STORAGE_OPERATIONAL_STATUS_REASON.NVDIMM_N;
pub const DiskOpReasonBackgroundOperation = STORAGE_OPERATIONAL_STATUS_REASON.BackgroundOperation;
pub const DiskOpReasonInvalidFirmware = STORAGE_OPERATIONAL_STATUS_REASON.InvalidFirmware;
pub const DiskOpReasonHealthCheck = STORAGE_OPERATIONAL_STATUS_REASON.HealthCheck;
pub const DiskOpReasonLostDataPersistence = STORAGE_OPERATIONAL_STATUS_REASON.LostDataPersistence;
pub const DiskOpReasonDisabledByPlatform = STORAGE_OPERATIONAL_STATUS_REASON.DisabledByPlatform;
pub const DiskOpReasonLostWritePersistence = STORAGE_OPERATIONAL_STATUS_REASON.LostWritePersistence;
pub const DiskOpReasonDataPersistenceLossImminent = STORAGE_OPERATIONAL_STATUS_REASON.DataPersistenceLossImminent;
pub const DiskOpReasonWritePersistenceLossImminent = STORAGE_OPERATIONAL_STATUS_REASON.WritePersistenceLossImminent;
pub const DiskOpReasonMax = STORAGE_OPERATIONAL_STATUS_REASON.Max;
pub const STORAGE_OPERATIONAL_REASON = extern struct {
Version: u32,
Size: u32,
Reason: STORAGE_OPERATIONAL_STATUS_REASON,
RawBytes: extern union {
ScsiSenseKey: extern struct {
SenseKey: u8,
ASC: u8,
ASCQ: u8,
Reserved: u8,
},
NVDIMM_N: extern struct {
CriticalHealth: u8,
ModuleHealth: [2]u8,
ErrorThresholdStatus: u8,
},
AsUlong: u32,
},
};
pub const STORAGE_DEVICE_MANAGEMENT_STATUS = extern struct {
Version: u32,
Size: u32,
Health: STORAGE_DISK_HEALTH_STATUS,
NumberOfOperationalStatus: u32,
NumberOfAdditionalReasons: u32,
OperationalStatus: [16]STORAGE_DISK_OPERATIONAL_STATUS,
AdditionalReasons: [1]STORAGE_OPERATIONAL_REASON,
};
pub const STORAGE_ADAPTER_SERIAL_NUMBER = extern struct {
Version: u32,
Size: u32,
SerialNumber: [128]u16,
};
pub const STORAGE_ZONED_DEVICE_TYPES = enum(i32) {
Unknown = 0,
HostManaged = 1,
HostAware = 2,
DeviceManaged = 3,
};
pub const ZonedDeviceTypeUnknown = STORAGE_ZONED_DEVICE_TYPES.Unknown;
pub const ZonedDeviceTypeHostManaged = STORAGE_ZONED_DEVICE_TYPES.HostManaged;
pub const ZonedDeviceTypeHostAware = STORAGE_ZONED_DEVICE_TYPES.HostAware;
pub const ZonedDeviceTypeDeviceManaged = STORAGE_ZONED_DEVICE_TYPES.DeviceManaged;
pub const STORAGE_ZONE_TYPES = enum(i32) {
Unknown = 0,
Conventional = 1,
SequentialWriteRequired = 2,
SequentialWritePreferred = 3,
Max = 4,
};
pub const ZoneTypeUnknown = STORAGE_ZONE_TYPES.Unknown;
pub const ZoneTypeConventional = STORAGE_ZONE_TYPES.Conventional;
pub const ZoneTypeSequentialWriteRequired = STORAGE_ZONE_TYPES.SequentialWriteRequired;
pub const ZoneTypeSequentialWritePreferred = STORAGE_ZONE_TYPES.SequentialWritePreferred;
pub const ZoneTypeMax = STORAGE_ZONE_TYPES.Max;
pub const STORAGE_ZONE_GROUP = extern struct {
ZoneCount: u32,
ZoneType: STORAGE_ZONE_TYPES,
ZoneSize: u64,
};
pub const STORAGE_ZONED_DEVICE_DESCRIPTOR = extern struct {
Version: u32,
Size: u32,
DeviceType: STORAGE_ZONED_DEVICE_TYPES,
ZoneCount: u32,
ZoneAttributes: extern union {
SequentialRequiredZone: extern struct {
MaxOpenZoneCount: u32,
UnrestrictedRead: BOOLEAN,
Reserved: [3]u8,
},
SequentialPreferredZone: extern struct {
OptimalOpenZoneCount: u32,
Reserved: u32,
},
},
ZoneGroupCount: u32,
ZoneGroup: [1]STORAGE_ZONE_GROUP,
};
pub const DEVICE_LOCATION = extern struct {
Socket: u32,
Slot: u32,
Adapter: u32,
Port: u32,
Anonymous: extern union {
Anonymous1: extern struct {
Channel: u32,
Device: u32,
},
Anonymous2: extern struct {
Target: u32,
Lun: u32,
},
},
};
pub const STORAGE_DEVICE_LOCATION_DESCRIPTOR = extern struct {
Version: u32,
Size: u32,
Location: DEVICE_LOCATION,
StringOffset: u32,
};
pub const STORAGE_DEVICE_NUMA_PROPERTY = extern struct {
Version: u32,
Size: u32,
NumaNode: u32,
};
pub const STORAGE_DEVICE_UNSAFE_SHUTDOWN_COUNT = extern struct {
Version: u32,
Size: u32,
UnsafeShutdownCount: u32,
};
pub const STORAGE_HW_ENDURANCE_INFO = extern struct {
ValidFields: u32,
GroupId: u32,
Flags: extern struct {
_bitfield: u32,
},
LifePercentage: u32,
BytesReadCount: [16]u8,
ByteWriteCount: [16]u8,
};
pub const STORAGE_HW_ENDURANCE_DATA_DESCRIPTOR = extern struct {
Version: u32,
Size: u32,
EnduranceInfo: STORAGE_HW_ENDURANCE_INFO,
};
pub const STORAGE_DEVICE_LED_STATE_DESCRIPTOR = extern struct {
Version: u32,
Size: u32,
State: u64,
};
pub const STORAGE_DEVICE_SELF_ENCRYPTION_PROPERTY = extern struct {
Version: u32,
Size: u32,
SupportsSelfEncryption: BOOLEAN,
};
pub const STORAGE_FRU_ID_DESCRIPTOR = extern struct {
Version: u32,
Size: u32,
IdentifierSize: u32,
Identifier: [1]u8,
};
pub const DEVICE_DATA_SET_RANGE = extern struct {
StartingOffset: i64,
LengthInBytes: u64,
};
pub const DEVICE_MANAGE_DATA_SET_ATTRIBUTES = extern struct {
Size: u32,
Action: u32,
Flags: u32,
ParameterBlockOffset: u32,
ParameterBlockLength: u32,
DataSetRangesOffset: u32,
DataSetRangesLength: u32,
};
pub const DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT = extern struct {
Size: u32,
Action: u32,
Flags: u32,
OperationStatus: u32,
ExtendedError: u32,
TargetDetailedError: u32,
ReservedStatus: u32,
OutputBlockOffset: u32,
OutputBlockLength: u32,
};
pub const DEVICE_DSM_DEFINITION = extern struct {
Action: u32,
SingleRange: BOOLEAN,
ParameterBlockAlignment: u32,
ParameterBlockLength: u32,
HasOutput: BOOLEAN,
OutputBlockAlignment: u32,
OutputBlockLength: u32,
};
pub const DEVICE_DSM_NOTIFICATION_PARAMETERS = extern struct {
Size: u32,
Flags: u32,
NumFileTypeIDs: u32,
FileTypeID: [1]Guid,
};
pub const STORAGE_OFFLOAD_TOKEN = extern struct {
TokenType: [4]u8,
Reserved: [2]u8,
TokenIdLength: [2]u8,
Anonymous: extern union {
StorageOffloadZeroDataToken: extern struct {
Reserved2: [504]u8,
},
Token: [504]u8,
},
};
pub const DEVICE_DSM_OFFLOAD_READ_PARAMETERS = extern struct {
Flags: u32,
TimeToLive: u32,
Reserved: [2]u32,
};
pub const STORAGE_OFFLOAD_READ_OUTPUT = extern struct {
OffloadReadFlags: u32,
Reserved: u32,
LengthProtected: u64,
TokenLength: u32,
Token: STORAGE_OFFLOAD_TOKEN,
};
pub const DEVICE_DSM_OFFLOAD_WRITE_PARAMETERS = extern struct {
Flags: u32,
Reserved: u32,
TokenOffset: u64,
Token: STORAGE_OFFLOAD_TOKEN,
};
pub const STORAGE_OFFLOAD_WRITE_OUTPUT = extern struct {
OffloadWriteFlags: u32,
Reserved: u32,
LengthCopied: u64,
};
pub const DEVICE_DATA_SET_LBP_STATE_PARAMETERS = extern struct {
Version: u32,
Size: u32,
Flags: u32,
OutputVersion: u32,
};
pub const DEVICE_DATA_SET_LB_PROVISIONING_STATE = extern struct {
Size: u32,
Version: u32,
SlabSizeInBytes: u64,
SlabOffsetDeltaInBytes: u32,
SlabAllocationBitMapBitCount: u32,
SlabAllocationBitMapLength: u32,
SlabAllocationBitMap: [1]u32,
};
pub const DEVICE_DATA_SET_LB_PROVISIONING_STATE_V2 = extern struct {
Size: u32,
Version: u32,
SlabSizeInBytes: u64,
SlabOffsetDeltaInBytes: u64,
SlabAllocationBitMapBitCount: u32,
SlabAllocationBitMapLength: u32,
SlabAllocationBitMap: [1]u32,
};
pub const DEVICE_DATA_SET_REPAIR_PARAMETERS = extern struct {
NumberOfRepairCopies: u32,
SourceCopy: u32,
RepairCopies: [1]u32,
};
pub const DEVICE_DATA_SET_REPAIR_OUTPUT = extern struct {
ParityExtent: DEVICE_DATA_SET_RANGE,
};
pub const DEVICE_DATA_SET_SCRUB_OUTPUT = extern struct {
BytesProcessed: u64,
BytesRepaired: u64,
BytesFailed: u64,
};
pub const DEVICE_DATA_SET_SCRUB_EX_OUTPUT = extern struct {
BytesProcessed: u64,
BytesRepaired: u64,
BytesFailed: u64,
ParityExtent: DEVICE_DATA_SET_RANGE,
BytesScrubbed: u64,
};
pub const DEVICE_DSM_TIERING_QUERY_INPUT = extern struct {
Version: u32,
Size: u32,
Flags: u32,
NumberOfTierIds: u32,
TierIds: [1]Guid,
};
pub const STORAGE_TIER_REGION = extern struct {
TierId: Guid,
Offset: u64,
Length: u64,
};
pub const DEVICE_DSM_TIERING_QUERY_OUTPUT = extern struct {
Version: u32,
Size: u32,
Flags: u32,
Reserved: u32,
Alignment: u64,
TotalNumberOfRegions: u32,
NumberOfRegionsReturned: u32,
Regions: [1]STORAGE_TIER_REGION,
};
pub const DEVICE_DSM_NVCACHE_CHANGE_PRIORITY_PARAMETERS = extern struct {
Size: u32,
TargetPriority: u8,
Reserved: [3]u8,
};
pub const DEVICE_DATA_SET_TOPOLOGY_ID_QUERY_OUTPUT = extern struct {
TopologyRangeBytes: u64,
TopologyId: [16]u8,
};
pub const DEVICE_STORAGE_ADDRESS_RANGE = extern struct {
StartAddress: i64,
LengthInBytes: u64,
};
pub const DEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT = extern struct {
Version: u32,
Flags: u32,
TotalNumberOfRanges: u32,
NumberOfRangesReturned: u32,
Ranges: [1]DEVICE_STORAGE_ADDRESS_RANGE,
};
pub const DEVICE_DSM_REPORT_ZONES_PARAMETERS = extern struct {
Size: u32,
ReportOption: u8,
Partial: u8,
Reserved: [2]u8,
};
pub const STORAGE_ZONES_ATTRIBUTES = enum(i32) {
AndLengthMayDifferent = 0,
SameLengthSame = 1,
SameLastZoneLengthDifferent = 2,
MayDifferentLengthSame = 3,
};
pub const ZonesAttributeTypeAndLengthMayDifferent = STORAGE_ZONES_ATTRIBUTES.AndLengthMayDifferent;
pub const ZonesAttributeTypeSameLengthSame = STORAGE_ZONES_ATTRIBUTES.SameLengthSame;
pub const ZonesAttributeTypeSameLastZoneLengthDifferent = STORAGE_ZONES_ATTRIBUTES.SameLastZoneLengthDifferent;
pub const ZonesAttributeTypeMayDifferentLengthSame = STORAGE_ZONES_ATTRIBUTES.MayDifferentLengthSame;
pub const STORAGE_ZONE_CONDITION = enum(i32) {
Conventional = 0,
Empty = 1,
ImplicitlyOpened = 2,
ExplicitlyOpened = 3,
Closed = 4,
ReadOnly = 13,
Full = 14,
Offline = 15,
};
pub const ZoneConditionConventional = STORAGE_ZONE_CONDITION.Conventional;
pub const ZoneConditionEmpty = STORAGE_ZONE_CONDITION.Empty;
pub const ZoneConditionImplicitlyOpened = STORAGE_ZONE_CONDITION.ImplicitlyOpened;
pub const ZoneConditionExplicitlyOpened = STORAGE_ZONE_CONDITION.ExplicitlyOpened;
pub const ZoneConditionClosed = STORAGE_ZONE_CONDITION.Closed;
pub const ZoneConditionReadOnly = STORAGE_ZONE_CONDITION.ReadOnly;
pub const ZoneConditionFull = STORAGE_ZONE_CONDITION.Full;
pub const ZoneConditionOffline = STORAGE_ZONE_CONDITION.Offline;
pub const STORAGE_ZONE_DESCRIPTOR = extern struct {
Size: u32,
ZoneType: STORAGE_ZONE_TYPES,
ZoneCondition: STORAGE_ZONE_CONDITION,
ResetWritePointerRecommend: BOOLEAN,
Reserved0: [3]u8,
ZoneSize: u64,
WritePointerOffset: u64,
};
pub const DEVICE_DSM_REPORT_ZONES_DATA = extern struct {
Size: u32,
ZoneCount: u32,
Attributes: STORAGE_ZONES_ATTRIBUTES,
Reserved0: u32,
ZoneDescriptors: [1]STORAGE_ZONE_DESCRIPTOR,
};
pub const DEVICE_STORAGE_RANGE_ATTRIBUTES = extern struct {
LengthInBytes: u64,
Anonymous: extern union {
AllFlags: u32,
Anonymous: extern struct {
_bitfield: u32,
},
},
Reserved: u32,
};
pub const DEVICE_DSM_RANGE_ERROR_INFO = extern struct {
Version: u32,
Flags: u32,
TotalNumberOfRanges: u32,
NumberOfRangesReturned: u32,
Ranges: [1]DEVICE_STORAGE_RANGE_ATTRIBUTES,
};
pub const DEVICE_DSM_LOST_QUERY_PARAMETERS = extern struct {
Version: u32,
Granularity: u64,
};
pub const DEVICE_DSM_LOST_QUERY_OUTPUT = extern struct {
Version: u32,
Size: u32,
Alignment: u64,
NumberOfBits: u32,
BitMap: [1]u32,
};
pub const DEVICE_DSM_FREE_SPACE_OUTPUT = extern struct {
Version: u32,
FreeSpace: u64,
};
pub const DEVICE_DSM_CONVERSION_OUTPUT = extern struct {
Version: u32,
Source: Guid,
};
pub const STORAGE_GET_BC_PROPERTIES_OUTPUT = extern struct {
MaximumRequestsPerPeriod: u32,
MinimumPeriod: u32,
MaximumRequestSize: u64,
EstimatedTimePerRequest: u32,
NumOutStandingRequests: u32,
RequestSize: u64,
};
pub const STORAGE_ALLOCATE_BC_STREAM_INPUT = extern struct {
Version: u32,
RequestsPerPeriod: u32,
Period: u32,
RetryFailures: BOOLEAN,
Discardable: BOOLEAN,
Reserved1: [2]BOOLEAN,
AccessType: u32,
AccessMode: u32,
};
pub const STORAGE_ALLOCATE_BC_STREAM_OUTPUT = extern struct {
RequestSize: u64,
NumOutStandingRequests: u32,
};
pub const STORAGE_PRIORITY_HINT_SUPPORT = extern struct {
SupportFlags: u32,
};
pub const STORAGE_DIAGNOSTIC_LEVEL = enum(i32) {
Default = 0,
Max = 1,
};
pub const StorageDiagnosticLevelDefault = STORAGE_DIAGNOSTIC_LEVEL.Default;
pub const StorageDiagnosticLevelMax = STORAGE_DIAGNOSTIC_LEVEL.Max;
pub const STORAGE_DIAGNOSTIC_TARGET_TYPE = enum(i32) {
Undefined = 0,
Port = 1,
Miniport = 2,
HbaFirmware = 3,
Max = 4,
};
pub const StorageDiagnosticTargetTypeUndefined = STORAGE_DIAGNOSTIC_TARGET_TYPE.Undefined;
pub const StorageDiagnosticTargetTypePort = STORAGE_DIAGNOSTIC_TARGET_TYPE.Port;
pub const StorageDiagnosticTargetTypeMiniport = STORAGE_DIAGNOSTIC_TARGET_TYPE.Miniport;
pub const StorageDiagnosticTargetTypeHbaFirmware = STORAGE_DIAGNOSTIC_TARGET_TYPE.HbaFirmware;
pub const StorageDiagnosticTargetTypeMax = STORAGE_DIAGNOSTIC_TARGET_TYPE.Max;
pub const STORAGE_DIAGNOSTIC_REQUEST = extern struct {
Version: u32,
Size: u32,
Flags: u32,
TargetType: STORAGE_DIAGNOSTIC_TARGET_TYPE,
Level: STORAGE_DIAGNOSTIC_LEVEL,
};
pub const STORAGE_DIAGNOSTIC_DATA = extern struct {
Version: u32,
Size: u32,
ProviderId: Guid,
BufferSize: u32,
Reserved: u32,
DiagnosticDataBuffer: [1]u8,
};
pub const PHYSICAL_ELEMENT_STATUS_REQUEST = extern struct {
Version: u32,
Size: u32,
StartingElement: u32,
Filter: u8,
ReportType: u8,
Reserved: [2]u8,
};
pub const PHYSICAL_ELEMENT_STATUS_DESCRIPTOR = extern struct {
Version: u32,
Size: u32,
ElementIdentifier: u32,
PhysicalElementType: u8,
PhysicalElementHealth: u8,
Reserved1: [2]u8,
AssociatedCapacity: u64,
Reserved2: [4]u32,
};
pub const PHYSICAL_ELEMENT_STATUS = extern struct {
Version: u32,
Size: u32,
DescriptorCount: u32,
ReturnedDescriptorCount: u32,
ElementIdentifierBeingDepoped: u32,
Reserved: u32,
Descriptors: [1]PHYSICAL_ELEMENT_STATUS_DESCRIPTOR,
};
pub const REMOVE_ELEMENT_AND_TRUNCATE_REQUEST = extern struct {
Version: u32,
Size: u32,
RequestCapacity: u64,
ElementIdentifier: u32,
Reserved: u32,
};
pub const DEVICE_INTERNAL_STATUS_DATA_REQUEST_TYPE = enum(i32) {
InternalStatusDataRequestTypeUndefined = 0,
CurrentInternalStatusDataHeader = 1,
CurrentInternalStatusData = 2,
SavedInternalStatusDataHeader = 3,
SavedInternalStatusData = 4,
};
pub const DeviceInternalStatusDataRequestTypeUndefined = DEVICE_INTERNAL_STATUS_DATA_REQUEST_TYPE.InternalStatusDataRequestTypeUndefined;
pub const DeviceCurrentInternalStatusDataHeader = DEVICE_INTERNAL_STATUS_DATA_REQUEST_TYPE.CurrentInternalStatusDataHeader;
pub const DeviceCurrentInternalStatusData = DEVICE_INTERNAL_STATUS_DATA_REQUEST_TYPE.CurrentInternalStatusData;
pub const DeviceSavedInternalStatusDataHeader = DEVICE_INTERNAL_STATUS_DATA_REQUEST_TYPE.SavedInternalStatusDataHeader;
pub const DeviceSavedInternalStatusData = DEVICE_INTERNAL_STATUS_DATA_REQUEST_TYPE.SavedInternalStatusData;
pub const DEVICE_INTERNAL_STATUS_DATA_SET = enum(i32) {
Undefined = 0,
@"1" = 1,
@"2" = 2,
@"3" = 3,
@"4" = 4,
Max = 5,
};
pub const DeviceStatusDataSetUndefined = DEVICE_INTERNAL_STATUS_DATA_SET.Undefined;
pub const DeviceStatusDataSet1 = DEVICE_INTERNAL_STATUS_DATA_SET.@"1";
pub const DeviceStatusDataSet2 = DEVICE_INTERNAL_STATUS_DATA_SET.@"2";
pub const DeviceStatusDataSet3 = DEVICE_INTERNAL_STATUS_DATA_SET.@"3";
pub const DeviceStatusDataSet4 = DEVICE_INTERNAL_STATUS_DATA_SET.@"4";
pub const DeviceStatusDataSetMax = DEVICE_INTERNAL_STATUS_DATA_SET.Max;
pub const GET_DEVICE_INTERNAL_STATUS_DATA_REQUEST = extern struct {
Version: u32,
Size: u32,
RequestDataType: DEVICE_INTERNAL_STATUS_DATA_REQUEST_TYPE,
RequestDataSet: DEVICE_INTERNAL_STATUS_DATA_SET,
};
pub const DEVICE_INTERNAL_STATUS_DATA = extern struct {
Version: u32,
Size: u32,
T10VendorId: u64,
DataSet1Length: u32,
DataSet2Length: u32,
DataSet3Length: u32,
DataSet4Length: u32,
StatusDataVersion: u8,
Reserved: [3]u8,
ReasonIdentifier: [128]u8,
StatusDataLength: u32,
StatusData: [1]u8,
};
pub const STORAGE_SANITIZE_METHOD = enum(i32) {
Default = 0,
BlockErase = 1,
CryptoErase = 2,
};
pub const StorageSanitizeMethodDefault = STORAGE_SANITIZE_METHOD.Default;
pub const StorageSanitizeMethodBlockErase = STORAGE_SANITIZE_METHOD.BlockErase;
pub const StorageSanitizeMethodCryptoErase = STORAGE_SANITIZE_METHOD.CryptoErase;
pub const STORAGE_REINITIALIZE_MEDIA = extern struct {
Version: u32,
Size: u32,
TimeoutInSeconds: u32,
SanitizeOption: extern struct {
_bitfield: u32,
},
};
pub const STORAGE_MEDIA_SERIAL_NUMBER_DATA = extern struct {
Reserved: u16,
SerialNumberLength: u16,
SerialNumber: [1]u8,
};
pub const STORAGE_READ_CAPACITY = extern struct {
Version: u32,
Size: u32,
BlockLength: u32,
NumberOfBlocks: LARGE_INTEGER,
DiskLength: LARGE_INTEGER,
};
pub const WRITE_CACHE_TYPE = enum(i32) {
Unknown = 0,
None = 1,
WriteBack = 2,
WriteThrough = 3,
};
pub const WriteCacheTypeUnknown = WRITE_CACHE_TYPE.Unknown;
pub const WriteCacheTypeNone = WRITE_CACHE_TYPE.None;
pub const WriteCacheTypeWriteBack = WRITE_CACHE_TYPE.WriteBack;
pub const WriteCacheTypeWriteThrough = WRITE_CACHE_TYPE.WriteThrough;
pub const WRITE_CACHE_ENABLE = enum(i32) {
EnableUnknown = 0,
Disabled = 1,
Enabled = 2,
};
pub const WriteCacheEnableUnknown = WRITE_CACHE_ENABLE.EnableUnknown;
pub const WriteCacheDisabled = WRITE_CACHE_ENABLE.Disabled;
pub const WriteCacheEnabled = WRITE_CACHE_ENABLE.Enabled;
pub const WRITE_CACHE_CHANGE = enum(i32) {
ChangeUnknown = 0,
NotChangeable = 1,
Changeable = 2,
};
pub const WriteCacheChangeUnknown = WRITE_CACHE_CHANGE.ChangeUnknown;
pub const WriteCacheNotChangeable = WRITE_CACHE_CHANGE.NotChangeable;
pub const WriteCacheChangeable = WRITE_CACHE_CHANGE.Changeable;
pub const WRITE_THROUGH = enum(i32) {
Unknown = 0,
NotSupported = 1,
Supported = 2,
};
pub const WriteThroughUnknown = WRITE_THROUGH.Unknown;
pub const WriteThroughNotSupported = WRITE_THROUGH.NotSupported;
pub const WriteThroughSupported = WRITE_THROUGH.Supported;
pub const STORAGE_WRITE_CACHE_PROPERTY = extern struct {
Version: u32,
Size: u32,
WriteCacheType: WRITE_CACHE_TYPE,
WriteCacheEnabled: WRITE_CACHE_ENABLE,
WriteCacheChangeable: WRITE_CACHE_CHANGE,
WriteThroughSupported: WRITE_THROUGH,
FlushCacheSupported: BOOLEAN,
UserDefinedPowerProtection: BOOLEAN,
NVCacheEnabled: BOOLEAN,
};
pub const PERSISTENT_RESERVE_COMMAND = extern struct {
Version: u32,
Size: u32,
Anonymous: extern union {
PR_IN: extern struct {
_bitfield: u8,
AllocationLength: u16,
},
PR_OUT: extern struct {
_bitfield1: u8,
_bitfield2: u8,
ParameterList: [1]u8,
},
},
};
pub const _DEVICEDUMP_COLLECTION_TYPE = enum(i32) {
BugCheck = 1,
ApplicationRequested = 2,
DeviceRequested = 3,
};
pub const TCCollectionBugCheck = _DEVICEDUMP_COLLECTION_TYPE.BugCheck;
pub const TCCollectionApplicationRequested = _DEVICEDUMP_COLLECTION_TYPE.ApplicationRequested;
pub const TCCollectionDeviceRequested = _DEVICEDUMP_COLLECTION_TYPE.DeviceRequested;
pub const DEVICEDUMP_SUBSECTION_POINTER = extern struct {
dwSize: u32 align(1),
dwFlags: u32 align(1),
dwOffset: u32 align(1),
};
pub const DEVICEDUMP_STRUCTURE_VERSION = extern struct {
dwSignature: u32 align(1),
dwVersion: u32 align(1),
dwSize: u32 align(1),
};
pub const DEVICEDUMP_SECTION_HEADER = extern struct {
guidDeviceDataId: Guid align(1),
sOrganizationID: [16]u8 align(1),
dwFirmwareRevision: u32 align(1),
sModelNumber: [32]u8 align(1),
szDeviceManufacturingID: [32]u8 align(1),
dwFlags: u32 align(1),
bRestrictedPrivateDataVersion: u32 align(1),
dwFirmwareIssueId: u32 align(1),
szIssueDescriptionString: [132]u8 align(1),
};
pub const GP_LOG_PAGE_DESCRIPTOR = extern struct {
LogAddress: u16 align(1),
LogSectors: u16 align(1),
};
pub const DEVICEDUMP_PUBLIC_SUBSECTION = extern struct {
dwFlags: u32 align(1),
GPLogTable: [16]GP_LOG_PAGE_DESCRIPTOR align(1),
szDescription: [16]CHAR align(1),
bData: [1]u8 align(1),
};
pub const DEVICEDUMP_RESTRICTED_SUBSECTION = extern struct {
bData: [1]u8,
};
pub const DEVICEDUMP_PRIVATE_SUBSECTION = extern struct {
dwFlags: u32 align(1),
GPLogId: GP_LOG_PAGE_DESCRIPTOR align(1),
bData: [1]u8 align(1),
};
pub const DEVICEDUMP_STORAGEDEVICE_DATA = extern struct {
Descriptor: DEVICEDUMP_STRUCTURE_VERSION align(1),
SectionHeader: DEVICEDUMP_SECTION_HEADER align(1),
dwBufferSize: u32 align(1),
dwReasonForCollection: u32 align(1),
PublicData: DEVICEDUMP_SUBSECTION_POINTER align(1),
RestrictedData: DEVICEDUMP_SUBSECTION_POINTER align(1),
PrivateData: DEVICEDUMP_SUBSECTION_POINTER align(1),
};
pub const DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD = extern struct {
Cdb: [16]u8 align(1),
Command: [16]u8 align(1),
StartTime: u64 align(1),
EndTime: u64 align(1),
OperationStatus: u32 align(1),
OperationError: u32 align(1),
StackSpecific: extern union {
ExternalStack: extern struct {
dwReserved: u32 align(1),
},
AtaPort: extern struct {
dwAtaPortSpecific: u32 align(1),
},
StorPort: extern struct {
SrbTag: u32 align(1),
},
} align(1),
};
pub const DEVICEDUMP_STORAGESTACK_PUBLIC_DUMP = extern struct {
Descriptor: DEVICEDUMP_STRUCTURE_VERSION align(1),
dwReasonForCollection: u32 align(1),
cDriverName: [16]u8 align(1),
uiNumRecords: u32 align(1),
RecordArray: [1]DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD align(1),
};
pub const STORAGE_IDLE_POWER = extern struct {
Version: u32,
Size: u32,
_bitfield: u32,
D3IdleTimeout: u32,
};
pub const STORAGE_POWERUP_REASON_TYPE = enum(i32) {
Unknown = 0,
IO = 1,
DeviceAttention = 2,
};
pub const StoragePowerupUnknown = STORAGE_POWERUP_REASON_TYPE.Unknown;
pub const StoragePowerupIO = STORAGE_POWERUP_REASON_TYPE.IO;
pub const StoragePowerupDeviceAttention = STORAGE_POWERUP_REASON_TYPE.DeviceAttention;
pub const STORAGE_IDLE_POWERUP_REASON = extern struct {
Version: u32,
Size: u32,
PowerupReason: STORAGE_POWERUP_REASON_TYPE,
};
pub const STORAGE_DEVICE_POWER_CAP_UNITS = enum(i32) {
Percent = 0,
Milliwatts = 1,
};
pub const StorageDevicePowerCapUnitsPercent = STORAGE_DEVICE_POWER_CAP_UNITS.Percent;
pub const StorageDevicePowerCapUnitsMilliwatts = STORAGE_DEVICE_POWER_CAP_UNITS.Milliwatts;
pub const STORAGE_DEVICE_POWER_CAP = extern struct {
Version: u32,
Size: u32,
Units: STORAGE_DEVICE_POWER_CAP_UNITS,
MaxPower: u64,
};
pub const STORAGE_RPMB_DATA_FRAME = extern struct {
Stuff: [196]u8,
KeyOrMAC: [32]u8,
Data: [256]u8,
Nonce: [16]u8,
WriteCounter: [4]u8,
Address: [2]u8,
BlockCount: [2]u8,
OperationResult: [2]u8,
RequestOrResponseType: [2]u8,
};
pub const STORAGE_RPMB_COMMAND_TYPE = enum(i32) {
ProgramAuthKey = 1,
QueryWriteCounter = 2,
AuthenticatedWrite = 3,
AuthenticatedRead = 4,
ReadResultRequest = 5,
AuthenticatedDeviceConfigWrite = 6,
AuthenticatedDeviceConfigRead = 7,
};
pub const StorRpmbProgramAuthKey = STORAGE_RPMB_COMMAND_TYPE.ProgramAuthKey;
pub const StorRpmbQueryWriteCounter = STORAGE_RPMB_COMMAND_TYPE.QueryWriteCounter;
pub const StorRpmbAuthenticatedWrite = STORAGE_RPMB_COMMAND_TYPE.AuthenticatedWrite;
pub const StorRpmbAuthenticatedRead = STORAGE_RPMB_COMMAND_TYPE.AuthenticatedRead;
pub const StorRpmbReadResultRequest = STORAGE_RPMB_COMMAND_TYPE.ReadResultRequest;
pub const StorRpmbAuthenticatedDeviceConfigWrite = STORAGE_RPMB_COMMAND_TYPE.AuthenticatedDeviceConfigWrite;
pub const StorRpmbAuthenticatedDeviceConfigRead = STORAGE_RPMB_COMMAND_TYPE.AuthenticatedDeviceConfigRead;
pub const STORAGE_EVENT_NOTIFICATION = extern struct {
Version: u32,
Size: u32,
Events: u64,
};
pub const STORAGE_COUNTER_TYPE = enum(i32) {
Unknown = 0,
TemperatureCelsius = 1,
TemperatureCelsiusMax = 2,
ReadErrorsTotal = 3,
ReadErrorsCorrected = 4,
ReadErrorsUncorrected = 5,
WriteErrorsTotal = 6,
WriteErrorsCorrected = 7,
WriteErrorsUncorrected = 8,
ManufactureDate = 9,
StartStopCycleCount = 10,
StartStopCycleCountMax = 11,
LoadUnloadCycleCount = 12,
LoadUnloadCycleCountMax = 13,
WearPercentage = 14,
WearPercentageWarning = 15,
WearPercentageMax = 16,
PowerOnHours = 17,
ReadLatency100NSMax = 18,
WriteLatency100NSMax = 19,
FlushLatency100NSMax = 20,
Max = 21,
};
pub const StorageCounterTypeUnknown = STORAGE_COUNTER_TYPE.Unknown;
pub const StorageCounterTypeTemperatureCelsius = STORAGE_COUNTER_TYPE.TemperatureCelsius;
pub const StorageCounterTypeTemperatureCelsiusMax = STORAGE_COUNTER_TYPE.TemperatureCelsiusMax;
pub const StorageCounterTypeReadErrorsTotal = STORAGE_COUNTER_TYPE.ReadErrorsTotal;
pub const StorageCounterTypeReadErrorsCorrected = STORAGE_COUNTER_TYPE.ReadErrorsCorrected;
pub const StorageCounterTypeReadErrorsUncorrected = STORAGE_COUNTER_TYPE.ReadErrorsUncorrected;
pub const StorageCounterTypeWriteErrorsTotal = STORAGE_COUNTER_TYPE.WriteErrorsTotal;
pub const StorageCounterTypeWriteErrorsCorrected = STORAGE_COUNTER_TYPE.WriteErrorsCorrected;
pub const StorageCounterTypeWriteErrorsUncorrected = STORAGE_COUNTER_TYPE.WriteErrorsUncorrected;
pub const StorageCounterTypeManufactureDate = STORAGE_COUNTER_TYPE.ManufactureDate;
pub const StorageCounterTypeStartStopCycleCount = STORAGE_COUNTER_TYPE.StartStopCycleCount;
pub const StorageCounterTypeStartStopCycleCountMax = STORAGE_COUNTER_TYPE.StartStopCycleCountMax;
pub const StorageCounterTypeLoadUnloadCycleCount = STORAGE_COUNTER_TYPE.LoadUnloadCycleCount;
pub const StorageCounterTypeLoadUnloadCycleCountMax = STORAGE_COUNTER_TYPE.LoadUnloadCycleCountMax;
pub const StorageCounterTypeWearPercentage = STORAGE_COUNTER_TYPE.WearPercentage;
pub const StorageCounterTypeWearPercentageWarning = STORAGE_COUNTER_TYPE.WearPercentageWarning;
pub const StorageCounterTypeWearPercentageMax = STORAGE_COUNTER_TYPE.WearPercentageMax;
pub const StorageCounterTypePowerOnHours = STORAGE_COUNTER_TYPE.PowerOnHours;
pub const StorageCounterTypeReadLatency100NSMax = STORAGE_COUNTER_TYPE.ReadLatency100NSMax;
pub const StorageCounterTypeWriteLatency100NSMax = STORAGE_COUNTER_TYPE.WriteLatency100NSMax;
pub const StorageCounterTypeFlushLatency100NSMax = STORAGE_COUNTER_TYPE.FlushLatency100NSMax;
pub const StorageCounterTypeMax = STORAGE_COUNTER_TYPE.Max;
pub const STORAGE_COUNTER = extern struct {
Type: STORAGE_COUNTER_TYPE,
Value: extern union {
ManufactureDate: extern struct {
Week: u32,
Year: u32,
},
AsUlonglong: u64,
},
};
pub const STORAGE_COUNTERS = extern struct {
Version: u32,
Size: u32,
NumberOfCounters: u32,
Counters: [1]STORAGE_COUNTER,
};
pub const STORAGE_HW_FIRMWARE_INFO_QUERY = extern struct {
Version: u32,
Size: u32,
Flags: u32,
Reserved: u32,
};
pub const STORAGE_HW_FIRMWARE_SLOT_INFO = extern struct {
Version: u32,
Size: u32,
SlotNumber: u8,
_bitfield: u8,
Reserved1: [6]u8,
Revision: [16]u8,
};
pub const STORAGE_HW_FIRMWARE_INFO = extern struct {
Version: u32,
Size: u32,
_bitfield: u8,
SlotCount: u8,
ActiveSlot: u8,
PendingActivateSlot: u8,
FirmwareShared: BOOLEAN,
Reserved: [3]u8,
ImagePayloadAlignment: u32,
ImagePayloadMaxSize: u32,
Slot: [1]STORAGE_HW_FIRMWARE_SLOT_INFO,
};
pub const STORAGE_HW_FIRMWARE_DOWNLOAD = extern struct {
Version: u32,
Size: u32,
Flags: u32,
Slot: u8,
Reserved: [3]u8,
Offset: u64,
BufferSize: u64,
ImageBuffer: [1]u8,
};
pub const STORAGE_HW_FIRMWARE_DOWNLOAD_V2 = extern struct {
Version: u32,
Size: u32,
Flags: u32,
Slot: u8,
Reserved: [3]u8,
Offset: u64,
BufferSize: u64,
ImageSize: u32,
Reserved2: u32,
ImageBuffer: [1]u8,
};
pub const STORAGE_HW_FIRMWARE_ACTIVATE = extern struct {
Version: u32,
Size: u32,
Flags: u32,
Slot: u8,
Reserved0: [3]u8,
};
pub const STORAGE_PROTOCOL_COMMAND = extern struct {
Version: u32,
Length: u32,
ProtocolType: STORAGE_PROTOCOL_TYPE,
Flags: u32,
ReturnStatus: u32,
ErrorCode: u32,
CommandLength: u32,
ErrorInfoLength: u32,
DataToDeviceTransferLength: u32,
DataFromDeviceTransferLength: u32,
TimeOutValue: u32,
ErrorInfoOffset: u32,
DataToDeviceBufferOffset: u32,
DataFromDeviceBufferOffset: u32,
CommandSpecific: u32,
Reserved0: u32,
FixedProtocolReturnData: u32,
Reserved1: [3]u32,
Command: [1]u8,
};
pub const STORAGE_ATTRIBUTE_MGMT_ACTION = enum(i32) {
ClearAttribute = 0,
SetAttribute = 1,
ResetAttribute = 2,
};
pub const StorAttributeMgmt_ClearAttribute = STORAGE_ATTRIBUTE_MGMT_ACTION.ClearAttribute;
pub const StorAttributeMgmt_SetAttribute = STORAGE_ATTRIBUTE_MGMT_ACTION.SetAttribute;
pub const StorAttributeMgmt_ResetAttribute = STORAGE_ATTRIBUTE_MGMT_ACTION.ResetAttribute;
pub const STORAGE_ATTRIBUTE_MGMT = extern struct {
Version: u32,
Size: u32,
Action: STORAGE_ATTRIBUTE_MGMT_ACTION,
Attribute: u32,
};
pub const SCM_PD_HEALTH_NOTIFICATION_DATA = extern struct {
DeviceGuid: Guid,
};
pub const SCM_LOGICAL_DEVICE_INSTANCE = extern struct {
Version: u32,
Size: u32,
DeviceGuid: Guid,
SymbolicLink: [256]u16,
};
pub const SCM_LOGICAL_DEVICES = extern struct {
Version: u32,
Size: u32,
DeviceCount: u32,
Devices: [1]SCM_LOGICAL_DEVICE_INSTANCE,
};
pub const SCM_PHYSICAL_DEVICE_INSTANCE = extern struct {
Version: u32,
Size: u32,
NfitHandle: u32,
SymbolicLink: [256]u16,
};
pub const SCM_PHYSICAL_DEVICES = extern struct {
Version: u32,
Size: u32,
DeviceCount: u32,
Devices: [1]SCM_PHYSICAL_DEVICE_INSTANCE,
};
pub const SCM_REGION_FLAG = enum(i32) {
None = 0,
Label = 1,
};
pub const ScmRegionFlagNone = SCM_REGION_FLAG.None;
pub const ScmRegionFlagLabel = SCM_REGION_FLAG.Label;
pub const SCM_REGION = extern struct {
Version: u32,
Size: u32,
Flags: u32,
NfitHandle: u32,
LogicalDeviceGuid: Guid,
AddressRangeType: Guid,
AssociatedId: u32,
Length: u64,
StartingDPA: u64,
BaseSPA: u64,
SPAOffset: u64,
RegionOffset: u64,
};
pub const SCM_REGIONS = extern struct {
Version: u32,
Size: u32,
RegionCount: u32,
Regions: [1]SCM_REGION,
};
pub const SCM_BUS_QUERY_TYPE = enum(i32) {
Descriptor = 0,
IsSupported = 1,
Max = 2,
};
pub const ScmBusQuery_Descriptor = SCM_BUS_QUERY_TYPE.Descriptor;
pub const ScmBusQuery_IsSupported = SCM_BUS_QUERY_TYPE.IsSupported;
pub const ScmBusQuery_Max = SCM_BUS_QUERY_TYPE.Max;
pub const SCM_BUS_SET_TYPE = enum(i32) {
Descriptor = 0,
IsSupported = 1,
Max = 2,
};
pub const ScmBusSet_Descriptor = SCM_BUS_SET_TYPE.Descriptor;
pub const ScmBusSet_IsSupported = SCM_BUS_SET_TYPE.IsSupported;
pub const ScmBusSet_Max = SCM_BUS_SET_TYPE.Max;
pub const SCM_BUS_PROPERTY_ID = enum(i32) {
RuntimeFwActivationInfo = 0,
DedicatedMemoryInfo = 1,
DedicatedMemoryState = 2,
Max = 3,
};
pub const ScmBusProperty_RuntimeFwActivationInfo = SCM_BUS_PROPERTY_ID.RuntimeFwActivationInfo;
pub const ScmBusProperty_DedicatedMemoryInfo = SCM_BUS_PROPERTY_ID.DedicatedMemoryInfo;
pub const ScmBusProperty_DedicatedMemoryState = SCM_BUS_PROPERTY_ID.DedicatedMemoryState;
pub const ScmBusProperty_Max = SCM_BUS_PROPERTY_ID.Max;
pub const SCM_BUS_PROPERTY_QUERY = extern struct {
Version: u32,
Size: u32,
PropertyId: SCM_BUS_PROPERTY_ID,
QueryType: SCM_BUS_QUERY_TYPE,
AdditionalParameters: [1]u8,
};
pub const SCM_BUS_FIRMWARE_ACTIVATION_STATE = enum(i32) {
Idle = 0,
Armed = 1,
Busy = 2,
};
pub const ScmBusFirmwareActivationState_Idle = SCM_BUS_FIRMWARE_ACTIVATION_STATE.Idle;
pub const ScmBusFirmwareActivationState_Armed = SCM_BUS_FIRMWARE_ACTIVATION_STATE.Armed;
pub const ScmBusFirmwareActivationState_Busy = SCM_BUS_FIRMWARE_ACTIVATION_STATE.Busy;
pub const SCM_BUS_RUNTIME_FW_ACTIVATION_INFO = extern struct {
Version: u32,
Size: u32,
RuntimeFwActivationSupported: BOOLEAN,
FirmwareActivationState: SCM_BUS_FIRMWARE_ACTIVATION_STATE,
FirmwareActivationCapability: extern struct {
_bitfield: u32,
},
EstimatedFirmwareActivationTimeInUSecs: u64,
EstimatedProcessorAccessQuiesceTimeInUSecs: u64,
EstimatedIOAccessQuiesceTimeInUSecs: u64,
PlatformSupportedMaxIOAccessQuiesceTimeInUSecs: u64,
};
pub const SCM_BUS_DEDICATED_MEMORY_DEVICE_INFO = extern struct {
DeviceGuid: Guid,
DeviceNumber: u32,
Flags: extern struct {
_bitfield: u32,
},
DeviceSize: u64,
};
pub const SCM_BUS_DEDICATED_MEMORY_DEVICES_INFO = extern struct {
Version: u32,
Size: u32,
DeviceCount: u32,
Devices: [1]SCM_BUS_DEDICATED_MEMORY_DEVICE_INFO,
};
pub const SCM_BUS_PROPERTY_SET = extern struct {
Version: u32,
Size: u32,
PropertyId: SCM_BUS_PROPERTY_ID,
SetType: SCM_BUS_SET_TYPE,
AdditionalParameters: [1]u8,
};
pub const SCM_BUS_DEDICATED_MEMORY_STATE = extern struct {
ActivateState: BOOLEAN,
};
pub const SCM_INTERLEAVED_PD_INFO = extern struct {
DeviceHandle: u32,
DeviceGuid: Guid,
};
pub const SCM_LD_INTERLEAVE_SET_INFO = extern struct {
Version: u32,
Size: u32,
InterleaveSetSize: u32,
InterleaveSet: [1]SCM_INTERLEAVED_PD_INFO,
};
pub const SCM_PD_QUERY_TYPE = enum(i32) {
Descriptor = 0,
IsSupported = 1,
Max = 2,
};
pub const ScmPhysicalDeviceQuery_Descriptor = SCM_PD_QUERY_TYPE.Descriptor;
pub const ScmPhysicalDeviceQuery_IsSupported = SCM_PD_QUERY_TYPE.IsSupported;
pub const ScmPhysicalDeviceQuery_Max = SCM_PD_QUERY_TYPE.Max;
pub const SCM_PD_SET_TYPE = enum(i32) {
Descriptor = 0,
IsSupported = 1,
Max = 2,
};
pub const ScmPhysicalDeviceSet_Descriptor = SCM_PD_SET_TYPE.Descriptor;
pub const ScmPhysicalDeviceSet_IsSupported = SCM_PD_SET_TYPE.IsSupported;
pub const ScmPhysicalDeviceSet_Max = SCM_PD_SET_TYPE.Max;
pub const SCM_PD_PROPERTY_ID = enum(i32) {
DeviceInfo = 0,
ManagementStatus = 1,
FirmwareInfo = 2,
LocationString = 3,
DeviceSpecificInfo = 4,
DeviceHandle = 5,
FruIdString = 6,
RuntimeFwActivationInfo = 7,
RuntimeFwActivationArmState = 8,
Max = 9,
};
pub const ScmPhysicalDeviceProperty_DeviceInfo = SCM_PD_PROPERTY_ID.DeviceInfo;
pub const ScmPhysicalDeviceProperty_ManagementStatus = SCM_PD_PROPERTY_ID.ManagementStatus;
pub const ScmPhysicalDeviceProperty_FirmwareInfo = SCM_PD_PROPERTY_ID.FirmwareInfo;
pub const ScmPhysicalDeviceProperty_LocationString = SCM_PD_PROPERTY_ID.LocationString;
pub const ScmPhysicalDeviceProperty_DeviceSpecificInfo = SCM_PD_PROPERTY_ID.DeviceSpecificInfo;
pub const ScmPhysicalDeviceProperty_DeviceHandle = SCM_PD_PROPERTY_ID.DeviceHandle;
pub const ScmPhysicalDeviceProperty_FruIdString = SCM_PD_PROPERTY_ID.FruIdString;
pub const ScmPhysicalDeviceProperty_RuntimeFwActivationInfo = SCM_PD_PROPERTY_ID.RuntimeFwActivationInfo;
pub const ScmPhysicalDeviceProperty_RuntimeFwActivationArmState = SCM_PD_PROPERTY_ID.RuntimeFwActivationArmState;
pub const ScmPhysicalDeviceProperty_Max = SCM_PD_PROPERTY_ID.Max;
pub const SCM_PD_PROPERTY_QUERY = extern struct {
Version: u32,
Size: u32,
PropertyId: SCM_PD_PROPERTY_ID,
QueryType: SCM_PD_QUERY_TYPE,
AdditionalParameters: [1]u8,
};
pub const SCM_PD_PROPERTY_SET = extern struct {
Version: u32,
Size: u32,
PropertyId: SCM_PD_PROPERTY_ID,
SetType: SCM_PD_SET_TYPE,
AdditionalParameters: [1]u8,
};
pub const SCM_PD_RUNTIME_FW_ACTIVATION_ARM_STATE = extern struct {
ArmState: BOOLEAN,
};
pub const SCM_PD_DESCRIPTOR_HEADER = extern struct {
Version: u32,
Size: u32,
};
pub const SCM_PD_DEVICE_HANDLE = extern struct {
Version: u32,
Size: u32,
DeviceGuid: Guid,
DeviceHandle: u32,
};
pub const SCM_PD_DEVICE_INFO = extern struct {
Version: u32,
Size: u32,
DeviceGuid: Guid,
UnsafeShutdownCount: u32,
PersistentMemorySizeInBytes: u64,
VolatileMemorySizeInBytes: u64,
TotalMemorySizeInBytes: u64,
SlotNumber: u32,
DeviceHandle: u32,
PhysicalId: u16,
NumberOfFormatInterfaceCodes: u8,
FormatInterfaceCodes: [8]u16,
VendorId: u32,
ProductId: u32,
SubsystemDeviceId: u32,
SubsystemVendorId: u32,
ManufacturingLocation: u8,
ManufacturingWeek: u8,
ManufacturingYear: u8,
SerialNumber4Byte: u32,
SerialNumberLengthInChars: u32,
SerialNumber: [1]CHAR,
};
pub const SCM_PD_DEVICE_SPECIFIC_PROPERTY = extern struct {
Name: [128]u16,
Value: i64,
};
pub const SCM_PD_DEVICE_SPECIFIC_INFO = extern struct {
Version: u32,
Size: u32,
NumberOfProperties: u32,
DeviceSpecificProperties: [1]SCM_PD_DEVICE_SPECIFIC_PROPERTY,
};
pub const SCM_PD_FIRMWARE_SLOT_INFO = extern struct {
Version: u32,
Size: u32,
SlotNumber: u8,
_bitfield: u8,
Reserved1: [6]u8,
Revision: [32]u8,
};
pub const SCM_PD_FIRMWARE_INFO = extern struct {
Version: u32,
Size: u32,
ActiveSlot: u8,
NextActiveSlot: u8,
SlotCount: u8,
Slots: [1]SCM_PD_FIRMWARE_SLOT_INFO,
};
pub const SCM_PD_HEALTH_STATUS = enum(i32) {
Unknown = 0,
Unhealthy = 1,
Warning = 2,
Healthy = 3,
Max = 4,
};
pub const ScmPhysicalDeviceHealth_Unknown = SCM_PD_HEALTH_STATUS.Unknown;
pub const ScmPhysicalDeviceHealth_Unhealthy = SCM_PD_HEALTH_STATUS.Unhealthy;
pub const ScmPhysicalDeviceHealth_Warning = SCM_PD_HEALTH_STATUS.Warning;
pub const ScmPhysicalDeviceHealth_Healthy = SCM_PD_HEALTH_STATUS.Healthy;
pub const ScmPhysicalDeviceHealth_Max = SCM_PD_HEALTH_STATUS.Max;
pub const SCM_PD_OPERATIONAL_STATUS = enum(i32) {
Unknown = 0,
Ok = 1,
PredictingFailure = 2,
InService = 3,
HardwareError = 4,
NotUsable = 5,
TransientError = 6,
Missing = 7,
Max = 8,
};
pub const ScmPhysicalDeviceOpStatus_Unknown = SCM_PD_OPERATIONAL_STATUS.Unknown;
pub const ScmPhysicalDeviceOpStatus_Ok = SCM_PD_OPERATIONAL_STATUS.Ok;
pub const ScmPhysicalDeviceOpStatus_PredictingFailure = SCM_PD_OPERATIONAL_STATUS.PredictingFailure;
pub const ScmPhysicalDeviceOpStatus_InService = SCM_PD_OPERATIONAL_STATUS.InService;
pub const ScmPhysicalDeviceOpStatus_HardwareError = SCM_PD_OPERATIONAL_STATUS.HardwareError;
pub const ScmPhysicalDeviceOpStatus_NotUsable = SCM_PD_OPERATIONAL_STATUS.NotUsable;
pub const ScmPhysicalDeviceOpStatus_TransientError = SCM_PD_OPERATIONAL_STATUS.TransientError;
pub const ScmPhysicalDeviceOpStatus_Missing = SCM_PD_OPERATIONAL_STATUS.Missing;
pub const ScmPhysicalDeviceOpStatus_Max = SCM_PD_OPERATIONAL_STATUS.Max;
pub const SCM_PD_OPERATIONAL_STATUS_REASON = enum(i32) {
Unknown = 0,
Media = 1,
ThresholdExceeded = 2,
LostData = 3,
EnergySource = 4,
Configuration = 5,
DeviceController = 6,
MediaController = 7,
Component = 8,
BackgroundOperation = 9,
InvalidFirmware = 10,
HealthCheck = 11,
LostDataPersistence = 12,
DisabledByPlatform = 13,
PermanentError = 14,
LostWritePersistence = 15,
FatalError = 16,
DataPersistenceLossImminent = 17,
WritePersistenceLossImminent = 18,
MediaRemainingSpareBlock = 19,
PerformanceDegradation = 20,
ExcessiveTemperature = 21,
InternalFailure = 22,
Max = 23,
};
pub const ScmPhysicalDeviceOpReason_Unknown = SCM_PD_OPERATIONAL_STATUS_REASON.Unknown;
pub const ScmPhysicalDeviceOpReason_Media = SCM_PD_OPERATIONAL_STATUS_REASON.Media;
pub const ScmPhysicalDeviceOpReason_ThresholdExceeded = SCM_PD_OPERATIONAL_STATUS_REASON.ThresholdExceeded;
pub const ScmPhysicalDeviceOpReason_LostData = SCM_PD_OPERATIONAL_STATUS_REASON.LostData;
pub const ScmPhysicalDeviceOpReason_EnergySource = SCM_PD_OPERATIONAL_STATUS_REASON.EnergySource;
pub const ScmPhysicalDeviceOpReason_Configuration = SCM_PD_OPERATIONAL_STATUS_REASON.Configuration;
pub const ScmPhysicalDeviceOpReason_DeviceController = SCM_PD_OPERATIONAL_STATUS_REASON.DeviceController;
pub const ScmPhysicalDeviceOpReason_MediaController = SCM_PD_OPERATIONAL_STATUS_REASON.MediaController;
pub const ScmPhysicalDeviceOpReason_Component = SCM_PD_OPERATIONAL_STATUS_REASON.Component;
pub const ScmPhysicalDeviceOpReason_BackgroundOperation = SCM_PD_OPERATIONAL_STATUS_REASON.BackgroundOperation;
pub const ScmPhysicalDeviceOpReason_InvalidFirmware = SCM_PD_OPERATIONAL_STATUS_REASON.InvalidFirmware;
pub const ScmPhysicalDeviceOpReason_HealthCheck = SCM_PD_OPERATIONAL_STATUS_REASON.HealthCheck;
pub const ScmPhysicalDeviceOpReason_LostDataPersistence = SCM_PD_OPERATIONAL_STATUS_REASON.LostDataPersistence;
pub const ScmPhysicalDeviceOpReason_DisabledByPlatform = SCM_PD_OPERATIONAL_STATUS_REASON.DisabledByPlatform;
pub const ScmPhysicalDeviceOpReason_PermanentError = SCM_PD_OPERATIONAL_STATUS_REASON.PermanentError;
pub const ScmPhysicalDeviceOpReason_LostWritePersistence = SCM_PD_OPERATIONAL_STATUS_REASON.LostWritePersistence;
pub const ScmPhysicalDeviceOpReason_FatalError = SCM_PD_OPERATIONAL_STATUS_REASON.FatalError;
pub const ScmPhysicalDeviceOpReason_DataPersistenceLossImminent = SCM_PD_OPERATIONAL_STATUS_REASON.DataPersistenceLossImminent;
pub const ScmPhysicalDeviceOpReason_WritePersistenceLossImminent = SCM_PD_OPERATIONAL_STATUS_REASON.WritePersistenceLossImminent;
pub const ScmPhysicalDeviceOpReason_MediaRemainingSpareBlock = SCM_PD_OPERATIONAL_STATUS_REASON.MediaRemainingSpareBlock;
pub const ScmPhysicalDeviceOpReason_PerformanceDegradation = SCM_PD_OPERATIONAL_STATUS_REASON.PerformanceDegradation;
pub const ScmPhysicalDeviceOpReason_ExcessiveTemperature = SCM_PD_OPERATIONAL_STATUS_REASON.ExcessiveTemperature;
pub const ScmPhysicalDeviceOpReason_InternalFailure = SCM_PD_OPERATIONAL_STATUS_REASON.InternalFailure;
pub const ScmPhysicalDeviceOpReason_Max = SCM_PD_OPERATIONAL_STATUS_REASON.Max;
pub const SCM_PD_MANAGEMENT_STATUS = extern struct {
Version: u32,
Size: u32,
Health: SCM_PD_HEALTH_STATUS,
NumberOfOperationalStatus: u32,
NumberOfAdditionalReasons: u32,
OperationalStatus: [16]SCM_PD_OPERATIONAL_STATUS,
AdditionalReasons: [1]SCM_PD_OPERATIONAL_STATUS_REASON,
};
pub const SCM_PD_LOCATION_STRING = extern struct {
Version: u32,
Size: u32,
Location: [1]u16,
};
pub const SCM_PD_FRU_ID_STRING = extern struct {
Version: u32,
Size: u32,
IdentifierSize: u32,
Identifier: [1]u8,
};
pub const SCM_PD_FIRMWARE_DOWNLOAD = extern struct {
Version: u32,
Size: u32,
Flags: u32,
Slot: u8,
Reserved: [3]u8,
Offset: u64,
FirmwareImageSizeInBytes: u32,
FirmwareImage: [1]u8,
};
pub const SCM_PD_FIRMWARE_ACTIVATE = extern struct {
Version: u32,
Size: u32,
Flags: u32,
Slot: u8,
};
pub const SCM_PD_LAST_FW_ACTIVATION_STATUS = enum(i32) {
tionStatus_None = 0,
tionStatus_Success = 1,
tionStatus_FwNotFound = 2,
tionStatus_ColdRebootRequired = 3,
itonStatus_ActivationInProgress = 4,
itonStatus_Retry = 5,
itonStatus_FwUnsupported = 6,
itonStatus_UnknownError = 7,
};
pub const ScmPdLastFwActivationStatus_None = SCM_PD_LAST_FW_ACTIVATION_STATUS.tionStatus_None;
pub const ScmPdLastFwActivationStatus_Success = SCM_PD_LAST_FW_ACTIVATION_STATUS.tionStatus_Success;
pub const ScmPdLastFwActivationStatus_FwNotFound = SCM_PD_LAST_FW_ACTIVATION_STATUS.tionStatus_FwNotFound;
pub const ScmPdLastFwActivationStatus_ColdRebootRequired = SCM_PD_LAST_FW_ACTIVATION_STATUS.tionStatus_ColdRebootRequired;
pub const ScmPdLastFwActivaitonStatus_ActivationInProgress = SCM_PD_LAST_FW_ACTIVATION_STATUS.itonStatus_ActivationInProgress;
pub const ScmPdLastFwActivaitonStatus_Retry = SCM_PD_LAST_FW_ACTIVATION_STATUS.itonStatus_Retry;
pub const ScmPdLastFwActivaitonStatus_FwUnsupported = SCM_PD_LAST_FW_ACTIVATION_STATUS.itonStatus_FwUnsupported;
pub const ScmPdLastFwActivaitonStatus_UnknownError = SCM_PD_LAST_FW_ACTIVATION_STATUS.itonStatus_UnknownError;
pub const SCM_PD_FIRMWARE_ACTIVATION_STATE = enum(i32) {
Idle = 0,
Armed = 1,
Busy = 2,
};
pub const ScmPdFirmwareActivationState_Idle = SCM_PD_FIRMWARE_ACTIVATION_STATE.Idle;
pub const ScmPdFirmwareActivationState_Armed = SCM_PD_FIRMWARE_ACTIVATION_STATE.Armed;
pub const ScmPdFirmwareActivationState_Busy = SCM_PD_FIRMWARE_ACTIVATION_STATE.Busy;
pub const SCM_PD_RUNTIME_FW_ACTIVATION_INFO = extern struct {
Version: u32,
Size: u32,
LastFirmwareActivationStatus: SCM_PD_LAST_FW_ACTIVATION_STATUS,
FirmwareActivationState: SCM_PD_FIRMWARE_ACTIVATION_STATE,
};
pub const SCM_PD_PASSTHROUGH_INPUT = extern struct {
Version: u32,
Size: u32,
ProtocolGuid: Guid,
DataSize: u32,
Data: [1]u8,
};
pub const SCM_PD_PASSTHROUGH_OUTPUT = extern struct {
Version: u32,
Size: u32,
ProtocolGuid: Guid,
DataSize: u32,
Data: [1]u8,
};
pub const SCM_PD_PASSTHROUGH_INVDIMM_INPUT = extern struct {
Opcode: u32,
OpcodeParametersLength: u32,
OpcodeParameters: [1]u8,
};
pub const SCM_PD_PASSTHROUGH_INVDIMM_OUTPUT = extern struct {
GeneralStatus: u16,
ExtendedStatus: u16,
OutputDataLength: u32,
OutputData: [1]u8,
};
pub const SCM_PD_REINITIALIZE_MEDIA_INPUT = extern struct {
Version: u32,
Size: u32,
Options: extern struct {
_bitfield: u32,
},
};
pub const SCM_PD_MEDIA_REINITIALIZATION_STATUS = enum(i32) {
Success = 0,
RebootNeeded = 1,
ColdBootNeeded = 2,
Max = 3,
};
pub const ScmPhysicalDeviceReinit_Success = SCM_PD_MEDIA_REINITIALIZATION_STATUS.Success;
pub const ScmPhysicalDeviceReinit_RebootNeeded = SCM_PD_MEDIA_REINITIALIZATION_STATUS.RebootNeeded;
pub const ScmPhysicalDeviceReinit_ColdBootNeeded = SCM_PD_MEDIA_REINITIALIZATION_STATUS.ColdBootNeeded;
pub const ScmPhysicalDeviceReinit_Max = SCM_PD_MEDIA_REINITIALIZATION_STATUS.Max;
pub const SCM_PD_REINITIALIZE_MEDIA_OUTPUT = extern struct {
Version: u32,
Size: u32,
Status: SCM_PD_MEDIA_REINITIALIZATION_STATUS,
};
pub const MEDIA_TYPE = enum(i32) {
Unknown = 0,
F5_1Pt2_512 = 1,
F3_1Pt44_512 = 2,
F3_2Pt88_512 = 3,
F3_20Pt8_512 = 4,
F3_720_512 = 5,
F5_360_512 = 6,
F5_320_512 = 7,
F5_320_1024 = 8,
F5_180_512 = 9,
F5_160_512 = 10,
RemovableMedia = 11,
FixedMedia = 12,
F3_120M_512 = 13,
F3_640_512 = 14,
F5_640_512 = 15,
F5_720_512 = 16,
F3_1Pt2_512 = 17,
F3_1Pt23_1024 = 18,
F5_1Pt23_1024 = 19,
F3_128Mb_512 = 20,
F3_230Mb_512 = 21,
F8_256_128 = 22,
F3_200Mb_512 = 23,
F3_240M_512 = 24,
F3_32M_512 = 25,
};
pub const Unknown = MEDIA_TYPE.Unknown;
pub const F5_1Pt2_512 = MEDIA_TYPE.F5_1Pt2_512;
pub const F3_1Pt44_512 = MEDIA_TYPE.F3_1Pt44_512;
pub const F3_2Pt88_512 = MEDIA_TYPE.F3_2Pt88_512;
pub const F3_20Pt8_512 = MEDIA_TYPE.F3_20Pt8_512;
pub const F3_720_512 = MEDIA_TYPE.F3_720_512;
pub const F5_360_512 = MEDIA_TYPE.F5_360_512;
pub const F5_320_512 = MEDIA_TYPE.F5_320_512;
pub const F5_320_1024 = MEDIA_TYPE.F5_320_1024;
pub const F5_180_512 = MEDIA_TYPE.F5_180_512;
pub const F5_160_512 = MEDIA_TYPE.F5_160_512;
pub const RemovableMedia = MEDIA_TYPE.RemovableMedia;
pub const FixedMedia = MEDIA_TYPE.FixedMedia;
pub const F3_120M_512 = MEDIA_TYPE.F3_120M_512;
pub const F3_640_512 = MEDIA_TYPE.F3_640_512;
pub const F5_640_512 = MEDIA_TYPE.F5_640_512;
pub const F5_720_512 = MEDIA_TYPE.F5_720_512;
pub const F3_1Pt2_512 = MEDIA_TYPE.F3_1Pt2_512;
pub const F3_1Pt23_1024 = MEDIA_TYPE.F3_1Pt23_1024;
pub const F5_1Pt23_1024 = MEDIA_TYPE.F5_1Pt23_1024;
pub const F3_128Mb_512 = MEDIA_TYPE.F3_128Mb_512;
pub const F3_230Mb_512 = MEDIA_TYPE.F3_230Mb_512;
pub const F8_256_128 = MEDIA_TYPE.F8_256_128;
pub const F3_200Mb_512 = MEDIA_TYPE.F3_200Mb_512;
pub const F3_240M_512 = MEDIA_TYPE.F3_240M_512;
pub const F3_32M_512 = MEDIA_TYPE.F3_32M_512;
pub const FORMAT_PARAMETERS = extern struct {
MediaType: MEDIA_TYPE,
StartCylinderNumber: u32,
EndCylinderNumber: u32,
StartHeadNumber: u32,
EndHeadNumber: u32,
};
pub const FORMAT_EX_PARAMETERS = extern struct {
MediaType: MEDIA_TYPE,
StartCylinderNumber: u32,
EndCylinderNumber: u32,
StartHeadNumber: u32,
EndHeadNumber: u32,
FormatGapLength: u16,
SectorsPerTrack: u16,
SectorNumber: [1]u16,
};
pub const DISK_GEOMETRY = extern struct {
Cylinders: LARGE_INTEGER,
MediaType: MEDIA_TYPE,
TracksPerCylinder: u32,
SectorsPerTrack: u32,
BytesPerSector: u32,
};
pub const PARTITION_INFORMATION = extern struct {
StartingOffset: LARGE_INTEGER,
PartitionLength: LARGE_INTEGER,
HiddenSectors: u32,
PartitionNumber: u32,
PartitionType: u8,
BootIndicator: BOOLEAN,
RecognizedPartition: BOOLEAN,
RewritePartition: BOOLEAN,
};
pub const SET_PARTITION_INFORMATION = extern struct {
PartitionType: u8,
};
pub const DRIVE_LAYOUT_INFORMATION = extern struct {
PartitionCount: u32,
Signature: u32,
PartitionEntry: [1]PARTITION_INFORMATION,
};
pub const VERIFY_INFORMATION = extern struct {
StartingOffset: LARGE_INTEGER,
Length: u32,
};
pub const REASSIGN_BLOCKS = extern struct {
Reserved: u16,
Count: u16,
BlockNumber: [1]u32,
};
pub const REASSIGN_BLOCKS_EX = extern struct {
Reserved: u16 align(1),
Count: u16 align(1),
BlockNumber: [1]LARGE_INTEGER align(1),
};
pub const PARTITION_STYLE = enum(i32) {
MBR = 0,
GPT = 1,
RAW = 2,
};
pub const PARTITION_STYLE_MBR = PARTITION_STYLE.MBR;
pub const PARTITION_STYLE_GPT = PARTITION_STYLE.GPT;
pub const PARTITION_STYLE_RAW = PARTITION_STYLE.RAW;
pub const PARTITION_INFORMATION_GPT = extern struct {
PartitionType: Guid,
PartitionId: Guid,
Attributes: GPT_ATTRIBUTES,
Name: [36]u16,
};
pub const PARTITION_INFORMATION_MBR = extern struct {
PartitionType: u8,
BootIndicator: BOOLEAN,
RecognizedPartition: BOOLEAN,
HiddenSectors: u32,
PartitionId: Guid,
};
pub const SET_PARTITION_INFORMATION_EX = extern struct {
PartitionStyle: PARTITION_STYLE,
Anonymous: extern union {
Mbr: SET_PARTITION_INFORMATION,
Gpt: PARTITION_INFORMATION_GPT,
},
};
pub const CREATE_DISK_GPT = extern struct {
DiskId: Guid,
MaxPartitionCount: u32,
};
pub const CREATE_DISK_MBR = extern struct {
Signature: u32,
};
pub const CREATE_DISK = extern struct {
PartitionStyle: PARTITION_STYLE,
Anonymous: extern union {
Mbr: CREATE_DISK_MBR,
Gpt: CREATE_DISK_GPT,
},
};
pub const GET_LENGTH_INFORMATION = extern struct {
Length: LARGE_INTEGER,
};
pub const PARTITION_INFORMATION_EX = extern struct {
PartitionStyle: PARTITION_STYLE,
StartingOffset: LARGE_INTEGER,
PartitionLength: LARGE_INTEGER,
PartitionNumber: u32,
RewritePartition: BOOLEAN,
IsServicePartition: BOOLEAN,
Anonymous: extern union {
Mbr: PARTITION_INFORMATION_MBR,
Gpt: PARTITION_INFORMATION_GPT,
},
};
pub const DRIVE_LAYOUT_INFORMATION_GPT = extern struct {
DiskId: Guid,
StartingUsableOffset: LARGE_INTEGER,
UsableLength: LARGE_INTEGER,
MaxPartitionCount: u32,
};
pub const DRIVE_LAYOUT_INFORMATION_MBR = extern struct {
Signature: u32,
CheckSum: u32,
};
pub const DRIVE_LAYOUT_INFORMATION_EX = extern struct {
PartitionStyle: u32,
PartitionCount: u32,
Anonymous: extern union {
Mbr: DRIVE_LAYOUT_INFORMATION_MBR,
Gpt: DRIVE_LAYOUT_INFORMATION_GPT,
},
PartitionEntry: [1]PARTITION_INFORMATION_EX,
};
pub const DETECTION_TYPE = enum(i32) {
None = 0,
Int13 = 1,
ExInt13 = 2,
};
pub const DetectNone = DETECTION_TYPE.None;
pub const DetectInt13 = DETECTION_TYPE.Int13;
pub const DetectExInt13 = DETECTION_TYPE.ExInt13;
pub const DISK_INT13_INFO = extern struct {
DriveSelect: u16,
MaxCylinders: u32,
SectorsPerTrack: u16,
MaxHeads: u16,
NumberDrives: u16,
};
pub const DISK_EX_INT13_INFO = extern struct {
ExBufferSize: u16,
ExFlags: u16,
ExCylinders: u32,
ExHeads: u32,
ExSectorsPerTrack: u32,
ExSectorsPerDrive: u64,
ExSectorSize: u16,
ExReserved: u16,
};
pub const DISK_DETECTION_INFO = extern struct {
SizeOfDetectInfo: u32,
DetectionType: DETECTION_TYPE,
Anonymous: extern union {
Anonymous: extern struct {
Int13: DISK_INT13_INFO,
ExInt13: DISK_EX_INT13_INFO,
},
},
};
pub const DISK_PARTITION_INFO = extern struct {
SizeOfPartitionInfo: u32,
PartitionStyle: PARTITION_STYLE,
Anonymous: extern union {
Mbr: extern struct {
Signature: u32,
CheckSum: u32,
},
Gpt: extern struct {
DiskId: Guid,
},
},
};
pub const DISK_GEOMETRY_EX = extern struct {
Geometry: DISK_GEOMETRY,
DiskSize: LARGE_INTEGER,
Data: [1]u8,
};
pub const DISK_CONTROLLER_NUMBER = extern struct {
ControllerNumber: u32,
DiskNumber: u32,
};
pub const DISK_CACHE_RETENTION_PRIORITY = enum(i32) {
EqualPriority = 0,
KeepPrefetchedData = 1,
KeepReadData = 2,
};
pub const EqualPriority = DISK_CACHE_RETENTION_PRIORITY.EqualPriority;
pub const KeepPrefetchedData = DISK_CACHE_RETENTION_PRIORITY.KeepPrefetchedData;
pub const KeepReadData = DISK_CACHE_RETENTION_PRIORITY.KeepReadData;
pub const DISK_CACHE_INFORMATION = extern struct {
ParametersSavable: BOOLEAN,
ReadCacheEnabled: BOOLEAN,
WriteCacheEnabled: BOOLEAN,
ReadRetentionPriority: DISK_CACHE_RETENTION_PRIORITY,
WriteRetentionPriority: DISK_CACHE_RETENTION_PRIORITY,
DisablePrefetchTransferLength: u16,
PrefetchScalar: BOOLEAN,
Anonymous: extern union {
ScalarPrefetch: extern struct {
Minimum: u16,
Maximum: u16,
MaximumBlocks: u16,
},
BlockPrefetch: extern struct {
Minimum: u16,
Maximum: u16,
},
},
};
pub const DISK_GROW_PARTITION = extern struct {
PartitionNumber: u32,
BytesToGrow: LARGE_INTEGER,
};
pub const HISTOGRAM_BUCKET = extern struct {
Reads: u32,
Writes: u32,
};
pub const DISK_HISTOGRAM = extern struct {
DiskSize: LARGE_INTEGER,
Start: LARGE_INTEGER,
End: LARGE_INTEGER,
Average: LARGE_INTEGER,
AverageRead: LARGE_INTEGER,
AverageWrite: LARGE_INTEGER,
Granularity: u32,
Size: u32,
ReadCount: u32,
WriteCount: u32,
Histogram: ?*HISTOGRAM_BUCKET,
};
pub const DISK_PERFORMANCE = extern struct {
BytesRead: LARGE_INTEGER,
BytesWritten: LARGE_INTEGER,
ReadTime: LARGE_INTEGER,
WriteTime: LARGE_INTEGER,
IdleTime: LARGE_INTEGER,
ReadCount: u32,
WriteCount: u32,
QueueDepth: u32,
SplitCount: u32,
QueryTime: LARGE_INTEGER,
StorageDeviceNumber: u32,
StorageManagerName: [8]u16,
};
pub const DISK_RECORD = extern struct {
ByteOffset: LARGE_INTEGER,
StartTime: LARGE_INTEGER,
EndTime: LARGE_INTEGER,
VirtualAddress: ?*anyopaque,
NumberOfBytes: u32,
DeviceNumber: u8,
ReadRequest: BOOLEAN,
};
pub const DISK_LOGGING = extern struct {
Function: u8,
BufferAddress: ?*anyopaque,
BufferSize: u32,
};
pub const BIN_TYPES = enum(i32) {
Size = 0,
Location = 1,
};
pub const RequestSize = BIN_TYPES.Size;
pub const RequestLocation = BIN_TYPES.Location;
pub const BIN_RANGE = extern struct {
StartValue: LARGE_INTEGER,
Length: LARGE_INTEGER,
};
pub const PERF_BIN = extern struct {
NumberOfBins: u32,
TypeOfBin: u32,
BinsRanges: [1]BIN_RANGE,
};
pub const BIN_COUNT = extern struct {
BinRange: BIN_RANGE,
BinCount: u32,
};
pub const BIN_RESULTS = extern struct {
NumberOfBins: u32,
BinCounts: [1]BIN_COUNT,
};
pub const GETVERSIONINPARAMS = extern struct {
bVersion: u8 align(1),
bRevision: u8 align(1),
bReserved: u8 align(1),
bIDEDeviceMap: u8 align(1),
fCapabilities: u32 align(1),
dwReserved: [4]u32 align(1),
};
pub const IDEREGS = extern struct {
bFeaturesReg: u8,
bSectorCountReg: u8,
bSectorNumberReg: u8,
bCylLowReg: u8,
bCylHighReg: u8,
bDriveHeadReg: u8,
bCommandReg: u8,
bReserved: u8,
};
pub const SENDCMDINPARAMS = extern struct {
cBufferSize: u32 align(1),
irDriveRegs: IDEREGS align(1),
bDriveNumber: u8 align(1),
bReserved: [3]u8 align(1),
dwReserved: [4]u32 align(1),
bBuffer: [1]u8 align(1),
};
pub const DRIVERSTATUS = extern struct {
bDriverError: u8 align(1),
bIDEError: u8 align(1),
bReserved: [2]u8 align(1),
dwReserved: [2]u32 align(1),
};
pub const SENDCMDOUTPARAMS = extern struct {
cBufferSize: u32 align(1),
DriverStatus: DRIVERSTATUS align(1),
bBuffer: [1]u8 align(1),
};
pub const GET_DISK_ATTRIBUTES = extern struct {
Version: u32,
Reserved1: u32,
Attributes: u64,
};
pub const SET_DISK_ATTRIBUTES = extern struct {
Version: u32,
Persist: BOOLEAN,
Reserved1: [3]u8,
Attributes: u64,
AttributesMask: u64,
Reserved2: [4]u32,
};
pub const ELEMENT_TYPE = enum(i32) {
AllElements = 0,
ChangerTransport = 1,
ChangerSlot = 2,
ChangerIEPort = 3,
ChangerDrive = 4,
ChangerDoor = 5,
ChangerKeypad = 6,
ChangerMaxElement = 7,
};
pub const AllElements = ELEMENT_TYPE.AllElements;
pub const ChangerTransport = ELEMENT_TYPE.ChangerTransport;
pub const ChangerSlot = ELEMENT_TYPE.ChangerSlot;
pub const ChangerIEPort = ELEMENT_TYPE.ChangerIEPort;
pub const ChangerDrive = ELEMENT_TYPE.ChangerDrive;
pub const ChangerDoor = ELEMENT_TYPE.ChangerDoor;
pub const ChangerKeypad = ELEMENT_TYPE.ChangerKeypad;
pub const ChangerMaxElement = ELEMENT_TYPE.ChangerMaxElement;
pub const CHANGER_ELEMENT = extern struct {
ElementType: ELEMENT_TYPE,
ElementAddress: u32,
};
pub const CHANGER_ELEMENT_LIST = extern struct {
Element: CHANGER_ELEMENT,
NumberOfElements: u32,
};
pub const GET_CHANGER_PARAMETERS = extern struct {
Size: u32,
NumberTransportElements: u16,
NumberStorageElements: u16,
NumberCleanerSlots: u16,
NumberIEElements: u16,
NumberDataTransferElements: u16,
NumberOfDoors: u16,
FirstSlotNumber: u16,
FirstDriveNumber: u16,
FirstTransportNumber: u16,
FirstIEPortNumber: u16,
FirstCleanerSlotAddress: u16,
MagazineSize: u16,
DriveCleanTimeout: u32,
Features0: CHANGER_FEATURES,
Features1: GET_CHANGER_PARAMETERS_FEATURES1,
MoveFromTransport: u8,
MoveFromSlot: u8,
MoveFromIePort: u8,
MoveFromDrive: u8,
ExchangeFromTransport: u8,
ExchangeFromSlot: u8,
ExchangeFromIePort: u8,
ExchangeFromDrive: u8,
LockUnlockCapabilities: u8,
PositionCapabilities: u8,
Reserved1: [2]u8,
Reserved2: [2]u32,
};
pub const CHANGER_PRODUCT_DATA = extern struct {
VendorId: [8]u8,
ProductId: [16]u8,
Revision: [4]u8,
SerialNumber: [32]u8,
DeviceType: u8,
};
pub const CHANGER_SET_ACCESS = extern struct {
Element: CHANGER_ELEMENT,
Control: u32,
};
pub const CHANGER_READ_ELEMENT_STATUS = extern struct {
ElementList: CHANGER_ELEMENT_LIST,
VolumeTagInfo: BOOLEAN,
};
pub const CHANGER_ELEMENT_STATUS = extern struct {
Element: CHANGER_ELEMENT,
SrcElementAddress: CHANGER_ELEMENT,
Flags: CHANGER_ELEMENT_STATUS_FLAGS,
ExceptionCode: u32,
TargetId: u8,
Lun: u8,
Reserved: u16,
PrimaryVolumeID: [36]u8,
AlternateVolumeID: [36]u8,
};
pub const CHANGER_ELEMENT_STATUS_EX = extern struct {
Element: CHANGER_ELEMENT,
SrcElementAddress: CHANGER_ELEMENT,
Flags: CHANGER_ELEMENT_STATUS_FLAGS,
ExceptionCode: u32,
TargetId: u8,
Lun: u8,
Reserved: u16,
PrimaryVolumeID: [36]u8,
AlternateVolumeID: [36]u8,
VendorIdentification: [8]u8,
ProductIdentification: [16]u8,
SerialNumber: [32]u8,
};
pub const CHANGER_INITIALIZE_ELEMENT_STATUS = extern struct {
ElementList: CHANGER_ELEMENT_LIST,
BarCodeScan: BOOLEAN,
};
pub const CHANGER_SET_POSITION = extern struct {
Transport: CHANGER_ELEMENT,
Destination: CHANGER_ELEMENT,
Flip: BOOLEAN,
};
pub const CHANGER_EXCHANGE_MEDIUM = extern struct {
Transport: CHANGER_ELEMENT,
Source: CHANGER_ELEMENT,
Destination1: CHANGER_ELEMENT,
Destination2: CHANGER_ELEMENT,
Flip1: BOOLEAN,
Flip2: BOOLEAN,
};
pub const CHANGER_MOVE_MEDIUM = extern struct {
Transport: CHANGER_ELEMENT,
Source: CHANGER_ELEMENT,
Destination: CHANGER_ELEMENT,
Flip: BOOLEAN,
};
pub const CHANGER_SEND_VOLUME_TAG_INFORMATION = extern struct {
StartingElement: CHANGER_ELEMENT,
ActionCode: u32,
VolumeIDTemplate: [40]u8,
};
pub const READ_ELEMENT_ADDRESS_INFO = extern struct {
NumberOfElements: u32,
ElementStatus: [1]CHANGER_ELEMENT_STATUS,
};
pub const CHANGER_DEVICE_PROBLEM_TYPE = enum(i32) {
None = 0,
Hardware = 1,
CHMError = 2,
DoorOpen = 3,
CalibrationError = 4,
TargetFailure = 5,
CHMMoveError = 6,
CHMZeroError = 7,
CartridgeInsertError = 8,
PositionError = 9,
SensorError = 10,
CartridgeEjectError = 11,
GripperError = 12,
DriveError = 13,
};
pub const DeviceProblemNone = CHANGER_DEVICE_PROBLEM_TYPE.None;
pub const DeviceProblemHardware = CHANGER_DEVICE_PROBLEM_TYPE.Hardware;
pub const DeviceProblemCHMError = CHANGER_DEVICE_PROBLEM_TYPE.CHMError;
pub const DeviceProblemDoorOpen = CHANGER_DEVICE_PROBLEM_TYPE.DoorOpen;
pub const DeviceProblemCalibrationError = CHANGER_DEVICE_PROBLEM_TYPE.CalibrationError;
pub const DeviceProblemTargetFailure = CHANGER_DEVICE_PROBLEM_TYPE.TargetFailure;
pub const DeviceProblemCHMMoveError = CHANGER_DEVICE_PROBLEM_TYPE.CHMMoveError;
pub const DeviceProblemCHMZeroError = CHANGER_DEVICE_PROBLEM_TYPE.CHMZeroError;
pub const DeviceProblemCartridgeInsertError = CHANGER_DEVICE_PROBLEM_TYPE.CartridgeInsertError;
pub const DeviceProblemPositionError = CHANGER_DEVICE_PROBLEM_TYPE.PositionError;
pub const DeviceProblemSensorError = CHANGER_DEVICE_PROBLEM_TYPE.SensorError;
pub const DeviceProblemCartridgeEjectError = CHANGER_DEVICE_PROBLEM_TYPE.CartridgeEjectError;
pub const DeviceProblemGripperError = CHANGER_DEVICE_PROBLEM_TYPE.GripperError;
pub const DeviceProblemDriveError = CHANGER_DEVICE_PROBLEM_TYPE.DriveError;
pub const PATHNAME_BUFFER = extern struct {
PathNameLength: u32,
Name: [1]u16,
};
pub const FSCTL_QUERY_FAT_BPB_BUFFER = extern struct {
First0x24BytesOfBootSector: [36]u8,
};
pub const NTFS_VOLUME_DATA_BUFFER = extern struct {
VolumeSerialNumber: LARGE_INTEGER,
NumberSectors: LARGE_INTEGER,
TotalClusters: LARGE_INTEGER,
FreeClusters: LARGE_INTEGER,
TotalReserved: LARGE_INTEGER,
BytesPerSector: u32,
BytesPerCluster: u32,
BytesPerFileRecordSegment: u32,
ClustersPerFileRecordSegment: u32,
MftValidDataLength: LARGE_INTEGER,
MftStartLcn: LARGE_INTEGER,
Mft2StartLcn: LARGE_INTEGER,
MftZoneStart: LARGE_INTEGER,
MftZoneEnd: LARGE_INTEGER,
};
pub const NTFS_EXTENDED_VOLUME_DATA = extern struct {
ByteCount: u32,
MajorVersion: u16,
MinorVersion: u16,
BytesPerPhysicalSector: u32,
LfsMajorVersion: u16,
LfsMinorVersion: u16,
MaxDeviceTrimExtentCount: u32,
MaxDeviceTrimByteCount: u32,
MaxVolumeTrimExtentCount: u32,
MaxVolumeTrimByteCount: u32,
};
pub const REFS_VOLUME_DATA_BUFFER = extern struct {
ByteCount: u32,
MajorVersion: u32,
MinorVersion: u32,
BytesPerPhysicalSector: u32,
VolumeSerialNumber: LARGE_INTEGER,
NumberSectors: LARGE_INTEGER,
TotalClusters: LARGE_INTEGER,
FreeClusters: LARGE_INTEGER,
TotalReserved: LARGE_INTEGER,
BytesPerSector: u32,
BytesPerCluster: u32,
MaximumSizeOfResidentFile: LARGE_INTEGER,
FastTierDataFillRatio: u16,
SlowTierDataFillRatio: u16,
DestagesFastTierToSlowTierRate: u32,
Reserved: [9]LARGE_INTEGER,
};
pub const STARTING_LCN_INPUT_BUFFER = extern struct {
StartingLcn: LARGE_INTEGER,
};
pub const STARTING_LCN_INPUT_BUFFER_EX = extern struct {
StartingLcn: LARGE_INTEGER,
Flags: u32,
};
pub const VOLUME_BITMAP_BUFFER = extern struct {
StartingLcn: LARGE_INTEGER,
BitmapSize: LARGE_INTEGER,
Buffer: [1]u8,
};
pub const STARTING_VCN_INPUT_BUFFER = extern struct {
StartingVcn: LARGE_INTEGER,
};
pub const RETRIEVAL_POINTERS_BUFFER = extern struct {
ExtentCount: u32,
StartingVcn: LARGE_INTEGER,
Extents: [1]extern struct {
NextVcn: LARGE_INTEGER,
Lcn: LARGE_INTEGER,
},
};
pub const RETRIEVAL_POINTERS_AND_REFCOUNT_BUFFER = extern struct {
ExtentCount: u32,
StartingVcn: LARGE_INTEGER,
Extents: [1]extern struct {
NextVcn: LARGE_INTEGER,
Lcn: LARGE_INTEGER,
ReferenceCount: u32,
},
};
pub const RETRIEVAL_POINTER_COUNT = extern struct {
ExtentCount: u32,
};
pub const NTFS_FILE_RECORD_INPUT_BUFFER = extern struct {
FileReferenceNumber: LARGE_INTEGER,
};
pub const NTFS_FILE_RECORD_OUTPUT_BUFFER = extern struct {
FileReferenceNumber: LARGE_INTEGER,
FileRecordLength: u32,
FileRecordBuffer: [1]u8,
};
pub const MOVE_FILE_DATA = extern struct {
FileHandle: ?HANDLE,
StartingVcn: LARGE_INTEGER,
StartingLcn: LARGE_INTEGER,
ClusterCount: u32,
};
pub const MOVE_FILE_RECORD_DATA = extern struct {
FileHandle: ?HANDLE,
SourceFileRecord: LARGE_INTEGER,
TargetFileRecord: LARGE_INTEGER,
};
pub const FIND_BY_SID_DATA = extern struct {
Restart: u32,
Sid: SID,
};
pub const FIND_BY_SID_OUTPUT = extern struct {
NextEntryOffset: u32,
FileIndex: u32,
FileNameLength: u32,
FileName: [1]u16,
};
pub const MFT_ENUM_DATA_V0 = extern struct {
StartFileReferenceNumber: u64,
LowUsn: i64,
HighUsn: i64,
};
pub const MFT_ENUM_DATA_V1 = extern struct {
StartFileReferenceNumber: u64,
LowUsn: i64,
HighUsn: i64,
MinMajorVersion: u16,
MaxMajorVersion: u16,
};
pub const CREATE_USN_JOURNAL_DATA = extern struct {
MaximumSize: u64,
AllocationDelta: u64,
};
pub const READ_FILE_USN_DATA = extern struct {
MinMajorVersion: u16,
MaxMajorVersion: u16,
};
pub const READ_USN_JOURNAL_DATA_V0 = extern struct {
StartUsn: i64,
ReasonMask: u32,
ReturnOnlyOnClose: u32,
Timeout: u64,
BytesToWaitFor: u64,
UsnJournalID: u64,
};
pub const READ_USN_JOURNAL_DATA_V1 = extern struct {
StartUsn: i64,
ReasonMask: u32,
ReturnOnlyOnClose: u32,
Timeout: u64,
BytesToWaitFor: u64,
UsnJournalID: u64,
MinMajorVersion: u16,
MaxMajorVersion: u16,
};
pub const USN_TRACK_MODIFIED_RANGES = extern struct {
Flags: u32,
Unused: u32,
ChunkSize: u64,
FileSizeThreshold: i64,
};
pub const USN_RANGE_TRACK_OUTPUT = extern struct {
Usn: i64,
};
pub const USN_RECORD_V2 = extern struct {
RecordLength: u32,
MajorVersion: u16,
MinorVersion: u16,
FileReferenceNumber: u64,
ParentFileReferenceNumber: u64,
Usn: i64,
TimeStamp: LARGE_INTEGER,
Reason: u32,
SourceInfo: u32,
SecurityId: u32,
FileAttributes: u32,
FileNameLength: u16,
FileNameOffset: u16,
FileName: [1]u16,
};
pub const USN_RECORD_V3 = extern struct {
RecordLength: u32,
MajorVersion: u16,
MinorVersion: u16,
FileReferenceNumber: FILE_ID_128,
ParentFileReferenceNumber: FILE_ID_128,
Usn: i64,
TimeStamp: LARGE_INTEGER,
Reason: u32,
SourceInfo: u32,
SecurityId: u32,
FileAttributes: u32,
FileNameLength: u16,
FileNameOffset: u16,
FileName: [1]u16,
};
pub const USN_RECORD_COMMON_HEADER = extern struct {
RecordLength: u32,
MajorVersion: u16,
MinorVersion: u16,
};
pub const USN_RECORD_EXTENT = extern struct {
Offset: i64,
Length: i64,
};
pub const USN_RECORD_V4 = extern struct {
Header: USN_RECORD_COMMON_HEADER,
FileReferenceNumber: FILE_ID_128,
ParentFileReferenceNumber: FILE_ID_128,
Usn: i64,
Reason: u32,
SourceInfo: USN_SOURCE_INFO_ID,
RemainingExtents: u32,
NumberOfExtents: u16,
ExtentSize: u16,
Extents: [1]USN_RECORD_EXTENT,
};
pub const USN_RECORD_UNION = extern union {
Header: USN_RECORD_COMMON_HEADER,
V2: USN_RECORD_V2,
V3: USN_RECORD_V3,
V4: USN_RECORD_V4,
};
pub const USN_JOURNAL_DATA_V0 = extern struct {
UsnJournalID: u64,
FirstUsn: i64,
NextUsn: i64,
LowestValidUsn: i64,
MaxUsn: i64,
MaximumSize: u64,
AllocationDelta: u64,
};
pub const USN_JOURNAL_DATA_V1 = extern struct {
UsnJournalID: u64,
FirstUsn: i64,
NextUsn: i64,
LowestValidUsn: i64,
MaxUsn: i64,
MaximumSize: u64,
AllocationDelta: u64,
MinSupportedMajorVersion: u16,
MaxSupportedMajorVersion: u16,
};
pub const USN_JOURNAL_DATA_V2 = extern struct {
UsnJournalID: u64,
FirstUsn: i64,
NextUsn: i64,
LowestValidUsn: i64,
MaxUsn: i64,
MaximumSize: u64,
AllocationDelta: u64,
MinSupportedMajorVersion: u16,
MaxSupportedMajorVersion: u16,
Flags: u32,
RangeTrackChunkSize: u64,
RangeTrackFileSizeThreshold: i64,
};
pub const DELETE_USN_JOURNAL_DATA = extern struct {
UsnJournalID: u64,
DeleteFlags: USN_DELETE_FLAGS,
};
pub const MARK_HANDLE_INFO = extern struct {
Anonymous: extern union {
UsnSourceInfo: u32,
CopyNumber: u32,
},
VolumeHandle: ?HANDLE,
HandleInfo: u32,
};
pub const BULK_SECURITY_TEST_DATA = extern struct {
DesiredAccess: u32,
SecurityIds: [1]u32,
};
pub const FILE_PREFETCH = extern struct {
Type: u32,
Count: u32,
Prefetch: [1]u64,
};
pub const FILE_PREFETCH_EX = extern struct {
Type: u32,
Count: u32,
Context: ?*anyopaque,
Prefetch: [1]u64,
};
pub const FILESYSTEM_STATISTICS = extern struct {
FileSystemType: FILESYSTEM_STATISTICS_TYPE,
Version: u16,
SizeOfCompleteStructure: u32,
UserFileReads: u32,
UserFileReadBytes: u32,
UserDiskReads: u32,
UserFileWrites: u32,
UserFileWriteBytes: u32,
UserDiskWrites: u32,
MetaDataReads: u32,
MetaDataReadBytes: u32,
MetaDataDiskReads: u32,
MetaDataWrites: u32,
MetaDataWriteBytes: u32,
MetaDataDiskWrites: u32,
};
pub const FAT_STATISTICS = extern struct {
CreateHits: u32,
SuccessfulCreates: u32,
FailedCreates: u32,
NonCachedReads: u32,
NonCachedReadBytes: u32,
NonCachedWrites: u32,
NonCachedWriteBytes: u32,
NonCachedDiskReads: u32,
NonCachedDiskWrites: u32,
};
pub const EXFAT_STATISTICS = extern struct {
CreateHits: u32,
SuccessfulCreates: u32,
FailedCreates: u32,
NonCachedReads: u32,
NonCachedReadBytes: u32,
NonCachedWrites: u32,
NonCachedWriteBytes: u32,
NonCachedDiskReads: u32,
NonCachedDiskWrites: u32,
};
pub const NTFS_STATISTICS = extern struct {
LogFileFullExceptions: u32,
OtherExceptions: u32,
MftReads: u32,
MftReadBytes: u32,
MftWrites: u32,
MftWriteBytes: u32,
MftWritesUserLevel: extern struct {
Write: u16,
Create: u16,
SetInfo: u16,
Flush: u16,
},
MftWritesFlushForLogFileFull: u16,
MftWritesLazyWriter: u16,
MftWritesUserRequest: u16,
Mft2Writes: u32,
Mft2WriteBytes: u32,
Mft2WritesUserLevel: extern struct {
Write: u16,
Create: u16,
SetInfo: u16,
Flush: u16,
},
Mft2WritesFlushForLogFileFull: u16,
Mft2WritesLazyWriter: u16,
Mft2WritesUserRequest: u16,
RootIndexReads: u32,
RootIndexReadBytes: u32,
RootIndexWrites: u32,
RootIndexWriteBytes: u32,
BitmapReads: u32,
BitmapReadBytes: u32,
BitmapWrites: u32,
BitmapWriteBytes: u32,
BitmapWritesFlushForLogFileFull: u16,
BitmapWritesLazyWriter: u16,
BitmapWritesUserRequest: u16,
BitmapWritesUserLevel: extern struct {
Write: u16,
Create: u16,
SetInfo: u16,
},
MftBitmapReads: u32,
MftBitmapReadBytes: u32,
MftBitmapWrites: u32,
MftBitmapWriteBytes: u32,
MftBitmapWritesFlushForLogFileFull: u16,
MftBitmapWritesLazyWriter: u16,
MftBitmapWritesUserRequest: u16,
MftBitmapWritesUserLevel: extern struct {
Write: u16,
Create: u16,
SetInfo: u16,
Flush: u16,
},
UserIndexReads: u32,
UserIndexReadBytes: u32,
UserIndexWrites: u32,
UserIndexWriteBytes: u32,
LogFileReads: u32,
LogFileReadBytes: u32,
LogFileWrites: u32,
LogFileWriteBytes: u32,
Allocate: extern struct {
Calls: u32,
Clusters: u32,
Hints: u32,
RunsReturned: u32,
HintsHonored: u32,
HintsClusters: u32,
Cache: u32,
CacheClusters: u32,
CacheMiss: u32,
CacheMissClusters: u32,
},
DiskResourcesExhausted: u32,
};
pub const FILESYSTEM_STATISTICS_EX = extern struct {
FileSystemType: FILESYSTEM_STATISTICS_TYPE,
Version: u16,
SizeOfCompleteStructure: u32,
UserFileReads: u64,
UserFileReadBytes: u64,
UserDiskReads: u64,
UserFileWrites: u64,
UserFileWriteBytes: u64,
UserDiskWrites: u64,
MetaDataReads: u64,
MetaDataReadBytes: u64,
MetaDataDiskReads: u64,
MetaDataWrites: u64,
MetaDataWriteBytes: u64,
MetaDataDiskWrites: u64,
};
pub const NTFS_STATISTICS_EX = extern struct {
LogFileFullExceptions: u32,
OtherExceptions: u32,
MftReads: u64,
MftReadBytes: u64,
MftWrites: u64,
MftWriteBytes: u64,
MftWritesUserLevel: extern struct {
Write: u32,
Create: u32,
SetInfo: u32,
Flush: u32,
},
MftWritesFlushForLogFileFull: u32,
MftWritesLazyWriter: u32,
MftWritesUserRequest: u32,
Mft2Writes: u64,
Mft2WriteBytes: u64,
Mft2WritesUserLevel: extern struct {
Write: u32,
Create: u32,
SetInfo: u32,
Flush: u32,
},
Mft2WritesFlushForLogFileFull: u32,
Mft2WritesLazyWriter: u32,
Mft2WritesUserRequest: u32,
RootIndexReads: u64,
RootIndexReadBytes: u64,
RootIndexWrites: u64,
RootIndexWriteBytes: u64,
BitmapReads: u64,
BitmapReadBytes: u64,
BitmapWrites: u64,
BitmapWriteBytes: u64,
BitmapWritesFlushForLogFileFull: u32,
BitmapWritesLazyWriter: u32,
BitmapWritesUserRequest: u32,
BitmapWritesUserLevel: extern struct {
Write: u32,
Create: u32,
SetInfo: u32,
Flush: u32,
},
MftBitmapReads: u64,
MftBitmapReadBytes: u64,
MftBitmapWrites: u64,
MftBitmapWriteBytes: u64,
MftBitmapWritesFlushForLogFileFull: u32,
MftBitmapWritesLazyWriter: u32,
MftBitmapWritesUserRequest: u32,
MftBitmapWritesUserLevel: extern struct {
Write: u32,
Create: u32,
SetInfo: u32,
Flush: u32,
},
UserIndexReads: u64,
UserIndexReadBytes: u64,
UserIndexWrites: u64,
UserIndexWriteBytes: u64,
LogFileReads: u64,
LogFileReadBytes: u64,
LogFileWrites: u64,
LogFileWriteBytes: u64,
Allocate: extern struct {
Calls: u32,
RunsReturned: u32,
Hints: u32,
HintsHonored: u32,
Cache: u32,
CacheMiss: u32,
Clusters: u64,
HintsClusters: u64,
CacheClusters: u64,
CacheMissClusters: u64,
},
DiskResourcesExhausted: u32,
VolumeTrimCount: u64,
VolumeTrimTime: u64,
VolumeTrimByteCount: u64,
FileLevelTrimCount: u64,
FileLevelTrimTime: u64,
FileLevelTrimByteCount: u64,
VolumeTrimSkippedCount: u64,
VolumeTrimSkippedByteCount: u64,
NtfsFillStatInfoFromMftRecordCalledCount: u64,
NtfsFillStatInfoFromMftRecordBailedBecauseOfAttributeListCount: u64,
NtfsFillStatInfoFromMftRecordBailedBecauseOfNonResReparsePointCount: u64,
};
pub const FILE_OBJECTID_BUFFER = extern struct {
ObjectId: [16]u8,
Anonymous: extern union {
Anonymous: extern struct {
BirthVolumeId: [16]u8,
BirthObjectId: [16]u8,
DomainId: [16]u8,
},
ExtendedInfo: [48]u8,
},
};
pub const FILE_SET_SPARSE_BUFFER = extern struct {
SetSparse: BOOLEAN,
};
pub const FILE_ZERO_DATA_INFORMATION = extern struct {
FileOffset: LARGE_INTEGER,
BeyondFinalZero: LARGE_INTEGER,
};
pub const FILE_ZERO_DATA_INFORMATION_EX = extern struct {
FileOffset: LARGE_INTEGER,
BeyondFinalZero: LARGE_INTEGER,
Flags: u32,
};
pub const FILE_ALLOCATED_RANGE_BUFFER = extern struct {
FileOffset: LARGE_INTEGER,
Length: LARGE_INTEGER,
};
pub const ENCRYPTION_BUFFER = extern struct {
EncryptionOperation: u32,
Private: [1]u8,
};
pub const DECRYPTION_STATUS_BUFFER = extern struct {
NoEncryptedStreams: BOOLEAN,
};
pub const REQUEST_RAW_ENCRYPTED_DATA = extern struct {
FileOffset: i64,
Length: u32,
};
pub const ENCRYPTED_DATA_INFO = extern struct {
StartingFileOffset: u64,
OutputBufferOffset: u32,
BytesWithinFileSize: u32,
BytesWithinValidDataLength: u32,
CompressionFormat: u16,
DataUnitShift: u8,
ChunkShift: u8,
ClusterShift: u8,
EncryptionFormat: u8,
NumberOfDataBlocks: u16,
DataBlockSize: [1]u32,
};
pub const EXTENDED_ENCRYPTED_DATA_INFO = extern struct {
ExtendedCode: u32,
Length: u32,
Flags: u32,
Reserved: u32,
};
pub const PLEX_READ_DATA_REQUEST = extern struct {
ByteOffset: LARGE_INTEGER,
ByteLength: u32,
PlexNumber: u32,
};
pub const SI_COPYFILE = extern struct {
SourceFileNameLength: u32,
DestinationFileNameLength: u32,
Flags: u32,
FileNameBuffer: [1]u16,
};
pub const FILE_MAKE_COMPATIBLE_BUFFER = extern struct {
CloseDisc: BOOLEAN,
};
pub const FILE_SET_DEFECT_MGMT_BUFFER = extern struct {
Disable: BOOLEAN,
};
pub const FILE_QUERY_SPARING_BUFFER = extern struct {
SparingUnitBytes: u32,
SoftwareSparing: BOOLEAN,
TotalSpareBlocks: u32,
FreeSpareBlocks: u32,
};
pub const FILE_QUERY_ON_DISK_VOL_INFO_BUFFER = extern struct {
DirectoryCount: LARGE_INTEGER,
FileCount: LARGE_INTEGER,
FsFormatMajVersion: u16,
FsFormatMinVersion: u16,
FsFormatName: [12]u16,
FormatTime: LARGE_INTEGER,
LastUpdateTime: LARGE_INTEGER,
CopyrightInfo: [34]u16,
AbstractInfo: [34]u16,
FormattingImplementationInfo: [34]u16,
LastModifyingImplementationInfo: [34]u16,
};
pub const FILE_INITIATE_REPAIR_OUTPUT_BUFFER = extern struct {
Hint1: u64,
Hint2: u64,
Clsn: u64,
Status: u32,
};
pub const SHRINK_VOLUME_REQUEST_TYPES = enum(i32) {
Prepare = 1,
Commit = 2,
Abort = 3,
};
pub const ShrinkPrepare = SHRINK_VOLUME_REQUEST_TYPES.Prepare;
pub const ShrinkCommit = SHRINK_VOLUME_REQUEST_TYPES.Commit;
pub const ShrinkAbort = SHRINK_VOLUME_REQUEST_TYPES.Abort;
pub const SHRINK_VOLUME_INFORMATION = extern struct {
ShrinkRequestType: SHRINK_VOLUME_REQUEST_TYPES,
Flags: u64,
NewNumberOfSectors: i64,
};
pub const TXFS_MODIFY_RM = extern struct {
Flags: TXFS_RMF_LAGS,
LogContainerCountMax: u32,
LogContainerCountMin: u32,
LogContainerCount: u32,
LogGrowthIncrement: u32,
LogAutoShrinkPercentage: u32,
Reserved: u64,
LoggingMode: u16,
};
pub const TXFS_QUERY_RM_INFORMATION = extern struct {
BytesRequired: u32,
TailLsn: u64,
CurrentLsn: u64,
ArchiveTailLsn: u64,
LogContainerSize: u64,
HighestVirtualClock: LARGE_INTEGER,
LogContainerCount: u32,
LogContainerCountMax: u32,
LogContainerCountMin: u32,
LogGrowthIncrement: u32,
LogAutoShrinkPercentage: u32,
Flags: TXFS_RMF_LAGS,
LoggingMode: u16,
Reserved: u16,
RmState: u32,
LogCapacity: u64,
LogFree: u64,
TopsSize: u64,
TopsUsed: u64,
TransactionCount: u64,
OnePCCount: u64,
TwoPCCount: u64,
NumberLogFileFull: u64,
OldestTransactionAge: u64,
RMName: Guid,
TmLogPathOffset: u32,
};
pub const TXFS_ROLLFORWARD_REDO_INFORMATION = extern struct {
LastVirtualClock: LARGE_INTEGER,
LastRedoLsn: u64,
HighestRecoveryLsn: u64,
Flags: u32,
};
pub const TXFS_START_RM_INFORMATION = extern struct {
Flags: u32,
LogContainerSize: u64,
LogContainerCountMin: u32,
LogContainerCountMax: u32,
LogGrowthIncrement: u32,
LogAutoShrinkPercentage: u32,
TmLogPathOffset: u32,
TmLogPathLength: u16,
LoggingMode: u16,
LogPathLength: u16,
Reserved: u16,
LogPath: [1]u16,
};
pub const TXFS_GET_METADATA_INFO_OUT = extern struct {
TxfFileId: extern struct {
LowPart: i64,
HighPart: i64,
},
LockingTransaction: Guid,
LastLsn: u64,
TransactionState: u32,
};
pub const TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY = extern struct {
Offset: u64,
NameFlags: u32,
FileId: i64,
Reserved1: u32,
Reserved2: u32,
Reserved3: i64,
FileName: [1]u16,
};
pub const TXFS_LIST_TRANSACTION_LOCKED_FILES = extern struct {
KtmTransaction: Guid,
NumberOfFiles: u64,
BufferSizeRequired: u64,
Offset: u64,
};
pub const TXFS_LIST_TRANSACTIONS_ENTRY = extern struct {
TransactionId: Guid,
TransactionState: u32,
Reserved1: u32,
Reserved2: u32,
Reserved3: i64,
};
pub const TXFS_LIST_TRANSACTIONS = extern struct {
NumberOfTransactions: u64,
BufferSizeRequired: u64,
};
pub const TXFS_READ_BACKUP_INFORMATION_OUT = extern struct {
Anonymous: extern union {
BufferLength: u32,
Buffer: [1]u8,
},
};
pub const TXFS_WRITE_BACKUP_INFORMATION = extern struct {
Buffer: [1]u8,
};
pub const TXFS_GET_TRANSACTED_VERSION = extern struct {
ThisBaseVersion: u32,
LatestVersion: u32,
ThisMiniVersion: u16,
FirstMiniVersion: u16,
LatestMiniVersion: u16,
};
pub const TXFS_SAVEPOINT_INFORMATION = extern struct {
KtmTransaction: ?HANDLE,
ActionCode: u32,
SavepointId: u32,
};
pub const TXFS_CREATE_MINIVERSION_INFO = extern struct {
StructureVersion: u16,
StructureLength: u16,
BaseVersion: u32,
MiniVersion: u16,
};
pub const TXFS_TRANSACTION_ACTIVE_INFO = extern struct {
TransactionsActiveAtSnapshot: BOOLEAN,
};
pub const BOOT_AREA_INFO = extern struct {
BootSectorCount: u32,
BootSectors: [2]extern struct {
Offset: LARGE_INTEGER,
},
};
pub const RETRIEVAL_POINTER_BASE = extern struct {
FileAreaOffset: LARGE_INTEGER,
};
pub const FILE_FS_PERSISTENT_VOLUME_INFORMATION = extern struct {
VolumeFlags: u32,
FlagMask: u32,
Version: u32,
Reserved: u32,
};
pub const FILE_SYSTEM_RECOGNITION_INFORMATION = extern struct {
FileSystem: [9]CHAR,
};
pub const REQUEST_OPLOCK_INPUT_BUFFER = extern struct {
StructureVersion: u16,
StructureLength: u16,
RequestedOplockLevel: u32,
Flags: u32,
};
pub const REQUEST_OPLOCK_OUTPUT_BUFFER = extern struct {
StructureVersion: u16,
StructureLength: u16,
OriginalOplockLevel: u32,
NewOplockLevel: u32,
Flags: u32,
AccessMode: u32,
ShareMode: u16,
};
pub const STORAGE_QUERY_DEPENDENT_VOLUME_REQUEST = extern struct {
RequestLevel: u32,
RequestFlags: u32,
};
pub const STORAGE_QUERY_DEPENDENT_VOLUME_LEV1_ENTRY = extern struct {
EntryLength: u32,
DependencyTypeFlags: u32,
ProviderSpecificFlags: u32,
VirtualStorageType: VIRTUAL_STORAGE_TYPE,
};
pub const STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY = extern struct {
EntryLength: u32,
DependencyTypeFlags: u32,
ProviderSpecificFlags: u32,
VirtualStorageType: VIRTUAL_STORAGE_TYPE,
AncestorLevel: u32,
HostVolumeNameOffset: u32,
HostVolumeNameSize: u32,
DependentVolumeNameOffset: u32,
DependentVolumeNameSize: u32,
RelativePathOffset: u32,
RelativePathSize: u32,
DependentDeviceNameOffset: u32,
DependentDeviceNameSize: u32,
};
pub const STORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE = extern struct {
ResponseLevel: u32,
NumberEntries: u32,
Anonymous: extern union {
Lev1Depends: [1]STORAGE_QUERY_DEPENDENT_VOLUME_LEV1_ENTRY,
Lev2Depends: [1]STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY,
},
};
pub const SD_CHANGE_MACHINE_SID_INPUT = extern struct {
CurrentMachineSIDOffset: u16,
CurrentMachineSIDLength: u16,
NewMachineSIDOffset: u16,
NewMachineSIDLength: u16,
};
pub const SD_CHANGE_MACHINE_SID_OUTPUT = extern struct {
NumSDChangedSuccess: u64,
NumSDChangedFail: u64,
NumSDUnused: u64,
NumSDTotal: u64,
NumMftSDChangedSuccess: u64,
NumMftSDChangedFail: u64,
NumMftSDTotal: u64,
};
pub const SD_QUERY_STATS_INPUT = extern struct {
Reserved: u32,
};
pub const SD_QUERY_STATS_OUTPUT = extern struct {
SdsStreamSize: u64,
SdsAllocationSize: u64,
SiiStreamSize: u64,
SiiAllocationSize: u64,
SdhStreamSize: u64,
SdhAllocationSize: u64,
NumSDTotal: u64,
NumSDUnused: u64,
};
pub const SD_ENUM_SDS_INPUT = extern struct {
StartingOffset: u64,
MaxSDEntriesToReturn: u64,
};
pub const SD_ENUM_SDS_ENTRY = extern struct {
Hash: u32,
SecurityId: u32,
Offset: u64,
Length: u32,
Descriptor: [1]u8,
};
pub const SD_ENUM_SDS_OUTPUT = extern struct {
NextOffset: u64,
NumSDEntriesReturned: u64,
NumSDBytesReturned: u64,
SDEntry: [1]SD_ENUM_SDS_ENTRY,
};
pub const SD_GLOBAL_CHANGE_INPUT = extern struct {
Flags: u32,
ChangeType: u32,
Anonymous: extern union {
SdChange: SD_CHANGE_MACHINE_SID_INPUT,
SdQueryStats: SD_QUERY_STATS_INPUT,
SdEnumSds: SD_ENUM_SDS_INPUT,
},
};
pub const SD_GLOBAL_CHANGE_OUTPUT = extern struct {
Flags: u32,
ChangeType: u32,
Anonymous: extern union {
SdChange: SD_CHANGE_MACHINE_SID_OUTPUT,
SdQueryStats: SD_QUERY_STATS_OUTPUT,
SdEnumSds: SD_ENUM_SDS_OUTPUT,
},
};
pub const LOOKUP_STREAM_FROM_CLUSTER_INPUT = extern struct {
Flags: u32,
NumberOfClusters: u32,
Cluster: [1]LARGE_INTEGER,
};
pub const LOOKUP_STREAM_FROM_CLUSTER_OUTPUT = extern struct {
Offset: u32,
NumberOfMatches: u32,
BufferSizeRequired: u32,
};
pub const LOOKUP_STREAM_FROM_CLUSTER_ENTRY = extern struct {
OffsetToNext: u32,
Flags: u32,
Reserved: LARGE_INTEGER,
Cluster: LARGE_INTEGER,
FileName: [1]u16,
};
pub const FILE_TYPE_NOTIFICATION_INPUT = extern struct {
Flags: u32,
NumFileTypeIDs: u32,
FileTypeID: [1]Guid,
};
pub const CSV_MGMT_LOCK = extern struct {
Flags: u32,
};
pub const CSV_NAMESPACE_INFO = extern struct {
Version: u32,
DeviceNumber: u32,
StartingOffset: LARGE_INTEGER,
SectorSize: u32,
};
pub const CSV_CONTROL_OP = enum(i32) {
StartRedirectFile = 2,
StopRedirectFile = 3,
QueryRedirectState = 4,
QueryFileRevision = 6,
QueryMdsPath = 8,
QueryFileRevisionFileId128 = 9,
QueryVolumeRedirectState = 10,
EnableUSNRangeModificationTracking = 13,
MarkHandleLocalVolumeMount = 14,
UnmarkHandleLocalVolumeMount = 15,
GetCsvFsMdsPathV2 = 18,
DisableCaching = 19,
EnableCaching = 20,
StartForceDFO = 21,
StopForceDFO = 22,
QueryMdsPathNoPause = 23,
SetVolumeId = 24,
QueryVolumeId = 25,
};
pub const CsvControlStartRedirectFile = CSV_CONTROL_OP.StartRedirectFile;
pub const CsvControlStopRedirectFile = CSV_CONTROL_OP.StopRedirectFile;
pub const CsvControlQueryRedirectState = CSV_CONTROL_OP.QueryRedirectState;
pub const CsvControlQueryFileRevision = CSV_CONTROL_OP.QueryFileRevision;
pub const CsvControlQueryMdsPath = CSV_CONTROL_OP.QueryMdsPath;
pub const CsvControlQueryFileRevisionFileId128 = CSV_CONTROL_OP.QueryFileRevisionFileId128;
pub const CsvControlQueryVolumeRedirectState = CSV_CONTROL_OP.QueryVolumeRedirectState;
pub const CsvControlEnableUSNRangeModificationTracking = CSV_CONTROL_OP.EnableUSNRangeModificationTracking;
pub const CsvControlMarkHandleLocalVolumeMount = CSV_CONTROL_OP.MarkHandleLocalVolumeMount;
pub const CsvControlUnmarkHandleLocalVolumeMount = CSV_CONTROL_OP.UnmarkHandleLocalVolumeMount;
pub const CsvControlGetCsvFsMdsPathV2 = CSV_CONTROL_OP.GetCsvFsMdsPathV2;
pub const CsvControlDisableCaching = CSV_CONTROL_OP.DisableCaching;
pub const CsvControlEnableCaching = CSV_CONTROL_OP.EnableCaching;
pub const CsvControlStartForceDFO = CSV_CONTROL_OP.StartForceDFO;
pub const CsvControlStopForceDFO = CSV_CONTROL_OP.StopForceDFO;
pub const CsvControlQueryMdsPathNoPause = CSV_CONTROL_OP.QueryMdsPathNoPause;
pub const CsvControlSetVolumeId = CSV_CONTROL_OP.SetVolumeId;
pub const CsvControlQueryVolumeId = CSV_CONTROL_OP.QueryVolumeId;
pub const CSV_CONTROL_PARAM = extern struct {
Operation: CSV_CONTROL_OP,
Unused: i64,
};
pub const CSV_QUERY_REDIRECT_STATE = extern struct {
MdsNodeId: u32,
DsNodeId: u32,
FileRedirected: BOOLEAN,
};
pub const CSV_QUERY_FILE_REVISION = extern struct {
FileId: i64,
FileRevision: [3]i64,
};
pub const CSV_QUERY_FILE_REVISION_FILE_ID_128 = extern struct {
FileId: FILE_ID_128,
FileRevision: [3]i64,
};
pub const CSV_QUERY_MDS_PATH = extern struct {
MdsNodeId: u32,
DsNodeId: u32,
PathLength: u32,
Path: [1]u16,
};
pub const CSVFS_DISK_CONNECTIVITY = enum(i32) {
None = 0,
MdsNodeOnly = 1,
SubsetOfNodes = 2,
AllNodes = 3,
};
pub const CsvFsDiskConnectivityNone = CSVFS_DISK_CONNECTIVITY.None;
pub const CsvFsDiskConnectivityMdsNodeOnly = CSVFS_DISK_CONNECTIVITY.MdsNodeOnly;
pub const CsvFsDiskConnectivitySubsetOfNodes = CSVFS_DISK_CONNECTIVITY.SubsetOfNodes;
pub const CsvFsDiskConnectivityAllNodes = CSVFS_DISK_CONNECTIVITY.AllNodes;
pub const CSV_QUERY_VOLUME_REDIRECT_STATE = extern struct {
MdsNodeId: u32,
DsNodeId: u32,
IsDiskConnected: BOOLEAN,
ClusterEnableDirectIo: BOOLEAN,
DiskConnectivity: CSVFS_DISK_CONNECTIVITY,
};
pub const CSV_QUERY_MDS_PATH_V2 = extern struct {
Version: i64,
RequiredSize: u32,
MdsNodeId: u32,
DsNodeId: u32,
Flags: u32,
DiskConnectivity: CSVFS_DISK_CONNECTIVITY,
VolumeId: Guid,
IpAddressOffset: u32,
IpAddressLength: u32,
PathOffset: u32,
PathLength: u32,
};
pub const CSV_SET_VOLUME_ID = extern struct {
VolumeId: Guid,
};
pub const CSV_QUERY_VOLUME_ID = extern struct {
VolumeId: Guid,
};
pub const CSV_QUERY_VETO_FILE_DIRECT_IO_OUTPUT = extern struct {
VetoedFromAltitudeIntegral: u64,
VetoedFromAltitudeDecimal: u64,
Reason: [256]u16,
};
pub const STORAGE_RESERVE_ID = enum(i32) {
None = 0,
Hard = 1,
Soft = 2,
UpdateScratch = 3,
Max = 4,
};
pub const StorageReserveIdNone = STORAGE_RESERVE_ID.None;
pub const StorageReserveIdHard = STORAGE_RESERVE_ID.Hard;
pub const StorageReserveIdSoft = STORAGE_RESERVE_ID.Soft;
pub const StorageReserveIdUpdateScratch = STORAGE_RESERVE_ID.UpdateScratch;
pub const StorageReserveIdMax = STORAGE_RESERVE_ID.Max;
pub const CSV_IS_OWNED_BY_CSVFS = extern struct {
OwnedByCSVFS: BOOLEAN,
};
pub const FILE_LEVEL_TRIM_RANGE = extern struct {
Offset: u64,
Length: u64,
};
pub const FILE_LEVEL_TRIM = extern struct {
Key: u32,
NumRanges: u32,
Ranges: [1]FILE_LEVEL_TRIM_RANGE,
};
pub const FILE_LEVEL_TRIM_OUTPUT = extern struct {
NumRangesProcessed: u32,
};
pub const QUERY_FILE_LAYOUT_FILTER_TYPE = enum(i32) {
FILTER_TYPE_NONE = 0,
FILTER_TYPE_CLUSTERS = 1,
FILTER_TYPE_FILEID = 2,
FILTER_TYPE_STORAGE_RESERVE_ID = 3,
NUM_FILTER_TYPES = 4,
};
pub const QUERY_FILE_LAYOUT_FILTER_TYPE_NONE = QUERY_FILE_LAYOUT_FILTER_TYPE.FILTER_TYPE_NONE;
pub const QUERY_FILE_LAYOUT_FILTER_TYPE_CLUSTERS = QUERY_FILE_LAYOUT_FILTER_TYPE.FILTER_TYPE_CLUSTERS;
pub const QUERY_FILE_LAYOUT_FILTER_TYPE_FILEID = QUERY_FILE_LAYOUT_FILTER_TYPE.FILTER_TYPE_FILEID;
pub const QUERY_FILE_LAYOUT_FILTER_TYPE_STORAGE_RESERVE_ID = QUERY_FILE_LAYOUT_FILTER_TYPE.FILTER_TYPE_STORAGE_RESERVE_ID;
pub const QUERY_FILE_LAYOUT_NUM_FILTER_TYPES = QUERY_FILE_LAYOUT_FILTER_TYPE.NUM_FILTER_TYPES;
pub const CLUSTER_RANGE = extern struct {
StartingCluster: LARGE_INTEGER,
ClusterCount: LARGE_INTEGER,
};
pub const FILE_REFERENCE_RANGE = extern struct {
StartingFileReferenceNumber: u64,
EndingFileReferenceNumber: u64,
};
pub const QUERY_FILE_LAYOUT_INPUT = extern struct {
Anonymous: extern union {
FilterEntryCount: u32,
NumberOfPairs: u32,
},
Flags: u32,
FilterType: QUERY_FILE_LAYOUT_FILTER_TYPE,
Reserved: u32,
Filter: extern union {
ClusterRanges: [1]CLUSTER_RANGE,
FileReferenceRanges: [1]FILE_REFERENCE_RANGE,
StorageReserveIds: [1]STORAGE_RESERVE_ID,
},
};
pub const QUERY_FILE_LAYOUT_OUTPUT = extern struct {
FileEntryCount: u32,
FirstFileOffset: u32,
Flags: u32,
Reserved: u32,
};
pub const FILE_LAYOUT_ENTRY = extern struct {
Version: u32,
NextFileOffset: u32,
Flags: u32,
FileAttributes: u32,
FileReferenceNumber: u64,
FirstNameOffset: u32,
FirstStreamOffset: u32,
ExtraInfoOffset: u32,
ExtraInfoLength: u32,
};
pub const FILE_LAYOUT_NAME_ENTRY = extern struct {
NextNameOffset: u32,
Flags: u32,
ParentFileReferenceNumber: u64,
FileNameLength: u32,
Reserved: u32,
FileName: [1]u16,
};
pub const FILE_LAYOUT_INFO_ENTRY = extern struct {
BasicInformation: extern struct {
CreationTime: LARGE_INTEGER,
LastAccessTime: LARGE_INTEGER,
LastWriteTime: LARGE_INTEGER,
ChangeTime: LARGE_INTEGER,
FileAttributes: u32,
},
OwnerId: u32,
SecurityId: u32,
Usn: i64,
StorageReserveId: STORAGE_RESERVE_ID,
};
pub const STREAM_LAYOUT_ENTRY = extern struct {
Version: u32,
NextStreamOffset: u32,
Flags: u32,
ExtentInformationOffset: u32,
AllocationSize: LARGE_INTEGER,
EndOfFile: LARGE_INTEGER,
StreamInformationOffset: u32,
AttributeTypeCode: u32,
AttributeFlags: u32,
StreamIdentifierLength: u32,
StreamIdentifier: [1]u16,
};
pub const STREAM_EXTENT_ENTRY = extern struct {
Flags: u32,
ExtentInformation: extern union {
RetrievalPointers: RETRIEVAL_POINTERS_BUFFER,
},
};
pub const FSCTL_GET_INTEGRITY_INFORMATION_BUFFER = extern struct {
ChecksumAlgorithm: u16,
Reserved: u16,
Flags: u32,
ChecksumChunkSizeInBytes: u32,
ClusterSizeInBytes: u32,
};
pub const FSCTL_SET_INTEGRITY_INFORMATION_BUFFER = extern struct {
ChecksumAlgorithm: u16,
Reserved: u16,
Flags: u32,
};
pub const FSCTL_SET_INTEGRITY_INFORMATION_BUFFER_EX = extern struct {
EnableIntegrity: u8,
KeepIntegrityStateUnchanged: u8,
Reserved: u16,
Flags: u32,
Version: u8,
Reserved2: [7]u8,
};
pub const FSCTL_OFFLOAD_READ_INPUT = extern struct {
Size: u32,
Flags: u32,
TokenTimeToLive: u32,
Reserved: u32,
FileOffset: u64,
CopyLength: u64,
};
pub const FSCTL_OFFLOAD_READ_OUTPUT = extern struct {
Size: u32,
Flags: u32,
TransferLength: u64,
Token: [512]u8,
};
pub const FSCTL_OFFLOAD_WRITE_INPUT = extern struct {
Size: u32,
Flags: u32,
FileOffset: u64,
CopyLength: u64,
TransferOffset: u64,
Token: [512]u8,
};
pub const FSCTL_OFFLOAD_WRITE_OUTPUT = extern struct {
Size: u32,
Flags: u32,
LengthWritten: u64,
};
pub const SET_PURGE_FAILURE_MODE_INPUT = extern struct {
Flags: u32,
};
pub const REPAIR_COPIES_INPUT = extern struct {
Size: u32,
Flags: u32,
FileOffset: LARGE_INTEGER,
Length: u32,
SourceCopy: u32,
NumberOfRepairCopies: u32,
RepairCopies: [1]u32,
};
pub const REPAIR_COPIES_OUTPUT = extern struct {
Size: u32,
Status: u32,
ResumeFileOffset: LARGE_INTEGER,
};
pub const FILE_REGION_INFO = extern struct {
FileOffset: i64,
Length: i64,
Usage: u32,
Reserved: u32,
};
pub const FILE_REGION_OUTPUT = extern struct {
Flags: u32,
TotalRegionEntryCount: u32,
RegionEntryCount: u32,
Reserved: u32,
Region: [1]FILE_REGION_INFO,
};
pub const FILE_REGION_INPUT = extern struct {
FileOffset: i64,
Length: i64,
DesiredUsage: u32,
};
pub const WRITE_USN_REASON_INPUT = extern struct {
Flags: u32,
UsnReasonToWrite: u32,
};
pub const FILE_STORAGE_TIER_MEDIA_TYPE = enum(i32) {
Unspecified = 0,
Disk = 1,
Ssd = 2,
Scm = 4,
Max = 5,
};
pub const FileStorageTierMediaTypeUnspecified = FILE_STORAGE_TIER_MEDIA_TYPE.Unspecified;
pub const FileStorageTierMediaTypeDisk = FILE_STORAGE_TIER_MEDIA_TYPE.Disk;
pub const FileStorageTierMediaTypeSsd = FILE_STORAGE_TIER_MEDIA_TYPE.Ssd;
pub const FileStorageTierMediaTypeScm = FILE_STORAGE_TIER_MEDIA_TYPE.Scm;
pub const FileStorageTierMediaTypeMax = FILE_STORAGE_TIER_MEDIA_TYPE.Max;
pub const FILE_STORAGE_TIER_CLASS = enum(i32) {
Unspecified = 0,
Capacity = 1,
Performance = 2,
Max = 3,
};
pub const FileStorageTierClassUnspecified = FILE_STORAGE_TIER_CLASS.Unspecified;
pub const FileStorageTierClassCapacity = FILE_STORAGE_TIER_CLASS.Capacity;
pub const FileStorageTierClassPerformance = FILE_STORAGE_TIER_CLASS.Performance;
pub const FileStorageTierClassMax = FILE_STORAGE_TIER_CLASS.Max;
pub const FILE_STORAGE_TIER = extern struct {
Id: Guid,
Name: [256]u16,
Description: [256]u16,
Flags: FILE_STORAGE_TIER_FLAGS,
ProvisionedCapacity: u64,
MediaType: FILE_STORAGE_TIER_MEDIA_TYPE,
Class: FILE_STORAGE_TIER_CLASS,
};
pub const FSCTL_QUERY_STORAGE_CLASSES_OUTPUT = extern struct {
Version: u32,
Size: u32,
Flags: FILE_STORAGE_TIER_FLAGS,
TotalNumberOfTiers: u32,
NumberOfTiersReturned: u32,
Tiers: [1]FILE_STORAGE_TIER,
};
pub const STREAM_INFORMATION_ENTRY = extern struct {
pub const _StreamInformation = extern union {
pub const _Reparse = extern struct {
Length: u16,
Flags: u16,
ReparseDataSize: u32,
ReparseDataOffset: u32,
};
pub const _DesiredStorageClass = extern struct {
Class: FILE_STORAGE_TIER_CLASS,
Flags: u32,
};
pub const _Ea = extern struct {
Length: u16,
Flags: u16,
EaSize: u32,
EaInformationOffset: u32,
};
pub const _DataStream = extern struct {
Length: u16,
Flags: u16,
Reserved: u32,
Vdl: u64,
};
DesiredStorageClass: _DesiredStorageClass,
DataStream: _DataStream,
Reparse: _Reparse,
Ea: _Ea,
};
Version: u32,
Flags: u32,
StreamInformation: _StreamInformation,
};
pub const FSCTL_QUERY_REGION_INFO_INPUT = extern struct {
Version: u32,
Size: u32,
Flags: u32,
NumberOfTierIds: u32,
TierIds: [1]Guid,
};
pub const FILE_STORAGE_TIER_REGION = extern struct {
TierId: Guid,
Offset: u64,
Length: u64,
};
pub const FSCTL_QUERY_REGION_INFO_OUTPUT = extern struct {
Version: u32,
Size: u32,
Flags: u32,
Reserved: u32,
Alignment: u64,
TotalNumberOfRegions: u32,
NumberOfRegionsReturned: u32,
Regions: [1]FILE_STORAGE_TIER_REGION,
};
pub const FILE_DESIRED_STORAGE_CLASS_INFORMATION = extern struct {
Class: FILE_STORAGE_TIER_CLASS,
Flags: u32,
};
pub const DUPLICATE_EXTENTS_DATA = extern struct {
FileHandle: ?HANDLE,
SourceFileOffset: LARGE_INTEGER,
TargetFileOffset: LARGE_INTEGER,
ByteCount: LARGE_INTEGER,
};
pub const DUPLICATE_EXTENTS_DATA_EX = extern struct {
Size: usize,
FileHandle: ?HANDLE,
SourceFileOffset: LARGE_INTEGER,
TargetFileOffset: LARGE_INTEGER,
ByteCount: LARGE_INTEGER,
Flags: u32,
};
pub const DUPLICATE_EXTENTS_STATE = enum(i32) {
Inactive = 0,
Source = 1,
Target = 2,
};
pub const FileSnapStateInactive = DUPLICATE_EXTENTS_STATE.Inactive;
pub const FileSnapStateSource = DUPLICATE_EXTENTS_STATE.Source;
pub const FileSnapStateTarget = DUPLICATE_EXTENTS_STATE.Target;
pub const ASYNC_DUPLICATE_EXTENTS_STATUS = extern struct {
Version: u32,
State: DUPLICATE_EXTENTS_STATE,
SourceFileOffset: u64,
TargetFileOffset: u64,
ByteCount: u64,
BytesDuplicated: u64,
};
pub const REFS_SMR_VOLUME_GC_STATE = enum(i32) {
Inactive = 0,
Paused = 1,
Active = 2,
ActiveFullSpeed = 3,
};
pub const SmrGcStateInactive = REFS_SMR_VOLUME_GC_STATE.Inactive;
pub const SmrGcStatePaused = REFS_SMR_VOLUME_GC_STATE.Paused;
pub const SmrGcStateActive = REFS_SMR_VOLUME_GC_STATE.Active;
pub const SmrGcStateActiveFullSpeed = REFS_SMR_VOLUME_GC_STATE.ActiveFullSpeed;
pub const REFS_SMR_VOLUME_INFO_OUTPUT = extern struct {
Version: u32,
Flags: u32,
SizeOfRandomlyWritableTier: LARGE_INTEGER,
FreeSpaceInRandomlyWritableTier: LARGE_INTEGER,
SizeofSMRTier: LARGE_INTEGER,
FreeSpaceInSMRTier: LARGE_INTEGER,
UsableFreeSpaceInSMRTier: LARGE_INTEGER,
VolumeGcState: REFS_SMR_VOLUME_GC_STATE,
VolumeGcLastStatus: u32,
CurrentGcBandFillPercentage: u32,
Unused: [6]u64,
};
pub const REFS_SMR_VOLUME_GC_ACTION = enum(i32) {
Start = 1,
StartFullSpeed = 2,
Pause = 3,
Stop = 4,
};
pub const SmrGcActionStart = REFS_SMR_VOLUME_GC_ACTION.Start;
pub const SmrGcActionStartFullSpeed = REFS_SMR_VOLUME_GC_ACTION.StartFullSpeed;
pub const SmrGcActionPause = REFS_SMR_VOLUME_GC_ACTION.Pause;
pub const SmrGcActionStop = REFS_SMR_VOLUME_GC_ACTION.Stop;
pub const REFS_SMR_VOLUME_GC_METHOD = enum(i32) {
Compaction = 1,
Compression = 2,
Rotation = 3,
};
pub const SmrGcMethodCompaction = REFS_SMR_VOLUME_GC_METHOD.Compaction;
pub const SmrGcMethodCompression = REFS_SMR_VOLUME_GC_METHOD.Compression;
pub const SmrGcMethodRotation = REFS_SMR_VOLUME_GC_METHOD.Rotation;
pub const REFS_SMR_VOLUME_GC_PARAMETERS = extern struct {
Version: u32,
Flags: u32,
Action: REFS_SMR_VOLUME_GC_ACTION,
Method: REFS_SMR_VOLUME_GC_METHOD,
IoGranularity: u32,
CompressionFormat: u32,
Unused: [8]u64,
};
pub const STREAMS_QUERY_PARAMETERS_OUTPUT_BUFFER = extern struct {
OptimalWriteSize: u32,
StreamGranularitySize: u32,
StreamIdMin: u32,
StreamIdMax: u32,
};
pub const STREAMS_ASSOCIATE_ID_INPUT_BUFFER = extern struct {
Flags: u32,
StreamId: u32,
};
pub const STREAMS_QUERY_ID_OUTPUT_BUFFER = extern struct {
StreamId: u32,
};
pub const QUERY_BAD_RANGES_INPUT_RANGE = extern struct {
StartOffset: u64,
LengthInBytes: u64,
};
pub const QUERY_BAD_RANGES_INPUT = extern struct {
Flags: u32,
NumRanges: u32,
Ranges: [1]QUERY_BAD_RANGES_INPUT_RANGE,
};
pub const QUERY_BAD_RANGES_OUTPUT_RANGE = extern struct {
Flags: u32,
Reserved: u32,
StartOffset: u64,
LengthInBytes: u64,
};
pub const QUERY_BAD_RANGES_OUTPUT = extern struct {
Flags: u32,
NumBadRanges: u32,
NextOffsetToLookUp: u64,
BadRanges: [1]QUERY_BAD_RANGES_OUTPUT_RANGE,
};
pub const SET_DAX_ALLOC_ALIGNMENT_HINT_INPUT = extern struct {
Flags: u32,
AlignmentShift: u32,
FileOffsetToAlign: u64,
FallbackAlignmentShift: u32,
};
pub const VIRTUAL_STORAGE_BEHAVIOR_CODE = enum(i32) {
Undefined = 0,
CacheWriteThrough = 1,
CacheWriteBack = 2,
StopIoProcessing = 3,
RestartIoProcessing = 4,
};
pub const VirtualStorageBehaviorUndefined = VIRTUAL_STORAGE_BEHAVIOR_CODE.Undefined;
pub const VirtualStorageBehaviorCacheWriteThrough = VIRTUAL_STORAGE_BEHAVIOR_CODE.CacheWriteThrough;
pub const VirtualStorageBehaviorCacheWriteBack = VIRTUAL_STORAGE_BEHAVIOR_CODE.CacheWriteBack;
pub const VirtualStorageBehaviorStopIoProcessing = VIRTUAL_STORAGE_BEHAVIOR_CODE.StopIoProcessing;
pub const VirtualStorageBehaviorRestartIoProcessing = VIRTUAL_STORAGE_BEHAVIOR_CODE.RestartIoProcessing;
pub const VIRTUAL_STORAGE_SET_BEHAVIOR_INPUT = extern struct {
Size: u32,
BehaviorCode: VIRTUAL_STORAGE_BEHAVIOR_CODE,
};
pub const ENCRYPTION_KEY_CTRL_INPUT = extern struct {
HeaderSize: u32,
StructureSize: u32,
KeyOffset: u16,
KeySize: u16,
DplLock: u32,
DplUserId: u64,
DplCredentialId: u64,
};
pub const WOF_EXTERNAL_INFO = extern struct {
Version: u32,
Provider: u32,
};
pub const WOF_EXTERNAL_FILE_ID = extern struct {
FileId: FILE_ID_128,
};
pub const WOF_VERSION_INFO = extern struct {
WofVersion: u32,
};
pub const WIM_PROVIDER_EXTERNAL_INFO = extern struct {
Version: u32,
Flags: u32,
DataSourceId: LARGE_INTEGER,
ResourceHash: [20]u8,
};
pub const WIM_PROVIDER_ADD_OVERLAY_INPUT = extern struct {
WimType: u32,
WimIndex: u32,
WimFileNameOffset: u32,
WimFileNameLength: u32,
};
pub const WIM_PROVIDER_UPDATE_OVERLAY_INPUT = extern struct {
DataSourceId: LARGE_INTEGER,
WimFileNameOffset: u32,
WimFileNameLength: u32,
};
pub const WIM_PROVIDER_REMOVE_OVERLAY_INPUT = extern struct {
DataSourceId: LARGE_INTEGER,
};
pub const WIM_PROVIDER_SUSPEND_OVERLAY_INPUT = extern struct {
DataSourceId: LARGE_INTEGER,
};
pub const WIM_PROVIDER_OVERLAY_ENTRY = extern struct {
NextEntryOffset: u32,
DataSourceId: LARGE_INTEGER,
WimGuid: Guid,
WimFileNameOffset: u32,
WimType: u32,
WimIndex: u32,
Flags: u32,
};
pub const FILE_PROVIDER_EXTERNAL_INFO_V0 = extern struct {
Version: u32,
Algorithm: u32,
};
pub const FILE_PROVIDER_EXTERNAL_INFO_V1 = extern struct {
Version: u32,
Algorithm: u32,
Flags: u32,
};
pub const CONTAINER_VOLUME_STATE = extern struct {
Flags: u32,
};
pub const CONTAINER_ROOT_INFO_INPUT = extern struct {
Flags: u32,
};
pub const CONTAINER_ROOT_INFO_OUTPUT = extern struct {
ContainerRootIdLength: u16,
ContainerRootId: [1]u8,
};
pub const VIRTUALIZATION_INSTANCE_INFO_INPUT = extern struct {
NumberOfWorkerThreads: u32,
Flags: u32,
};
pub const VIRTUALIZATION_INSTANCE_INFO_INPUT_EX = extern struct {
HeaderSize: u16,
Flags: u32,
NotificationInfoSize: u32,
NotificationInfoOffset: u16,
ProviderMajorVersion: u16,
};
pub const VIRTUALIZATION_INSTANCE_INFO_OUTPUT = extern struct {
VirtualizationInstanceID: Guid,
};
pub const GET_FILTER_FILE_IDENTIFIER_INPUT = extern struct {
AltitudeLength: u16,
Altitude: [1]u16,
};
pub const GET_FILTER_FILE_IDENTIFIER_OUTPUT = extern struct {
FilterFileIdentifierLength: u16,
FilterFileIdentifier: [1]u8,
};
pub const FS_BPIO_OPERATIONS = enum(i32) {
ENABLE = 1,
DISABLE = 2,
QUERY = 3,
VOLUME_STACK_PAUSE = 4,
VOLUME_STACK_RESUME = 5,
STREAM_PAUSE = 6,
STREAM_RESUME = 7,
GET_INFO = 8,
MAX_OPERATION = 9,
};
pub const FS_BPIO_OP_ENABLE = FS_BPIO_OPERATIONS.ENABLE;
pub const FS_BPIO_OP_DISABLE = FS_BPIO_OPERATIONS.DISABLE;
pub const FS_BPIO_OP_QUERY = FS_BPIO_OPERATIONS.QUERY;
pub const FS_BPIO_OP_VOLUME_STACK_PAUSE = FS_BPIO_OPERATIONS.VOLUME_STACK_PAUSE;
pub const FS_BPIO_OP_VOLUME_STACK_RESUME = FS_BPIO_OPERATIONS.VOLUME_STACK_RESUME;
pub const FS_BPIO_OP_STREAM_PAUSE = FS_BPIO_OPERATIONS.STREAM_PAUSE;
pub const FS_BPIO_OP_STREAM_RESUME = FS_BPIO_OPERATIONS.STREAM_RESUME;
pub const FS_BPIO_OP_GET_INFO = FS_BPIO_OPERATIONS.GET_INFO;
pub const FS_BPIO_OP_MAX_OPERATION = FS_BPIO_OPERATIONS.MAX_OPERATION;
pub const FS_BPIO_INFLAGS = enum(i32) {
None = 0,
SKIP_STORAGE_STACK_QUERY = 1,
};
pub const FSBPIO_INFL_None = FS_BPIO_INFLAGS.None;
pub const FSBPIO_INFL_SKIP_STORAGE_STACK_QUERY = FS_BPIO_INFLAGS.SKIP_STORAGE_STACK_QUERY;
pub const FS_BPIO_INPUT = extern struct {
Operation: FS_BPIO_OPERATIONS,
InFlags: FS_BPIO_INFLAGS,
Reserved1: u64,
Reserved2: u64,
};
pub const FS_BPIO_OUTFLAGS = enum(i32) {
None = 0,
VOLUME_STACK_BYPASS_PAUSED = 1,
STREAM_BYPASS_PAUSED = 2,
FILTER_ATTACH_BLOCKED = 4,
COMPATIBLE_STORAGE_DRIVER = 8,
};
pub const FSBPIO_OUTFL_None = FS_BPIO_OUTFLAGS.None;
pub const FSBPIO_OUTFL_VOLUME_STACK_BYPASS_PAUSED = FS_BPIO_OUTFLAGS.VOLUME_STACK_BYPASS_PAUSED;
pub const FSBPIO_OUTFL_STREAM_BYPASS_PAUSED = FS_BPIO_OUTFLAGS.STREAM_BYPASS_PAUSED;
pub const FSBPIO_OUTFL_FILTER_ATTACH_BLOCKED = FS_BPIO_OUTFLAGS.FILTER_ATTACH_BLOCKED;
pub const FSBPIO_OUTFL_COMPATIBLE_STORAGE_DRIVER = FS_BPIO_OUTFLAGS.COMPATIBLE_STORAGE_DRIVER;
pub const FS_BPIO_RESULTS = extern struct {
OpStatus: u32,
FailingDriverNameLen: u16,
FailingDriverName: [32]u16,
FailureReasonLen: u16,
FailureReason: [128]u16,
};
pub const FS_BPIO_INFO = extern struct {
ActiveBypassIoCount: u32,
StorageDriverNameLen: u16,
StorageDriverName: [32]u16,
};
pub const FS_BPIO_OUTPUT = extern struct {
Operation: FS_BPIO_OPERATIONS,
OutFlags: FS_BPIO_OUTFLAGS,
Reserved1: u64,
Reserved2: u64,
Anonymous: extern union {
Enable: FS_BPIO_RESULTS,
Query: FS_BPIO_RESULTS,
VolumeStackResume: FS_BPIO_RESULTS,
StreamResume: FS_BPIO_RESULTS,
GetInfo: FS_BPIO_INFO,
},
};
pub const SMB_SHARE_FLUSH_AND_PURGE_INPUT = extern struct {
Version: u16,
};
pub const SMB_SHARE_FLUSH_AND_PURGE_OUTPUT = extern struct {
cEntriesPurged: u32,
};
pub const DISK_EXTENT = extern struct {
DiskNumber: u32,
StartingOffset: LARGE_INTEGER,
ExtentLength: LARGE_INTEGER,
};
pub const VOLUME_DISK_EXTENTS = extern struct {
NumberOfDiskExtents: u32,
Extents: [1]DISK_EXTENT,
};
pub const VOLUME_GET_GPT_ATTRIBUTES_INFORMATION = extern struct {
GptAttributes: u64,
};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIO_IRP_EXT_PROCESS_TRACKED_OFFSET_CALLBACK = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
pub const IO_IRP_EXT_TRACK_OFFSET_HEADER = extern struct {
Validation: u16,
Flags: u16,
TrackedOffsetCallback: ?PIO_IRP_EXT_PROCESS_TRACKED_OFFSET_CALLBACK,
};
pub const MOVE_FILE_DATA32 = switch(@import("../zig.zig").arch) {
.X64, .Arm64 => extern struct {
FileHandle: u32,
StartingVcn: LARGE_INTEGER,
StartingLcn: LARGE_INTEGER,
ClusterCount: u32,
},
else => usize, // NOTE: this should be a @compileError but can't because of https://github.com/ziglang/zig/issues/9682
};
pub const MARK_HANDLE_INFO32 = switch(@import("../zig.zig").arch) {
.X64, .Arm64 => extern struct {
Anonymous: extern union {
UsnSourceInfo: u32,
CopyNumber: u32,
},
VolumeHandle: u32,
HandleInfo: u32,
},
else => usize, // NOTE: this should be a @compileError but can't because of https://github.com/ziglang/zig/issues/9682
};
pub const DUPLICATE_EXTENTS_DATA32 = switch(@import("../zig.zig").arch) {
.X64, .Arm64 => extern struct {
FileHandle: u32,
SourceFileOffset: LARGE_INTEGER,
TargetFileOffset: LARGE_INTEGER,
ByteCount: LARGE_INTEGER,
},
else => usize, // NOTE: this should be a @compileError but can't because of https://github.com/ziglang/zig/issues/9682
};
pub const DUPLICATE_EXTENTS_DATA_EX32 = switch(@import("../zig.zig").arch) {
.X64, .Arm64 => extern struct {
Size: u32,
FileHandle: u32,
SourceFileOffset: LARGE_INTEGER,
TargetFileOffset: LARGE_INTEGER,
ByteCount: LARGE_INTEGER,
Flags: u32,
},
else => usize, // NOTE: this should be a @compileError but can't because of https://github.com/ziglang/zig/issues/9682
};
//--------------------------------------------------------------------------------
// 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 (10)
//--------------------------------------------------------------------------------
const Guid = @import("../zig.zig").Guid;
const BOOLEAN = @import("../foundation.zig").BOOLEAN;
const CHAR = @import("../foundation.zig").CHAR;
const FILE_ID_128 = @import("../storage/file_system.zig").FILE_ID_128;
const HANDLE = @import("../foundation.zig").HANDLE;
const LARGE_INTEGER = @import("../foundation.zig").LARGE_INTEGER;
const PROPERTYKEY = @import("../ui/shell/properties_system.zig").PROPERTYKEY;
const SID = @import("../security.zig").SID;
const STORAGE_BUS_TYPE = @import("../storage/file_system.zig").STORAGE_BUS_TYPE;
const VIRTUAL_STORAGE_TYPE = @import("../storage/vhd.zig").VIRTUAL_STORAGE_TYPE;
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);
}
}