zigwin32/win32/storage/iscsi_disc.zig

1974 lines
73 KiB
Zig

//! NOTE: this file is autogenerated, DO NOT MODIFY
//--------------------------------------------------------------------------------
// Section: Constants (181)
//--------------------------------------------------------------------------------
pub const IOCTL_SCSI_BASE = @as(u32, 4);
pub const ScsiRawInterfaceGuid = Guid.initString("53f56309-b6bf-11d0-94f2-00a0c91efb8b");
pub const WmiScsiAddressGuid = Guid.initString("53f5630f-b6bf-11d0-94f2-00a0c91efb8b");
pub const FILE_DEVICE_SCSI = @as(u32, 27);
pub const DD_SCSI_DEVICE_NAME = "\\Device\\ScsiPort";
pub const IOCTL_SCSI_PASS_THROUGH = @as(u32, 315396);
pub const IOCTL_SCSI_MINIPORT = @as(u32, 315400);
pub const IOCTL_SCSI_GET_INQUIRY_DATA = @as(u32, 266252);
pub const IOCTL_SCSI_GET_CAPABILITIES = @as(u32, 266256);
pub const IOCTL_SCSI_PASS_THROUGH_DIRECT = @as(u32, 315412);
pub const IOCTL_SCSI_GET_ADDRESS = @as(u32, 266264);
pub const IOCTL_SCSI_RESCAN_BUS = @as(u32, 266268);
pub const IOCTL_SCSI_GET_DUMP_POINTERS = @as(u32, 266272);
pub const IOCTL_SCSI_FREE_DUMP_POINTERS = @as(u32, 266276);
pub const IOCTL_IDE_PASS_THROUGH = @as(u32, 315432);
pub const IOCTL_ATA_PASS_THROUGH = @as(u32, 315436);
pub const IOCTL_ATA_PASS_THROUGH_DIRECT = @as(u32, 315440);
pub const IOCTL_ATA_MINIPORT = @as(u32, 315444);
pub const IOCTL_MINIPORT_PROCESS_SERVICE_IRP = @as(u32, 315448);
pub const IOCTL_MPIO_PASS_THROUGH_PATH = @as(u32, 315452);
pub const IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT = @as(u32, 315456);
pub const IOCTL_SCSI_PASS_THROUGH_EX = @as(u32, 315460);
pub const IOCTL_SCSI_PASS_THROUGH_DIRECT_EX = @as(u32, 315464);
pub const IOCTL_MPIO_PASS_THROUGH_PATH_EX = @as(u32, 315468);
pub const IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT_EX = @as(u32, 315472);
pub const ATA_FLAGS_DRDY_REQUIRED = @as(u32, 1);
pub const ATA_FLAGS_DATA_IN = @as(u32, 2);
pub const ATA_FLAGS_DATA_OUT = @as(u32, 4);
pub const ATA_FLAGS_48BIT_COMMAND = @as(u32, 8);
pub const ATA_FLAGS_USE_DMA = @as(u32, 16);
pub const ATA_FLAGS_NO_MULTIPLE = @as(u32, 32);
pub const IOCTL_MINIPORT_SIGNATURE_SCSIDISK = "SCSIDISK";
pub const IOCTL_MINIPORT_SIGNATURE_HYBRDISK = "HYBRDISK";
pub const IOCTL_MINIPORT_SIGNATURE_DSM_NOTIFICATION = "MPDSM ";
pub const IOCTL_MINIPORT_SIGNATURE_DSM_GENERAL = "MPDSMGEN";
pub const IOCTL_MINIPORT_SIGNATURE_FIRMWARE = "FIRMWARE";
pub const IOCTL_MINIPORT_SIGNATURE_QUERY_PROTOCOL = "PROTOCOL";
pub const IOCTL_MINIPORT_SIGNATURE_SET_PROTOCOL = "SETPROTO";
pub const IOCTL_MINIPORT_SIGNATURE_QUERY_TEMPERATURE = "TEMPERAT";
pub const IOCTL_MINIPORT_SIGNATURE_SET_TEMPERATURE_THRESHOLD = "SETTEMPT";
pub const IOCTL_MINIPORT_SIGNATURE_QUERY_PHYSICAL_TOPOLOGY = "TOPOLOGY";
pub const IOCTL_MINIPORT_SIGNATURE_ENDURANCE_INFO = "ENDURINF";
pub const NRB_FUNCTION_NVCACHE_INFO = @as(u32, 236);
pub const NRB_FUNCTION_SPINDLE_STATUS = @as(u32, 229);
pub const NRB_FUNCTION_NVCACHE_POWER_MODE_SET = @as(u32, 0);
pub const NRB_FUNCTION_NVCACHE_POWER_MODE_RETURN = @as(u32, 1);
pub const NRB_FUNCTION_FLUSH_NVCACHE = @as(u32, 20);
pub const NRB_FUNCTION_QUERY_PINNED_SET = @as(u32, 18);
pub const NRB_FUNCTION_QUERY_CACHE_MISS = @as(u32, 19);
pub const NRB_FUNCTION_ADD_LBAS_PINNED_SET = @as(u32, 16);
pub const NRB_FUNCTION_REMOVE_LBAS_PINNED_SET = @as(u32, 17);
pub const NRB_FUNCTION_QUERY_ASCENDER_STATUS = @as(u32, 208);
pub const NRB_FUNCTION_QUERY_HYBRID_DISK_STATUS = @as(u32, 209);
pub const NRB_FUNCTION_PASS_HINT_PAYLOAD = @as(u32, 224);
pub const NRB_FUNCTION_NVSEPARATED_INFO = @as(u32, 192);
pub const NRB_FUNCTION_NVSEPARATED_FLUSH = @as(u32, 193);
pub const NRB_FUNCTION_NVSEPARATED_WB_DISABLE = @as(u32, 194);
pub const NRB_FUNCTION_NVSEPARATED_WB_REVERT_DEFAULT = @as(u32, 195);
pub const NRB_SUCCESS = @as(u32, 0);
pub const NRB_ILLEGAL_REQUEST = @as(u32, 1);
pub const NRB_INVALID_PARAMETER = @as(u32, 2);
pub const NRB_INPUT_DATA_OVERRUN = @as(u32, 3);
pub const NRB_INPUT_DATA_UNDERRUN = @as(u32, 4);
pub const NRB_OUTPUT_DATA_OVERRUN = @as(u32, 5);
pub const NRB_OUTPUT_DATA_UNDERRUN = @as(u32, 6);
pub const NV_SEP_CACHE_PARAMETER_VERSION_1 = @as(u32, 1);
pub const NV_SEP_CACHE_PARAMETER_VERSION = @as(u32, 1);
pub const STORAGE_DIAGNOSTIC_STATUS_SUCCESS = @as(u32, 0);
pub const STORAGE_DIAGNOSTIC_STATUS_BUFFER_TOO_SMALL = @as(u32, 1);
pub const STORAGE_DIAGNOSTIC_STATUS_UNSUPPORTED_VERSION = @as(u32, 2);
pub const STORAGE_DIAGNOSTIC_STATUS_INVALID_PARAMETER = @as(u32, 3);
pub const STORAGE_DIAGNOSTIC_STATUS_INVALID_SIGNATURE = @as(u32, 4);
pub const STORAGE_DIAGNOSTIC_STATUS_INVALID_TARGET_TYPE = @as(u32, 5);
pub const STORAGE_DIAGNOSTIC_STATUS_MORE_DATA = @as(u32, 6);
pub const MINIPORT_DSM_NOTIFICATION_VERSION_1 = @as(u32, 1);
pub const MINIPORT_DSM_NOTIFICATION_VERSION = @as(u32, 1);
pub const MINIPORT_DSM_PROFILE_UNKNOWN = @as(u32, 0);
pub const MINIPORT_DSM_PROFILE_PAGE_FILE = @as(u32, 1);
pub const MINIPORT_DSM_PROFILE_HIBERNATION_FILE = @as(u32, 2);
pub const MINIPORT_DSM_PROFILE_CRASHDUMP_FILE = @as(u32, 3);
pub const MINIPORT_DSM_NOTIFY_FLAG_BEGIN = @as(u32, 1);
pub const MINIPORT_DSM_NOTIFY_FLAG_END = @as(u32, 2);
pub const HYBRID_FUNCTION_GET_INFO = @as(u32, 1);
pub const HYBRID_FUNCTION_DISABLE_CACHING_MEDIUM = @as(u32, 16);
pub const HYBRID_FUNCTION_ENABLE_CACHING_MEDIUM = @as(u32, 17);
pub const HYBRID_FUNCTION_SET_DIRTY_THRESHOLD = @as(u32, 18);
pub const HYBRID_FUNCTION_DEMOTE_BY_SIZE = @as(u32, 19);
pub const HYBRID_STATUS_SUCCESS = @as(u32, 0);
pub const HYBRID_STATUS_ILLEGAL_REQUEST = @as(u32, 1);
pub const HYBRID_STATUS_INVALID_PARAMETER = @as(u32, 2);
pub const HYBRID_STATUS_OUTPUT_BUFFER_TOO_SMALL = @as(u32, 3);
pub const HYBRID_STATUS_ENABLE_REFCOUNT_HOLD = @as(u32, 16);
pub const HYBRID_REQUEST_BLOCK_STRUCTURE_VERSION = @as(u32, 1);
pub const HYBRID_REQUEST_INFO_STRUCTURE_VERSION = @as(u32, 1);
pub const FIRMWARE_FUNCTION_GET_INFO = @as(u32, 1);
pub const FIRMWARE_FUNCTION_DOWNLOAD = @as(u32, 2);
pub const FIRMWARE_FUNCTION_ACTIVATE = @as(u32, 3);
pub const FIRMWARE_STATUS_SUCCESS = @as(u32, 0);
pub const FIRMWARE_STATUS_ERROR = @as(u32, 1);
pub const FIRMWARE_STATUS_ILLEGAL_REQUEST = @as(u32, 2);
pub const FIRMWARE_STATUS_INVALID_PARAMETER = @as(u32, 3);
pub const FIRMWARE_STATUS_INPUT_BUFFER_TOO_BIG = @as(u32, 4);
pub const FIRMWARE_STATUS_OUTPUT_BUFFER_TOO_SMALL = @as(u32, 5);
pub const FIRMWARE_STATUS_INVALID_SLOT = @as(u32, 6);
pub const FIRMWARE_STATUS_INVALID_IMAGE = @as(u32, 7);
pub const FIRMWARE_STATUS_CONTROLLER_ERROR = @as(u32, 16);
pub const FIRMWARE_STATUS_POWER_CYCLE_REQUIRED = @as(u32, 32);
pub const FIRMWARE_STATUS_DEVICE_ERROR = @as(u32, 64);
pub const FIRMWARE_STATUS_INTERFACE_CRC_ERROR = @as(u32, 128);
pub const FIRMWARE_STATUS_UNCORRECTABLE_DATA_ERROR = @as(u32, 129);
pub const FIRMWARE_STATUS_MEDIA_CHANGE = @as(u32, 130);
pub const FIRMWARE_STATUS_ID_NOT_FOUND = @as(u32, 131);
pub const FIRMWARE_STATUS_MEDIA_CHANGE_REQUEST = @as(u32, 132);
pub const FIRMWARE_STATUS_COMMAND_ABORT = @as(u32, 133);
pub const FIRMWARE_STATUS_END_OF_MEDIA = @as(u32, 134);
pub const FIRMWARE_STATUS_ILLEGAL_LENGTH = @as(u32, 135);
pub const FIRMWARE_REQUEST_BLOCK_STRUCTURE_VERSION = @as(u32, 1);
pub const FIRMWARE_REQUEST_FLAG_CONTROLLER = @as(u32, 1);
pub const FIRMWARE_REQUEST_FLAG_LAST_SEGMENT = @as(u32, 2);
pub const FIRMWARE_REQUEST_FLAG_FIRST_SEGMENT = @as(u32, 4);
pub const FIRMWARE_REQUEST_FLAG_SWITCH_TO_EXISTING_FIRMWARE = @as(u32, 2147483648);
pub const STORAGE_FIRMWARE_INFO_STRUCTURE_VERSION = @as(u32, 1);
pub const STORAGE_FIRMWARE_INFO_STRUCTURE_VERSION_V2 = @as(u32, 2);
pub const STORAGE_FIRMWARE_INFO_INVALID_SLOT = @as(u32, 255);
pub const STORAGE_FIRMWARE_SLOT_INFO_V2_REVISION_LENGTH = @as(u32, 16);
pub const STORAGE_FIRMWARE_DOWNLOAD_STRUCTURE_VERSION = @as(u32, 1);
pub const STORAGE_FIRMWARE_DOWNLOAD_STRUCTURE_VERSION_V2 = @as(u32, 2);
pub const STORAGE_FIRMWARE_ACTIVATE_STRUCTURE_VERSION = @as(u32, 1);
pub const DUMP_POINTERS_VERSION_1 = @as(u32, 1);
pub const DUMP_POINTERS_VERSION_2 = @as(u32, 2);
pub const DUMP_POINTERS_VERSION_3 = @as(u32, 3);
pub const DUMP_POINTERS_VERSION_4 = @as(u32, 4);
pub const DUMP_DRIVER_NAME_LENGTH = @as(u32, 15);
pub const DUMP_EX_FLAG_SUPPORT_64BITMEMORY = @as(u32, 1);
pub const DUMP_EX_FLAG_SUPPORT_DD_TELEMETRY = @as(u32, 2);
pub const DUMP_EX_FLAG_RESUME_SUPPORT = @as(u32, 4);
pub const DUMP_EX_FLAG_DRIVER_FULL_PATH_SUPPORT = @as(u32, 8);
pub const SCSI_IOCTL_DATA_OUT = @as(u32, 0);
pub const SCSI_IOCTL_DATA_IN = @as(u32, 1);
pub const SCSI_IOCTL_DATA_UNSPECIFIED = @as(u32, 2);
pub const SCSI_IOCTL_DATA_BIDIRECTIONAL = @as(u32, 3);
pub const MPIO_IOCTL_FLAG_USE_PATHID = @as(u32, 1);
pub const MPIO_IOCTL_FLAG_USE_SCSIADDRESS = @as(u32, 2);
pub const MPIO_IOCTL_FLAG_INVOLVE_DSM = @as(u32, 4);
pub const MAX_ISCSI_HBANAME_LEN = @as(u32, 256);
pub const MAX_ISCSI_NAME_LEN = @as(u32, 223);
pub const MAX_ISCSI_ALIAS_LEN = @as(u32, 255);
pub const MAX_ISCSI_PORTAL_NAME_LEN = @as(u32, 256);
pub const MAX_ISCSI_PORTAL_ALIAS_LEN = @as(u32, 256);
pub const MAX_ISCSI_TEXT_ADDRESS_LEN = @as(u32, 256);
pub const MAX_ISCSI_PORTAL_ADDRESS_LEN = @as(u32, 256);
pub const MAX_ISCSI_DISCOVERY_DOMAIN_LEN = @as(u32, 256);
pub const MAX_RADIUS_ADDRESS_LEN = @as(u32, 41);
pub const ISCSI_SECURITY_FLAG_TUNNEL_MODE_PREFERRED = "0x00000040";
pub const ISCSI_SECURITY_FLAG_TRANSPORT_MODE_PREFERRED = "0x00000020";
pub const ISCSI_SECURITY_FLAG_PFS_ENABLED = "0x00000010";
pub const ISCSI_SECURITY_FLAG_AGGRESSIVE_MODE_ENABLED = "0x00000008";
pub const ISCSI_SECURITY_FLAG_MAIN_MODE_ENABLED = "0x00000004";
pub const ISCSI_SECURITY_FLAG_IKE_IPSEC_ENABLED = "0x00000002";
pub const ISCSI_SECURITY_FLAG_VALID = "0x00000001";
pub const ISCSI_LOGIN_OPTIONS_HEADER_DIGEST = "0x00000001";
pub const ISCSI_LOGIN_OPTIONS_DATA_DIGEST = "0x00000002";
pub const ISCSI_LOGIN_OPTIONS_MAXIMUM_CONNECTIONS = "0x00000004";
pub const ISCSI_LOGIN_OPTIONS_DEFAULT_TIME_2_WAIT = "0x00000008";
pub const ISCSI_LOGIN_OPTIONS_DEFAULT_TIME_2_RETAIN = "0x00000010";
pub const ISCSI_LOGIN_OPTIONS_USERNAME = "0x00000020";
pub const ISCSI_LOGIN_OPTIONS_PASSWORD = "0x00000040";
pub const ISCSI_LOGIN_OPTIONS_AUTH_TYPE = "0x00000080";
pub const ID_IPV4_ADDR = "1";
pub const ID_FQDN = "2";
pub const ID_USER_FQDN = "3";
pub const ID_IPV6_ADDR = "5";
pub const ISCSI_LOGIN_FLAG_REQUIRE_IPSEC = @as(u32, 1);
pub const ISCSI_LOGIN_FLAG_MULTIPATH_ENABLED = @as(u32, 2);
pub const ISCSI_LOGIN_FLAG_RESERVED1 = @as(u32, 4);
pub const ISCSI_LOGIN_FLAG_ALLOW_PORTAL_HOPPING = @as(u32, 8);
pub const ISCSI_LOGIN_FLAG_USE_RADIUS_RESPONSE = @as(u32, 16);
pub const ISCSI_LOGIN_FLAG_USE_RADIUS_VERIFICATION = @as(u32, 32);
pub const ISCSI_LOGIN_OPTIONS_VERSION = @as(u32, 0);
pub const ISCSI_TARGET_FLAG_HIDE_STATIC_TARGET = @as(u32, 2);
pub const ISCSI_TARGET_FLAG_MERGE_TARGET_INFORMATION = @as(u32, 4);
//--------------------------------------------------------------------------------
// Section: Types (94)
//--------------------------------------------------------------------------------
pub const _ADAPTER_OBJECT = extern struct {
placeholder: usize, // TODO: why is this type empty?
};
pub const SCSI_PASS_THROUGH = extern struct {
Length: u16,
ScsiStatus: u8,
PathId: u8,
TargetId: u8,
Lun: u8,
CdbLength: u8,
SenseInfoLength: u8,
DataIn: u8,
DataTransferLength: u32,
TimeOutValue: u32,
DataBufferOffset: usize,
SenseInfoOffset: u32,
Cdb: [16]u8,
};
pub const SCSI_PASS_THROUGH_DIRECT = extern struct {
Length: u16,
ScsiStatus: u8,
PathId: u8,
TargetId: u8,
Lun: u8,
CdbLength: u8,
SenseInfoLength: u8,
DataIn: u8,
DataTransferLength: u32,
TimeOutValue: u32,
DataBuffer: ?*anyopaque,
SenseInfoOffset: u32,
Cdb: [16]u8,
};
pub const SCSI_PASS_THROUGH_EX = extern struct {
Version: u32,
Length: u32,
CdbLength: u32,
StorAddressLength: u32,
ScsiStatus: u8,
SenseInfoLength: u8,
DataDirection: u8,
Reserved: u8,
TimeOutValue: u32,
StorAddressOffset: u32,
SenseInfoOffset: u32,
DataOutTransferLength: u32,
DataInTransferLength: u32,
DataOutBufferOffset: usize,
DataInBufferOffset: usize,
Cdb: [1]u8,
};
pub const SCSI_PASS_THROUGH_DIRECT_EX = extern struct {
Version: u32,
Length: u32,
CdbLength: u32,
StorAddressLength: u32,
ScsiStatus: u8,
SenseInfoLength: u8,
DataDirection: u8,
Reserved: u8,
TimeOutValue: u32,
StorAddressOffset: u32,
SenseInfoOffset: u32,
DataOutTransferLength: u32,
DataInTransferLength: u32,
DataOutBuffer: ?*anyopaque,
DataInBuffer: ?*anyopaque,
Cdb: [1]u8,
};
pub const ATA_PASS_THROUGH_EX = extern struct {
Length: u16,
AtaFlags: u16,
PathId: u8,
TargetId: u8,
Lun: u8,
ReservedAsUchar: u8,
DataTransferLength: u32,
TimeOutValue: u32,
ReservedAsUlong: u32,
DataBufferOffset: usize,
PreviousTaskFile: [8]u8,
CurrentTaskFile: [8]u8,
};
pub const ATA_PASS_THROUGH_DIRECT = extern struct {
Length: u16,
AtaFlags: u16,
PathId: u8,
TargetId: u8,
Lun: u8,
ReservedAsUchar: u8,
DataTransferLength: u32,
TimeOutValue: u32,
ReservedAsUlong: u32,
DataBuffer: ?*anyopaque,
PreviousTaskFile: [8]u8,
CurrentTaskFile: [8]u8,
};
pub const IDE_IO_CONTROL = extern struct {
HeaderLength: u32,
Signature: [8]u8,
Timeout: u32,
ControlCode: u32,
ReturnStatus: u32,
DataLength: u32,
};
pub const MPIO_PASS_THROUGH_PATH = extern struct {
PassThrough: SCSI_PASS_THROUGH,
Version: u32,
Length: u16,
Flags: u8,
PortNumber: u8,
MpioPathId: u64,
};
pub const MPIO_PASS_THROUGH_PATH_DIRECT = extern struct {
PassThrough: SCSI_PASS_THROUGH_DIRECT,
Version: u32,
Length: u16,
Flags: u8,
PortNumber: u8,
MpioPathId: u64,
};
pub const MPIO_PASS_THROUGH_PATH_EX = extern struct {
PassThroughOffset: u32,
Version: u32,
Length: u16,
Flags: u8,
PortNumber: u8,
MpioPathId: u64,
};
pub const MPIO_PASS_THROUGH_PATH_DIRECT_EX = extern struct {
PassThroughOffset: u32,
Version: u32,
Length: u16,
Flags: u8,
PortNumber: u8,
MpioPathId: u64,
};
pub const SCSI_BUS_DATA = extern struct {
NumberOfLogicalUnits: u8,
InitiatorBusId: u8,
InquiryDataOffset: u32,
};
pub const SCSI_ADAPTER_BUS_INFO = extern struct {
NumberOfBuses: u8,
BusData: [1]SCSI_BUS_DATA,
};
pub const SCSI_INQUIRY_DATA = extern struct {
PathId: u8,
TargetId: u8,
Lun: u8,
DeviceClaimed: BOOLEAN,
InquiryDataLength: u32,
NextInquiryDataOffset: u32,
InquiryData: [1]u8,
};
pub const SRB_IO_CONTROL = extern struct {
HeaderLength: u32,
Signature: [8]u8,
Timeout: u32,
ControlCode: u32,
ReturnCode: u32,
Length: u32,
};
pub const NVCACHE_REQUEST_BLOCK = extern struct {
NRBSize: u32,
Function: u16,
NRBFlags: u32,
NRBStatus: u32,
Count: u32,
LBA: u64,
DataBufSize: u32,
NVCacheStatus: u32,
NVCacheSubStatus: u32,
};
pub const NV_FEATURE_PARAMETER = extern struct {
NVPowerModeEnabled: u16,
NVParameterReserv1: u16,
NVCmdEnabled: u16,
NVParameterReserv2: u16,
NVPowerModeVer: u16,
NVCmdVer: u16,
NVSize: u32,
NVReadSpeed: u16,
NVWrtSpeed: u16,
DeviceSpinUpTime: u32,
};
pub const NVCACHE_HINT_PAYLOAD = extern struct {
Command: u8,
Feature7_0: u8,
Feature15_8: u8,
Count15_8: u8,
LBA7_0: u8,
LBA15_8: u8,
LBA23_16: u8,
LBA31_24: u8,
LBA39_32: u8,
LBA47_40: u8,
Auxiliary7_0: u8,
Auxiliary23_16: u8,
Reserved: [4]u8,
};
pub const NV_SEP_CACHE_PARAMETER = extern struct {
Version: u32,
Size: u32,
Flags: extern union {
CacheFlags: extern struct {
_bitfield: u8,
},
CacheFlagsSet: u8,
},
WriteCacheType: u8,
WriteCacheTypeEffective: u8,
ParameterReserve1: [3]u8,
};
pub const NV_SEP_WRITE_CACHE_TYPE = enum(i32) {
Unknown = 0,
None = 1,
WriteBack = 2,
WriteThrough = 3,
};
pub const NVSEPWriteCacheTypeUnknown = NV_SEP_WRITE_CACHE_TYPE.Unknown;
pub const NVSEPWriteCacheTypeNone = NV_SEP_WRITE_CACHE_TYPE.None;
pub const NVSEPWriteCacheTypeWriteBack = NV_SEP_WRITE_CACHE_TYPE.WriteBack;
pub const NVSEPWriteCacheTypeWriteThrough = NV_SEP_WRITE_CACHE_TYPE.WriteThrough;
pub const MP_STORAGE_DIAGNOSTIC_LEVEL = enum(i32) {
Default = 0,
Max = 1,
};
pub const MpStorageDiagnosticLevelDefault = MP_STORAGE_DIAGNOSTIC_LEVEL.Default;
pub const MpStorageDiagnosticLevelMax = MP_STORAGE_DIAGNOSTIC_LEVEL.Max;
pub const MP_STORAGE_DIAGNOSTIC_TARGET_TYPE = enum(i32) {
Undefined = 0,
Miniport = 2,
HbaFirmware = 3,
Max = 4,
};
pub const MpStorageDiagnosticTargetTypeUndefined = MP_STORAGE_DIAGNOSTIC_TARGET_TYPE.Undefined;
pub const MpStorageDiagnosticTargetTypeMiniport = MP_STORAGE_DIAGNOSTIC_TARGET_TYPE.Miniport;
pub const MpStorageDiagnosticTargetTypeHbaFirmware = MP_STORAGE_DIAGNOSTIC_TARGET_TYPE.HbaFirmware;
pub const MpStorageDiagnosticTargetTypeMax = MP_STORAGE_DIAGNOSTIC_TARGET_TYPE.Max;
pub const STORAGE_DIAGNOSTIC_MP_REQUEST = extern struct {
Version: u32,
Size: u32,
TargetType: MP_STORAGE_DIAGNOSTIC_TARGET_TYPE,
Level: MP_STORAGE_DIAGNOSTIC_LEVEL,
ProviderId: Guid,
BufferSize: u32,
Reserved: u32,
DataBuffer: [1]u8,
};
pub const MP_DEVICE_DATA_SET_RANGE = extern struct {
StartingOffset: i64,
LengthInBytes: u64,
};
pub const DSM_NOTIFICATION_REQUEST_BLOCK = extern struct {
Size: u32,
Version: u32,
NotifyFlags: u32,
DataSetProfile: u32,
Reserved: [3]u32,
DataSetRangesCount: u32,
DataSetRanges: [1]MP_DEVICE_DATA_SET_RANGE,
};
pub const HYBRID_REQUEST_BLOCK = extern struct {
Version: u32,
Size: u32,
Function: u32,
Flags: u32,
DataBufferOffset: u32,
DataBufferLength: u32,
};
pub const NVCACHE_TYPE = enum(i32) {
Unknown = 0,
None = 1,
WriteBack = 2,
WriteThrough = 3,
};
pub const NvCacheTypeUnknown = NVCACHE_TYPE.Unknown;
pub const NvCacheTypeNone = NVCACHE_TYPE.None;
pub const NvCacheTypeWriteBack = NVCACHE_TYPE.WriteBack;
pub const NvCacheTypeWriteThrough = NVCACHE_TYPE.WriteThrough;
pub const NVCACHE_STATUS = enum(i32) {
Unknown = 0,
Disabling = 1,
Disabled = 2,
Enabled = 3,
};
pub const NvCacheStatusUnknown = NVCACHE_STATUS.Unknown;
pub const NvCacheStatusDisabling = NVCACHE_STATUS.Disabling;
pub const NvCacheStatusDisabled = NVCACHE_STATUS.Disabled;
pub const NvCacheStatusEnabled = NVCACHE_STATUS.Enabled;
pub const NVCACHE_PRIORITY_LEVEL_DESCRIPTOR = extern struct {
PriorityLevel: u8,
Reserved0: [3]u8,
ConsumedNVMSizeFraction: u32,
ConsumedMappingResourcesFraction: u32,
ConsumedNVMSizeForDirtyDataFraction: u32,
ConsumedMappingResourcesForDirtyDataFraction: u32,
Reserved1: u32,
};
pub const HYBRID_INFORMATION = extern struct {
Version: u32,
Size: u32,
HybridSupported: BOOLEAN,
Status: NVCACHE_STATUS,
CacheTypeEffective: NVCACHE_TYPE,
CacheTypeDefault: NVCACHE_TYPE,
FractionBase: u32,
CacheSize: u64,
Attributes: extern struct {
_bitfield: u32,
},
Priorities: extern struct {
PriorityLevelCount: u8,
MaxPriorityBehavior: BOOLEAN,
OptimalWriteGranularity: u8,
Reserved: u8,
DirtyThresholdLow: u32,
DirtyThresholdHigh: u32,
SupportedCommands: extern struct {
_bitfield: u32,
MaxEvictCommands: u32,
MaxLbaRangeCountForEvict: u32,
MaxLbaRangeCountForChangeLba: u32,
},
Priority: [1]NVCACHE_PRIORITY_LEVEL_DESCRIPTOR,
},
};
pub const HYBRID_DIRTY_THRESHOLDS = extern struct {
Version: u32,
Size: u32,
DirtyLowThreshold: u32,
DirtyHighThreshold: u32,
};
pub const HYBRID_DEMOTE_BY_SIZE = extern struct {
Version: u32,
Size: u32,
SourcePriority: u8,
TargetPriority: u8,
Reserved0: u16,
Reserved1: u32,
LbaCount: u64,
};
pub const FIRMWARE_REQUEST_BLOCK = extern struct {
Version: u32,
Size: u32,
Function: u32,
Flags: u32,
DataBufferOffset: u32,
DataBufferLength: u32,
};
pub const STORAGE_FIRMWARE_SLOT_INFO = extern struct {
SlotNumber: u8,
ReadOnly: BOOLEAN,
Reserved: [6]u8,
Revision: extern union {
Info: [8]u8,
AsUlonglong: u64,
},
};
pub const STORAGE_FIRMWARE_SLOT_INFO_V2 = extern struct {
SlotNumber: u8,
ReadOnly: BOOLEAN,
Reserved: [6]u8,
Revision: [16]u8,
};
pub const STORAGE_FIRMWARE_INFO = extern struct {
Version: u32,
Size: u32,
UpgradeSupport: BOOLEAN,
SlotCount: u8,
ActiveSlot: u8,
PendingActivateSlot: u8,
Reserved: u32,
Slot: [1]STORAGE_FIRMWARE_SLOT_INFO,
};
pub const STORAGE_FIRMWARE_INFO_V2 = extern struct {
Version: u32,
Size: u32,
UpgradeSupport: BOOLEAN,
SlotCount: u8,
ActiveSlot: u8,
PendingActivateSlot: u8,
FirmwareShared: BOOLEAN,
Reserved: [3]u8,
ImagePayloadAlignment: u32,
ImagePayloadMaxSize: u32,
Slot: [1]STORAGE_FIRMWARE_SLOT_INFO_V2,
};
pub const STORAGE_FIRMWARE_DOWNLOAD = extern struct {
Version: u32,
Size: u32,
Offset: u64,
BufferSize: u64,
ImageBuffer: [1]u8,
};
pub const STORAGE_FIRMWARE_DOWNLOAD_V2 = extern struct {
Version: u32,
Size: u32,
Offset: u64,
BufferSize: u64,
Slot: u8,
Reserved: [3]u8,
ImageSize: u32,
ImageBuffer: [1]u8,
};
pub const STORAGE_FIRMWARE_ACTIVATE = extern struct {
Version: u32,
Size: u32,
SlotToActivate: u8,
Reserved0: [3]u8,
};
pub const IO_SCSI_CAPABILITIES = extern struct {
Length: u32,
MaximumTransferLength: u32,
MaximumPhysicalPages: u32,
SupportedAsynchronousEvents: u32,
AlignmentMask: u32,
TaggedQueuing: BOOLEAN,
AdapterScansDown: BOOLEAN,
AdapterUsesPio: BOOLEAN,
};
pub const SCSI_ADDRESS = extern struct {
Length: u32,
PortNumber: u8,
PathId: u8,
TargetId: u8,
Lun: u8,
};
pub const DUMP_DEVICE_POWERON_ROUTINE = switch (@import("builtin").zig_backend) {
.stage1 => fn(
Context: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) i32,
else => *const fn(
Context: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) i32,
} ;
pub const PDUMP_DEVICE_POWERON_ROUTINE = switch (@import("builtin").zig_backend) {
.stage1 => fn(
) callconv(@import("std").os.windows.WINAPI) i32,
else => *const fn(
) callconv(@import("std").os.windows.WINAPI) i32,
} ;
pub const DUMP_POINTERS_VERSION = extern struct {
Version: u32,
Size: u32,
};
pub const DUMP_POINTERS = extern struct {
AdapterObject: ?*_ADAPTER_OBJECT,
MappedRegisterBase: ?*anyopaque,
DumpData: ?*anyopaque,
CommonBufferVa: ?*anyopaque,
CommonBufferPa: LARGE_INTEGER,
CommonBufferSize: u32,
AllocateCommonBuffers: BOOLEAN,
UseDiskDump: BOOLEAN,
Spare1: [2]u8,
DeviceObject: ?*anyopaque,
};
pub const DUMP_POINTERS_EX = extern struct {
Header: DUMP_POINTERS_VERSION,
DumpData: ?*anyopaque,
CommonBufferVa: ?*anyopaque,
CommonBufferSize: u32,
AllocateCommonBuffers: BOOLEAN,
DeviceObject: ?*anyopaque,
DriverList: ?*anyopaque,
dwPortFlags: u32,
MaxDeviceDumpSectionSize: u32,
MaxDeviceDumpLevel: u32,
MaxTransferSize: u32,
AdapterObject: ?*anyopaque,
MappedRegisterBase: ?*anyopaque,
DeviceReady: ?*BOOLEAN,
DumpDevicePowerOn: ?PDUMP_DEVICE_POWERON_ROUTINE,
DumpDevicePowerOnContext: ?*anyopaque,
};
pub const DUMP_DRIVER = extern struct {
DumpDriverList: ?*anyopaque,
DriverName: [15]u16,
BaseName: [15]u16,
};
pub const NTSCSI_UNICODE_STRING = extern struct {
Length: u16,
MaximumLength: u16,
Buffer: ?[*]u16,
};
pub const DUMP_DRIVER_EX = extern struct {
DumpDriverList: ?*anyopaque,
DriverName: [15]u16,
BaseName: [15]u16,
DriverFullPath: NTSCSI_UNICODE_STRING,
};
pub const STORAGE_ENDURANCE_INFO = extern struct {
ValidFields: u32,
GroupId: u32,
Flags: extern struct {
_bitfield: u32,
},
LifePercentage: u32,
BytesReadCount: [16]u8,
ByteWriteCount: [16]u8,
};
pub const STORAGE_ENDURANCE_DATA_DESCRIPTOR = extern struct {
Version: u32,
Size: u32,
EnduranceInfo: STORAGE_ENDURANCE_INFO,
};
pub const ISCSI_DIGEST_TYPES = enum(i32) {
NONE = 0,
CRC32C = 1,
};
pub const ISCSI_DIGEST_TYPE_NONE = ISCSI_DIGEST_TYPES.NONE;
pub const ISCSI_DIGEST_TYPE_CRC32C = ISCSI_DIGEST_TYPES.CRC32C;
pub const ISCSI_AUTH_TYPES = enum(i32) {
NO_AUTH_TYPE = 0,
CHAP_AUTH_TYPE = 1,
MUTUAL_CHAP_AUTH_TYPE = 2,
};
pub const ISCSI_NO_AUTH_TYPE = ISCSI_AUTH_TYPES.NO_AUTH_TYPE;
pub const ISCSI_CHAP_AUTH_TYPE = ISCSI_AUTH_TYPES.CHAP_AUTH_TYPE;
pub const ISCSI_MUTUAL_CHAP_AUTH_TYPE = ISCSI_AUTH_TYPES.MUTUAL_CHAP_AUTH_TYPE;
pub const ISCSI_LOGIN_OPTIONS = extern struct {
Version: u32,
InformationSpecified: u32,
LoginFlags: u32,
AuthType: ISCSI_AUTH_TYPES,
HeaderDigest: ISCSI_DIGEST_TYPES,
DataDigest: ISCSI_DIGEST_TYPES,
MaximumConnections: u32,
DefaultTime2Wait: u32,
DefaultTime2Retain: u32,
UsernameLength: u32,
PasswordLength: u32,
Username: ?*u8,
Password: ?*u8,
};
pub const IKE_AUTHENTICATION_METHOD = enum(i32) {
D = 1,
};
pub const IKE_AUTHENTICATION_PRESHARED_KEY_METHOD = IKE_AUTHENTICATION_METHOD.D;
pub const IKE_AUTHENTICATION_PRESHARED_KEY = extern struct {
SecurityFlags: u64,
IdType: u8,
IdLengthInBytes: u32,
Id: ?*u8,
KeyLengthInBytes: u32,
Key: ?*u8,
};
pub const IKE_AUTHENTICATION_INFORMATION = extern struct {
AuthMethod: IKE_AUTHENTICATION_METHOD,
Anonymous: extern union {
PsKey: IKE_AUTHENTICATION_PRESHARED_KEY,
},
};
pub const ISCSI_UNIQUE_SESSION_ID = extern struct {
AdapterUnique: u64,
AdapterSpecific: u64,
};
pub const SCSI_LUN_LIST = extern struct {
OSLUN: u32,
TargetLUN: u64,
};
pub const ISCSI_TARGET_MAPPINGW = extern struct {
InitiatorName: [256]u16,
TargetName: [224]u16,
OSDeviceName: [260]u16,
SessionId: ISCSI_UNIQUE_SESSION_ID,
OSBusNumber: u32,
OSTargetNumber: u32,
LUNCount: u32,
LUNList: ?*SCSI_LUN_LIST,
};
pub const ISCSI_TARGET_MAPPINGA = extern struct {
InitiatorName: [256]CHAR,
TargetName: [224]CHAR,
OSDeviceName: [260]CHAR,
SessionId: ISCSI_UNIQUE_SESSION_ID,
OSBusNumber: u32,
OSTargetNumber: u32,
LUNCount: u32,
LUNList: ?*SCSI_LUN_LIST,
};
pub const ISCSI_TARGET_PORTALW = extern struct {
SymbolicName: [256]u16,
Address: [256]u16,
Socket: u16,
};
pub const ISCSI_TARGET_PORTALA = extern struct {
SymbolicName: [256]CHAR,
Address: [256]CHAR,
Socket: u16,
};
pub const ISCSI_TARGET_PORTAL_INFOW = extern struct {
InitiatorName: [256]u16,
InitiatorPortNumber: u32,
SymbolicName: [256]u16,
Address: [256]u16,
Socket: u16,
};
pub const ISCSI_TARGET_PORTAL_INFOA = extern struct {
InitiatorName: [256]CHAR,
InitiatorPortNumber: u32,
SymbolicName: [256]CHAR,
Address: [256]CHAR,
Socket: u16,
};
pub const ISCSI_TARGET_PORTAL_INFO_EXW = extern struct {
InitiatorName: [256]u16,
InitiatorPortNumber: u32,
SymbolicName: [256]u16,
Address: [256]u16,
Socket: u16,
SecurityFlags: u64,
LoginOptions: ISCSI_LOGIN_OPTIONS,
};
pub const ISCSI_TARGET_PORTAL_INFO_EXA = extern struct {
InitiatorName: [256]CHAR,
InitiatorPortNumber: u32,
SymbolicName: [256]CHAR,
Address: [256]CHAR,
Socket: u16,
SecurityFlags: u64,
LoginOptions: ISCSI_LOGIN_OPTIONS,
};
pub const ISCSI_TARGET_PORTAL_GROUPW = extern struct {
Count: u32,
Portals: [1]ISCSI_TARGET_PORTALW,
};
pub const ISCSI_TARGET_PORTAL_GROUPA = extern struct {
Count: u32,
Portals: [1]ISCSI_TARGET_PORTALA,
};
pub const ISCSI_CONNECTION_INFOW = extern struct {
ConnectionId: ISCSI_UNIQUE_SESSION_ID,
InitiatorAddress: ?[*]u16,
TargetAddress: ?[*]u16,
InitiatorSocket: u16,
TargetSocket: u16,
CID: [2]u8,
};
pub const ISCSI_SESSION_INFOW = extern struct {
SessionId: ISCSI_UNIQUE_SESSION_ID,
InitiatorName: ?[*]u16,
TargetNodeName: ?[*]u16,
TargetName: ?[*]u16,
ISID: [6]u8,
TSID: [2]u8,
ConnectionCount: u32,
Connections: ?*ISCSI_CONNECTION_INFOW,
};
pub const ISCSI_CONNECTION_INFOA = extern struct {
ConnectionId: ISCSI_UNIQUE_SESSION_ID,
InitiatorAddress: ?[*]u8,
TargetAddress: ?[*]u8,
InitiatorSocket: u16,
TargetSocket: u16,
CID: [2]u8,
};
pub const ISCSI_SESSION_INFOA = extern struct {
SessionId: ISCSI_UNIQUE_SESSION_ID,
InitiatorName: ?[*]u8,
TargetNodeName: ?[*]u8,
TargetName: ?[*]u8,
ISID: [6]u8,
TSID: [2]u8,
ConnectionCount: u32,
Connections: ?*ISCSI_CONNECTION_INFOA,
};
pub const ISCSI_CONNECTION_INFO_EX = extern struct {
ConnectionId: ISCSI_UNIQUE_SESSION_ID,
State: u8,
Protocol: u8,
HeaderDigest: u8,
DataDigest: u8,
MaxRecvDataSegmentLength: u32,
AuthType: ISCSI_AUTH_TYPES,
EstimatedThroughput: u64,
MaxDatagramSize: u32,
};
pub const ISCSI_SESSION_INFO_EX = extern struct {
SessionId: ISCSI_UNIQUE_SESSION_ID,
InitialR2t: BOOLEAN,
ImmediateData: BOOLEAN,
Type: u8,
DataSequenceInOrder: BOOLEAN,
DataPduInOrder: BOOLEAN,
ErrorRecoveryLevel: u8,
MaxOutstandingR2t: u32,
FirstBurstLength: u32,
MaxBurstLength: u32,
MaximumConnections: u32,
ConnectionCount: u32,
Connections: ?*ISCSI_CONNECTION_INFO_EX,
};
pub const ISCSI_DEVICE_ON_SESSIONW = extern struct {
InitiatorName: [256]u16,
TargetName: [224]u16,
ScsiAddress: SCSI_ADDRESS,
DeviceInterfaceType: Guid,
DeviceInterfaceName: [260]u16,
LegacyName: [260]u16,
StorageDeviceNumber: STORAGE_DEVICE_NUMBER,
DeviceInstance: u32,
};
pub const ISCSI_DEVICE_ON_SESSIONA = extern struct {
InitiatorName: [256]CHAR,
TargetName: [224]CHAR,
ScsiAddress: SCSI_ADDRESS,
DeviceInterfaceType: Guid,
DeviceInterfaceName: [260]CHAR,
LegacyName: [260]CHAR,
StorageDeviceNumber: STORAGE_DEVICE_NUMBER,
DeviceInstance: u32,
};
pub const PERSISTENT_ISCSI_LOGIN_INFOW = extern struct {
TargetName: [224]u16,
IsInformationalSession: BOOLEAN,
InitiatorInstance: [256]u16,
InitiatorPortNumber: u32,
TargetPortal: ISCSI_TARGET_PORTALW,
SecurityFlags: u64,
Mappings: ?*ISCSI_TARGET_MAPPINGW,
LoginOptions: ISCSI_LOGIN_OPTIONS,
};
pub const PERSISTENT_ISCSI_LOGIN_INFOA = extern struct {
TargetName: [224]CHAR,
IsInformationalSession: BOOLEAN,
InitiatorInstance: [256]CHAR,
InitiatorPortNumber: u32,
TargetPortal: ISCSI_TARGET_PORTALA,
SecurityFlags: u64,
Mappings: ?*ISCSI_TARGET_MAPPINGA,
LoginOptions: ISCSI_LOGIN_OPTIONS,
};
pub const TARGETPROTOCOLTYPE = enum(i32) {
E = 0,
};
pub const ISCSI_TCP_PROTOCOL_TYPE = TARGETPROTOCOLTYPE.E;
pub const TARGET_INFORMATION_CLASS = enum(i32) {
ProtocolType = 0,
TargetAlias = 1,
DiscoveryMechanisms = 2,
PortalGroups = 3,
PersistentTargetMappings = 4,
InitiatorName = 5,
TargetFlags = 6,
LoginOptions = 7,
};
pub const ProtocolType = TARGET_INFORMATION_CLASS.ProtocolType;
pub const TargetAlias = TARGET_INFORMATION_CLASS.TargetAlias;
pub const DiscoveryMechanisms = TARGET_INFORMATION_CLASS.DiscoveryMechanisms;
pub const PortalGroups = TARGET_INFORMATION_CLASS.PortalGroups;
pub const PersistentTargetMappings = TARGET_INFORMATION_CLASS.PersistentTargetMappings;
pub const InitiatorName = TARGET_INFORMATION_CLASS.InitiatorName;
pub const TargetFlags = TARGET_INFORMATION_CLASS.TargetFlags;
pub const LoginOptions = TARGET_INFORMATION_CLASS.LoginOptions;
pub const ISCSI_VERSION_INFO = extern struct {
MajorVersion: u32,
MinorVersion: u32,
BuildNumber: u32,
};
pub const SCSI_PASS_THROUGH32 = switch(@import("../zig.zig").arch) {
.X64, .Arm64 => extern struct {
Length: u16,
ScsiStatus: u8,
PathId: u8,
TargetId: u8,
Lun: u8,
CdbLength: u8,
SenseInfoLength: u8,
DataIn: u8,
DataTransferLength: u32,
TimeOutValue: u32,
DataBufferOffset: u32,
SenseInfoOffset: u32,
Cdb: [16]u8,
},
else => usize, // NOTE: this should be a @compileError but can't because of https://github.com/ziglang/zig/issues/9682
};
pub const SCSI_PASS_THROUGH_DIRECT32 = switch(@import("../zig.zig").arch) {
.X64, .Arm64 => extern struct {
Length: u16,
ScsiStatus: u8,
PathId: u8,
TargetId: u8,
Lun: u8,
CdbLength: u8,
SenseInfoLength: u8,
DataIn: u8,
DataTransferLength: u32,
TimeOutValue: u32,
DataBuffer: ?*anyopaque,
SenseInfoOffset: u32,
Cdb: [16]u8,
},
else => usize, // NOTE: this should be a @compileError but can't because of https://github.com/ziglang/zig/issues/9682
};
pub const SCSI_PASS_THROUGH32_EX = switch(@import("../zig.zig").arch) {
.X64, .Arm64 => extern struct {
Version: u32,
Length: u32,
CdbLength: u32,
StorAddressLength: u32,
ScsiStatus: u8,
SenseInfoLength: u8,
DataDirection: u8,
Reserved: u8,
TimeOutValue: u32,
StorAddressOffset: u32,
SenseInfoOffset: u32,
DataOutTransferLength: u32,
DataInTransferLength: u32,
DataOutBufferOffset: u32,
DataInBufferOffset: u32,
Cdb: [1]u8,
},
else => usize, // NOTE: this should be a @compileError but can't because of https://github.com/ziglang/zig/issues/9682
};
pub const SCSI_PASS_THROUGH_DIRECT32_EX = switch(@import("../zig.zig").arch) {
.X64, .Arm64 => extern struct {
Version: u32,
Length: u32,
CdbLength: u32,
StorAddressLength: u32,
ScsiStatus: u8,
SenseInfoLength: u8,
DataDirection: u8,
Reserved: u8,
TimeOutValue: u32,
StorAddressOffset: u32,
SenseInfoOffset: u32,
DataOutTransferLength: u32,
DataInTransferLength: u32,
DataOutBuffer: ?*anyopaque,
DataInBuffer: ?*anyopaque,
Cdb: [1]u8,
},
else => usize, // NOTE: this should be a @compileError but can't because of https://github.com/ziglang/zig/issues/9682
};
pub const ATA_PASS_THROUGH_EX32 = switch(@import("../zig.zig").arch) {
.X64, .Arm64 => extern struct {
Length: u16,
AtaFlags: u16,
PathId: u8,
TargetId: u8,
Lun: u8,
ReservedAsUchar: u8,
DataTransferLength: u32,
TimeOutValue: u32,
ReservedAsUlong: u32,
DataBufferOffset: u32,
PreviousTaskFile: [8]u8,
CurrentTaskFile: [8]u8,
},
else => usize, // NOTE: this should be a @compileError but can't because of https://github.com/ziglang/zig/issues/9682
};
pub const ATA_PASS_THROUGH_DIRECT32 = switch(@import("../zig.zig").arch) {
.X64, .Arm64 => extern struct {
Length: u16,
AtaFlags: u16,
PathId: u8,
TargetId: u8,
Lun: u8,
ReservedAsUchar: u8,
DataTransferLength: u32,
TimeOutValue: u32,
ReservedAsUlong: u32,
DataBuffer: ?*anyopaque,
PreviousTaskFile: [8]u8,
CurrentTaskFile: [8]u8,
},
else => usize, // NOTE: this should be a @compileError but can't because of https://github.com/ziglang/zig/issues/9682
};
pub const MPIO_PASS_THROUGH_PATH32 = switch(@import("../zig.zig").arch) {
.X64, .Arm64 => extern struct {
PassThrough: SCSI_PASS_THROUGH32,
Version: u32,
Length: u16,
Flags: u8,
PortNumber: u8,
MpioPathId: u64,
},
else => usize, // NOTE: this should be a @compileError but can't because of https://github.com/ziglang/zig/issues/9682
};
pub const MPIO_PASS_THROUGH_PATH_DIRECT32 = switch(@import("../zig.zig").arch) {
.X64, .Arm64 => extern struct {
PassThrough: SCSI_PASS_THROUGH_DIRECT32,
Version: u32,
Length: u16,
Flags: u8,
PortNumber: u8,
MpioPathId: u64,
},
else => usize, // NOTE: this should be a @compileError but can't because of https://github.com/ziglang/zig/issues/9682
};
pub const MPIO_PASS_THROUGH_PATH32_EX = switch(@import("../zig.zig").arch) {
.X64, .Arm64 => extern struct {
PassThroughOffset: u32,
Version: u32,
Length: u16,
Flags: u8,
PortNumber: u8,
MpioPathId: u64,
},
else => usize, // NOTE: this should be a @compileError but can't because of https://github.com/ziglang/zig/issues/9682
};
pub const MPIO_PASS_THROUGH_PATH_DIRECT32_EX = switch(@import("../zig.zig").arch) {
.X64, .Arm64 => extern struct {
PassThroughOffset: u32,
Version: u32,
Length: u16,
Flags: u8,
PortNumber: u8,
MpioPathId: u64,
},
else => usize, // NOTE: this should be a @compileError but can't because of https://github.com/ziglang/zig/issues/9682
};
//--------------------------------------------------------------------------------
// Section: Functions (79)
//--------------------------------------------------------------------------------
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn GetIScsiVersionInformation(
VersionInfo: ?*ISCSI_VERSION_INFO,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn GetIScsiTargetInformationW(
TargetName: ?PWSTR,
DiscoveryMechanism: ?PWSTR,
InfoClass: TARGET_INFORMATION_CLASS,
BufferSize: ?*u32,
Buffer: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn GetIScsiTargetInformationA(
TargetName: ?PSTR,
DiscoveryMechanism: ?PSTR,
InfoClass: TARGET_INFORMATION_CLASS,
BufferSize: ?*u32,
Buffer: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn AddIScsiConnectionW(
UniqueSessionId: ?*ISCSI_UNIQUE_SESSION_ID,
Reserved: ?*anyopaque,
InitiatorPortNumber: u32,
TargetPortal: ?*ISCSI_TARGET_PORTALW,
SecurityFlags: u64,
LoginOptions: ?*ISCSI_LOGIN_OPTIONS,
KeySize: u32,
Key: ?[*]u8,
ConnectionId: ?*ISCSI_UNIQUE_SESSION_ID,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn AddIScsiConnectionA(
UniqueSessionId: ?*ISCSI_UNIQUE_SESSION_ID,
Reserved: ?*anyopaque,
InitiatorPortNumber: u32,
TargetPortal: ?*ISCSI_TARGET_PORTALA,
SecurityFlags: u64,
LoginOptions: ?*ISCSI_LOGIN_OPTIONS,
KeySize: u32,
Key: ?[*]u8,
ConnectionId: ?*ISCSI_UNIQUE_SESSION_ID,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn RemoveIScsiConnection(
UniqueSessionId: ?*ISCSI_UNIQUE_SESSION_ID,
ConnectionId: ?*ISCSI_UNIQUE_SESSION_ID,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn ReportIScsiTargetsW(
ForceUpdate: BOOLEAN,
BufferSize: ?*u32,
Buffer: ?[*]u16,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn ReportIScsiTargetsA(
ForceUpdate: BOOLEAN,
BufferSize: ?*u32,
Buffer: ?[*]u8,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn AddIScsiStaticTargetW(
TargetName: ?PWSTR,
TargetAlias: ?PWSTR,
TargetFlags: u32,
Persist: BOOLEAN,
Mappings: ?*ISCSI_TARGET_MAPPINGW,
LoginOptions: ?*ISCSI_LOGIN_OPTIONS,
PortalGroup: ?*ISCSI_TARGET_PORTAL_GROUPW,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn AddIScsiStaticTargetA(
TargetName: ?PSTR,
TargetAlias: ?PSTR,
TargetFlags: u32,
Persist: BOOLEAN,
Mappings: ?*ISCSI_TARGET_MAPPINGA,
LoginOptions: ?*ISCSI_LOGIN_OPTIONS,
PortalGroup: ?*ISCSI_TARGET_PORTAL_GROUPA,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn RemoveIScsiStaticTargetW(
TargetName: ?PWSTR,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn RemoveIScsiStaticTargetA(
TargetName: ?PSTR,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn AddIScsiSendTargetPortalW(
InitiatorInstance: ?PWSTR,
InitiatorPortNumber: u32,
LoginOptions: ?*ISCSI_LOGIN_OPTIONS,
SecurityFlags: u64,
Portal: ?*ISCSI_TARGET_PORTALW,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn AddIScsiSendTargetPortalA(
InitiatorInstance: ?PSTR,
InitiatorPortNumber: u32,
LoginOptions: ?*ISCSI_LOGIN_OPTIONS,
SecurityFlags: u64,
Portal: ?*ISCSI_TARGET_PORTALA,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn RemoveIScsiSendTargetPortalW(
InitiatorInstance: ?PWSTR,
InitiatorPortNumber: u32,
Portal: ?*ISCSI_TARGET_PORTALW,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn RemoveIScsiSendTargetPortalA(
InitiatorInstance: ?PSTR,
InitiatorPortNumber: u32,
Portal: ?*ISCSI_TARGET_PORTALA,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn RefreshIScsiSendTargetPortalW(
InitiatorInstance: ?PWSTR,
InitiatorPortNumber: u32,
Portal: ?*ISCSI_TARGET_PORTALW,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn RefreshIScsiSendTargetPortalA(
InitiatorInstance: ?PSTR,
InitiatorPortNumber: u32,
Portal: ?*ISCSI_TARGET_PORTALA,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn ReportIScsiSendTargetPortalsW(
PortalCount: ?*u32,
PortalInfo: ?*ISCSI_TARGET_PORTAL_INFOW,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn ReportIScsiSendTargetPortalsA(
PortalCount: ?*u32,
PortalInfo: ?*ISCSI_TARGET_PORTAL_INFOA,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn ReportIScsiSendTargetPortalsExW(
PortalCount: ?*u32,
PortalInfoSize: ?*u32,
PortalInfo: ?*ISCSI_TARGET_PORTAL_INFO_EXW,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn ReportIScsiSendTargetPortalsExA(
PortalCount: ?*u32,
PortalInfoSize: ?*u32,
PortalInfo: ?*ISCSI_TARGET_PORTAL_INFO_EXA,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn LoginIScsiTargetW(
TargetName: ?PWSTR,
IsInformationalSession: BOOLEAN,
InitiatorInstance: ?PWSTR,
InitiatorPortNumber: u32,
TargetPortal: ?*ISCSI_TARGET_PORTALW,
SecurityFlags: u64,
Mappings: ?*ISCSI_TARGET_MAPPINGW,
LoginOptions: ?*ISCSI_LOGIN_OPTIONS,
KeySize: u32,
Key: ?[*]u8,
IsPersistent: BOOLEAN,
UniqueSessionId: ?*ISCSI_UNIQUE_SESSION_ID,
UniqueConnectionId: ?*ISCSI_UNIQUE_SESSION_ID,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn LoginIScsiTargetA(
TargetName: ?PSTR,
IsInformationalSession: BOOLEAN,
InitiatorInstance: ?PSTR,
InitiatorPortNumber: u32,
TargetPortal: ?*ISCSI_TARGET_PORTALA,
SecurityFlags: u64,
Mappings: ?*ISCSI_TARGET_MAPPINGA,
LoginOptions: ?*ISCSI_LOGIN_OPTIONS,
KeySize: u32,
Key: ?[*]u8,
IsPersistent: BOOLEAN,
UniqueSessionId: ?*ISCSI_UNIQUE_SESSION_ID,
UniqueConnectionId: ?*ISCSI_UNIQUE_SESSION_ID,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn ReportIScsiPersistentLoginsW(
Count: ?*u32,
PersistentLoginInfo: ?*PERSISTENT_ISCSI_LOGIN_INFOW,
BufferSizeInBytes: ?*u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn ReportIScsiPersistentLoginsA(
Count: ?*u32,
PersistentLoginInfo: ?*PERSISTENT_ISCSI_LOGIN_INFOA,
BufferSizeInBytes: ?*u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn LogoutIScsiTarget(
UniqueSessionId: ?*ISCSI_UNIQUE_SESSION_ID,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn RemoveIScsiPersistentTargetW(
InitiatorInstance: ?PWSTR,
InitiatorPortNumber: u32,
TargetName: ?PWSTR,
Portal: ?*ISCSI_TARGET_PORTALW,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn RemoveIScsiPersistentTargetA(
InitiatorInstance: ?PSTR,
InitiatorPortNumber: u32,
TargetName: ?PSTR,
Portal: ?*ISCSI_TARGET_PORTALA,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn SendScsiInquiry(
UniqueSessionId: ?*ISCSI_UNIQUE_SESSION_ID,
Lun: u64,
EvpdCmddt: u8,
PageCode: u8,
ScsiStatus: ?*u8,
ResponseSize: ?*u32,
ResponseBuffer: ?*u8,
SenseSize: ?*u32,
SenseBuffer: ?*u8,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn SendScsiReadCapacity(
UniqueSessionId: ?*ISCSI_UNIQUE_SESSION_ID,
Lun: u64,
ScsiStatus: ?*u8,
ResponseSize: ?*u32,
ResponseBuffer: ?*u8,
SenseSize: ?*u32,
SenseBuffer: ?*u8,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn SendScsiReportLuns(
UniqueSessionId: ?*ISCSI_UNIQUE_SESSION_ID,
ScsiStatus: ?*u8,
ResponseSize: ?*u32,
ResponseBuffer: ?*u8,
SenseSize: ?*u32,
SenseBuffer: ?*u8,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn ReportIScsiInitiatorListW(
BufferSize: ?*u32,
Buffer: ?[*]u16,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn ReportIScsiInitiatorListA(
BufferSize: ?*u32,
Buffer: ?[*]u8,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn ReportActiveIScsiTargetMappingsW(
BufferSize: ?*u32,
MappingCount: ?*u32,
Mappings: ?*ISCSI_TARGET_MAPPINGW,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn ReportActiveIScsiTargetMappingsA(
BufferSize: ?*u32,
MappingCount: ?*u32,
Mappings: ?*ISCSI_TARGET_MAPPINGA,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn SetIScsiTunnelModeOuterAddressW(
InitiatorName: ?PWSTR,
InitiatorPortNumber: u32,
DestinationAddress: ?PWSTR,
OuterModeAddress: ?PWSTR,
Persist: BOOLEAN,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn SetIScsiTunnelModeOuterAddressA(
InitiatorName: ?PSTR,
InitiatorPortNumber: u32,
DestinationAddress: ?PSTR,
OuterModeAddress: ?PSTR,
Persist: BOOLEAN,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn SetIScsiIKEInfoW(
InitiatorName: ?PWSTR,
InitiatorPortNumber: u32,
AuthInfo: ?*IKE_AUTHENTICATION_INFORMATION,
Persist: BOOLEAN,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn SetIScsiIKEInfoA(
InitiatorName: ?PSTR,
InitiatorPortNumber: u32,
AuthInfo: ?*IKE_AUTHENTICATION_INFORMATION,
Persist: BOOLEAN,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn GetIScsiIKEInfoW(
InitiatorName: ?PWSTR,
InitiatorPortNumber: u32,
Reserved: ?*u32,
AuthInfo: ?*IKE_AUTHENTICATION_INFORMATION,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn GetIScsiIKEInfoA(
InitiatorName: ?PSTR,
InitiatorPortNumber: u32,
Reserved: ?*u32,
AuthInfo: ?*IKE_AUTHENTICATION_INFORMATION,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn SetIScsiGroupPresharedKey(
KeyLength: u32,
Key: ?*u8,
Persist: BOOLEAN,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn SetIScsiInitiatorCHAPSharedSecret(
SharedSecretLength: u32,
SharedSecret: ?*u8,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn SetIScsiInitiatorRADIUSSharedSecret(
SharedSecretLength: u32,
SharedSecret: ?*u8,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn SetIScsiInitiatorNodeNameW(
InitiatorNodeName: ?PWSTR,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn SetIScsiInitiatorNodeNameA(
InitiatorNodeName: ?PSTR,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn GetIScsiInitiatorNodeNameW(
InitiatorNodeName: ?[*]u16,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn GetIScsiInitiatorNodeNameA(
InitiatorNodeName: ?[*]u8,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn AddISNSServerW(
Address: ?PWSTR,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn AddISNSServerA(
Address: ?PSTR,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn RemoveISNSServerW(
Address: ?PWSTR,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn RemoveISNSServerA(
Address: ?PSTR,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn RefreshISNSServerW(
Address: ?PWSTR,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn RefreshISNSServerA(
Address: ?PSTR,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn ReportISNSServerListW(
BufferSizeInChar: ?*u32,
Buffer: ?[*]u16,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn ReportISNSServerListA(
BufferSizeInChar: ?*u32,
Buffer: ?[*]u8,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn GetIScsiSessionListW(
BufferSize: ?*u32,
SessionCount: ?*u32,
SessionInfo: ?*ISCSI_SESSION_INFOW,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn GetIScsiSessionListA(
BufferSize: ?*u32,
SessionCount: ?*u32,
SessionInfo: ?*ISCSI_SESSION_INFOA,
) callconv(@import("std").os.windows.WINAPI) u32;
pub extern "iscsidsc" fn GetIScsiSessionListEx(
BufferSize: ?*u32,
SessionCountPtr: ?*u32,
SessionInfo: ?*ISCSI_SESSION_INFO_EX,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn GetDevicesForIScsiSessionW(
UniqueSessionId: ?*ISCSI_UNIQUE_SESSION_ID,
DeviceCount: ?*u32,
Devices: ?*ISCSI_DEVICE_ON_SESSIONW,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn GetDevicesForIScsiSessionA(
UniqueSessionId: ?*ISCSI_UNIQUE_SESSION_ID,
DeviceCount: ?*u32,
Devices: ?*ISCSI_DEVICE_ON_SESSIONA,
) callconv(@import("std").os.windows.WINAPI) u32;
pub extern "iscsidsc" fn SetupPersistentIScsiVolumes(
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn SetupPersistentIScsiDevices(
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn AddPersistentIScsiDeviceW(
DevicePath: ?PWSTR,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn AddPersistentIScsiDeviceA(
DevicePath: ?PSTR,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn RemovePersistentIScsiDeviceW(
DevicePath: ?PWSTR,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn RemovePersistentIScsiDeviceA(
DevicePath: ?PSTR,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn ClearPersistentIScsiDevices(
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn ReportPersistentIScsiDevicesW(
BufferSizeInChar: ?*u32,
Buffer: ?[*]u16,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn ReportPersistentIScsiDevicesA(
BufferSizeInChar: ?*u32,
Buffer: ?[*]u8,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn ReportIScsiTargetPortalsW(
InitiatorName: ?PWSTR,
TargetName: ?PWSTR,
TargetPortalTag: ?*u16,
ElementCount: ?*u32,
Portals: ?*ISCSI_TARGET_PORTALW,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn ReportIScsiTargetPortalsA(
InitiatorName: ?PSTR,
TargetName: ?PSTR,
TargetPortalTag: ?*u16,
ElementCount: ?*u32,
Portals: ?*ISCSI_TARGET_PORTALA,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn AddRadiusServerW(
Address: ?PWSTR,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn AddRadiusServerA(
Address: ?PSTR,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn RemoveRadiusServerW(
Address: ?PWSTR,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn RemoveRadiusServerA(
Address: ?PSTR,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn ReportRadiusServerListW(
BufferSizeInChar: ?*u32,
Buffer: ?[*]u16,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iscsidsc" fn ReportRadiusServerListA(
BufferSizeInChar: ?*u32,
Buffer: ?[*]u8,
) callconv(@import("std").os.windows.WINAPI) u32;
//--------------------------------------------------------------------------------
// Section: Unicode Aliases (42)
//--------------------------------------------------------------------------------
const thismodule = @This();
pub usingnamespace switch (@import("../zig.zig").unicode_mode) {
.ansi => struct {
pub const ISCSI_TARGET_MAPPING = thismodule.ISCSI_TARGET_MAPPINGA;
pub const ISCSI_TARGET_PORTAL = thismodule.ISCSI_TARGET_PORTALA;
pub const ISCSI_TARGET_PORTAL_INFO = thismodule.ISCSI_TARGET_PORTAL_INFOA;
pub const ISCSI_TARGET_PORTAL_INFO_EX = thismodule.ISCSI_TARGET_PORTAL_INFO_EXA;
pub const ISCSI_TARGET_PORTAL_GROUP = thismodule.ISCSI_TARGET_PORTAL_GROUPA;
pub const ISCSI_CONNECTION_INFO = thismodule.ISCSI_CONNECTION_INFOA;
pub const ISCSI_SESSION_INFO = thismodule.ISCSI_SESSION_INFOA;
pub const ISCSI_DEVICE_ON_SESSION = thismodule.ISCSI_DEVICE_ON_SESSIONA;
pub const PERSISTENT_ISCSI_LOGIN_INFO = thismodule.PERSISTENT_ISCSI_LOGIN_INFOA;
pub const GetIScsiTargetInformation = thismodule.GetIScsiTargetInformationA;
pub const AddIScsiConnection = thismodule.AddIScsiConnectionA;
pub const ReportIScsiTargets = thismodule.ReportIScsiTargetsA;
pub const AddIScsiStaticTarget = thismodule.AddIScsiStaticTargetA;
pub const RemoveIScsiStaticTarget = thismodule.RemoveIScsiStaticTargetA;
pub const AddIScsiSendTargetPortal = thismodule.AddIScsiSendTargetPortalA;
pub const RemoveIScsiSendTargetPortal = thismodule.RemoveIScsiSendTargetPortalA;
pub const RefreshIScsiSendTargetPortal = thismodule.RefreshIScsiSendTargetPortalA;
pub const ReportIScsiSendTargetPortals = thismodule.ReportIScsiSendTargetPortalsA;
pub const ReportIScsiSendTargetPortalsEx = thismodule.ReportIScsiSendTargetPortalsExA;
pub const LoginIScsiTarget = thismodule.LoginIScsiTargetA;
pub const ReportIScsiPersistentLogins = thismodule.ReportIScsiPersistentLoginsA;
pub const RemoveIScsiPersistentTarget = thismodule.RemoveIScsiPersistentTargetA;
pub const ReportIScsiInitiatorList = thismodule.ReportIScsiInitiatorListA;
pub const ReportActiveIScsiTargetMappings = thismodule.ReportActiveIScsiTargetMappingsA;
pub const SetIScsiTunnelModeOuterAddress = thismodule.SetIScsiTunnelModeOuterAddressA;
pub const SetIScsiIKEInfo = thismodule.SetIScsiIKEInfoA;
pub const GetIScsiIKEInfo = thismodule.GetIScsiIKEInfoA;
pub const SetIScsiInitiatorNodeName = thismodule.SetIScsiInitiatorNodeNameA;
pub const GetIScsiInitiatorNodeName = thismodule.GetIScsiInitiatorNodeNameA;
pub const AddISNSServer = thismodule.AddISNSServerA;
pub const RemoveISNSServer = thismodule.RemoveISNSServerA;
pub const RefreshISNSServer = thismodule.RefreshISNSServerA;
pub const ReportISNSServerList = thismodule.ReportISNSServerListA;
pub const GetIScsiSessionList = thismodule.GetIScsiSessionListA;
pub const GetDevicesForIScsiSession = thismodule.GetDevicesForIScsiSessionA;
pub const AddPersistentIScsiDevice = thismodule.AddPersistentIScsiDeviceA;
pub const RemovePersistentIScsiDevice = thismodule.RemovePersistentIScsiDeviceA;
pub const ReportPersistentIScsiDevices = thismodule.ReportPersistentIScsiDevicesA;
pub const ReportIScsiTargetPortals = thismodule.ReportIScsiTargetPortalsA;
pub const AddRadiusServer = thismodule.AddRadiusServerA;
pub const RemoveRadiusServer = thismodule.RemoveRadiusServerA;
pub const ReportRadiusServerList = thismodule.ReportRadiusServerListA;
},
.wide => struct {
pub const ISCSI_TARGET_MAPPING = thismodule.ISCSI_TARGET_MAPPINGW;
pub const ISCSI_TARGET_PORTAL = thismodule.ISCSI_TARGET_PORTALW;
pub const ISCSI_TARGET_PORTAL_INFO = thismodule.ISCSI_TARGET_PORTAL_INFOW;
pub const ISCSI_TARGET_PORTAL_INFO_EX = thismodule.ISCSI_TARGET_PORTAL_INFO_EXW;
pub const ISCSI_TARGET_PORTAL_GROUP = thismodule.ISCSI_TARGET_PORTAL_GROUPW;
pub const ISCSI_CONNECTION_INFO = thismodule.ISCSI_CONNECTION_INFOW;
pub const ISCSI_SESSION_INFO = thismodule.ISCSI_SESSION_INFOW;
pub const ISCSI_DEVICE_ON_SESSION = thismodule.ISCSI_DEVICE_ON_SESSIONW;
pub const PERSISTENT_ISCSI_LOGIN_INFO = thismodule.PERSISTENT_ISCSI_LOGIN_INFOW;
pub const GetIScsiTargetInformation = thismodule.GetIScsiTargetInformationW;
pub const AddIScsiConnection = thismodule.AddIScsiConnectionW;
pub const ReportIScsiTargets = thismodule.ReportIScsiTargetsW;
pub const AddIScsiStaticTarget = thismodule.AddIScsiStaticTargetW;
pub const RemoveIScsiStaticTarget = thismodule.RemoveIScsiStaticTargetW;
pub const AddIScsiSendTargetPortal = thismodule.AddIScsiSendTargetPortalW;
pub const RemoveIScsiSendTargetPortal = thismodule.RemoveIScsiSendTargetPortalW;
pub const RefreshIScsiSendTargetPortal = thismodule.RefreshIScsiSendTargetPortalW;
pub const ReportIScsiSendTargetPortals = thismodule.ReportIScsiSendTargetPortalsW;
pub const ReportIScsiSendTargetPortalsEx = thismodule.ReportIScsiSendTargetPortalsExW;
pub const LoginIScsiTarget = thismodule.LoginIScsiTargetW;
pub const ReportIScsiPersistentLogins = thismodule.ReportIScsiPersistentLoginsW;
pub const RemoveIScsiPersistentTarget = thismodule.RemoveIScsiPersistentTargetW;
pub const ReportIScsiInitiatorList = thismodule.ReportIScsiInitiatorListW;
pub const ReportActiveIScsiTargetMappings = thismodule.ReportActiveIScsiTargetMappingsW;
pub const SetIScsiTunnelModeOuterAddress = thismodule.SetIScsiTunnelModeOuterAddressW;
pub const SetIScsiIKEInfo = thismodule.SetIScsiIKEInfoW;
pub const GetIScsiIKEInfo = thismodule.GetIScsiIKEInfoW;
pub const SetIScsiInitiatorNodeName = thismodule.SetIScsiInitiatorNodeNameW;
pub const GetIScsiInitiatorNodeName = thismodule.GetIScsiInitiatorNodeNameW;
pub const AddISNSServer = thismodule.AddISNSServerW;
pub const RemoveISNSServer = thismodule.RemoveISNSServerW;
pub const RefreshISNSServer = thismodule.RefreshISNSServerW;
pub const ReportISNSServerList = thismodule.ReportISNSServerListW;
pub const GetIScsiSessionList = thismodule.GetIScsiSessionListW;
pub const GetDevicesForIScsiSession = thismodule.GetDevicesForIScsiSessionW;
pub const AddPersistentIScsiDevice = thismodule.AddPersistentIScsiDeviceW;
pub const RemovePersistentIScsiDevice = thismodule.RemovePersistentIScsiDeviceW;
pub const ReportPersistentIScsiDevices = thismodule.ReportPersistentIScsiDevicesW;
pub const ReportIScsiTargetPortals = thismodule.ReportIScsiTargetPortalsW;
pub const AddRadiusServer = thismodule.AddRadiusServerW;
pub const RemoveRadiusServer = thismodule.RemoveRadiusServerW;
pub const ReportRadiusServerList = thismodule.ReportRadiusServerListW;
},
.unspecified => if (@import("builtin").is_test) struct {
pub const ISCSI_TARGET_MAPPING = *opaque{};
pub const ISCSI_TARGET_PORTAL = *opaque{};
pub const ISCSI_TARGET_PORTAL_INFO = *opaque{};
pub const ISCSI_TARGET_PORTAL_INFO_EX = *opaque{};
pub const ISCSI_TARGET_PORTAL_GROUP = *opaque{};
pub const ISCSI_CONNECTION_INFO = *opaque{};
pub const ISCSI_SESSION_INFO = *opaque{};
pub const ISCSI_DEVICE_ON_SESSION = *opaque{};
pub const PERSISTENT_ISCSI_LOGIN_INFO = *opaque{};
pub const GetIScsiTargetInformation = *opaque{};
pub const AddIScsiConnection = *opaque{};
pub const ReportIScsiTargets = *opaque{};
pub const AddIScsiStaticTarget = *opaque{};
pub const RemoveIScsiStaticTarget = *opaque{};
pub const AddIScsiSendTargetPortal = *opaque{};
pub const RemoveIScsiSendTargetPortal = *opaque{};
pub const RefreshIScsiSendTargetPortal = *opaque{};
pub const ReportIScsiSendTargetPortals = *opaque{};
pub const ReportIScsiSendTargetPortalsEx = *opaque{};
pub const LoginIScsiTarget = *opaque{};
pub const ReportIScsiPersistentLogins = *opaque{};
pub const RemoveIScsiPersistentTarget = *opaque{};
pub const ReportIScsiInitiatorList = *opaque{};
pub const ReportActiveIScsiTargetMappings = *opaque{};
pub const SetIScsiTunnelModeOuterAddress = *opaque{};
pub const SetIScsiIKEInfo = *opaque{};
pub const GetIScsiIKEInfo = *opaque{};
pub const SetIScsiInitiatorNodeName = *opaque{};
pub const GetIScsiInitiatorNodeName = *opaque{};
pub const AddISNSServer = *opaque{};
pub const RemoveISNSServer = *opaque{};
pub const RefreshISNSServer = *opaque{};
pub const ReportISNSServerList = *opaque{};
pub const GetIScsiSessionList = *opaque{};
pub const GetDevicesForIScsiSession = *opaque{};
pub const AddPersistentIScsiDevice = *opaque{};
pub const RemovePersistentIScsiDevice = *opaque{};
pub const ReportPersistentIScsiDevices = *opaque{};
pub const ReportIScsiTargetPortals = *opaque{};
pub const AddRadiusServer = *opaque{};
pub const RemoveRadiusServer = *opaque{};
pub const ReportRadiusServerList = *opaque{};
} else struct {
pub const ISCSI_TARGET_MAPPING = @compileError("'ISCSI_TARGET_MAPPING' requires that UNICODE be set to true or false in the root module");
pub const ISCSI_TARGET_PORTAL = @compileError("'ISCSI_TARGET_PORTAL' requires that UNICODE be set to true or false in the root module");
pub const ISCSI_TARGET_PORTAL_INFO = @compileError("'ISCSI_TARGET_PORTAL_INFO' requires that UNICODE be set to true or false in the root module");
pub const ISCSI_TARGET_PORTAL_INFO_EX = @compileError("'ISCSI_TARGET_PORTAL_INFO_EX' requires that UNICODE be set to true or false in the root module");
pub const ISCSI_TARGET_PORTAL_GROUP = @compileError("'ISCSI_TARGET_PORTAL_GROUP' requires that UNICODE be set to true or false in the root module");
pub const ISCSI_CONNECTION_INFO = @compileError("'ISCSI_CONNECTION_INFO' requires that UNICODE be set to true or false in the root module");
pub const ISCSI_SESSION_INFO = @compileError("'ISCSI_SESSION_INFO' requires that UNICODE be set to true or false in the root module");
pub const ISCSI_DEVICE_ON_SESSION = @compileError("'ISCSI_DEVICE_ON_SESSION' requires that UNICODE be set to true or false in the root module");
pub const PERSISTENT_ISCSI_LOGIN_INFO = @compileError("'PERSISTENT_ISCSI_LOGIN_INFO' requires that UNICODE be set to true or false in the root module");
pub const GetIScsiTargetInformation = @compileError("'GetIScsiTargetInformation' requires that UNICODE be set to true or false in the root module");
pub const AddIScsiConnection = @compileError("'AddIScsiConnection' requires that UNICODE be set to true or false in the root module");
pub const ReportIScsiTargets = @compileError("'ReportIScsiTargets' requires that UNICODE be set to true or false in the root module");
pub const AddIScsiStaticTarget = @compileError("'AddIScsiStaticTarget' requires that UNICODE be set to true or false in the root module");
pub const RemoveIScsiStaticTarget = @compileError("'RemoveIScsiStaticTarget' requires that UNICODE be set to true or false in the root module");
pub const AddIScsiSendTargetPortal = @compileError("'AddIScsiSendTargetPortal' requires that UNICODE be set to true or false in the root module");
pub const RemoveIScsiSendTargetPortal = @compileError("'RemoveIScsiSendTargetPortal' requires that UNICODE be set to true or false in the root module");
pub const RefreshIScsiSendTargetPortal = @compileError("'RefreshIScsiSendTargetPortal' requires that UNICODE be set to true or false in the root module");
pub const ReportIScsiSendTargetPortals = @compileError("'ReportIScsiSendTargetPortals' requires that UNICODE be set to true or false in the root module");
pub const ReportIScsiSendTargetPortalsEx = @compileError("'ReportIScsiSendTargetPortalsEx' requires that UNICODE be set to true or false in the root module");
pub const LoginIScsiTarget = @compileError("'LoginIScsiTarget' requires that UNICODE be set to true or false in the root module");
pub const ReportIScsiPersistentLogins = @compileError("'ReportIScsiPersistentLogins' requires that UNICODE be set to true or false in the root module");
pub const RemoveIScsiPersistentTarget = @compileError("'RemoveIScsiPersistentTarget' requires that UNICODE be set to true or false in the root module");
pub const ReportIScsiInitiatorList = @compileError("'ReportIScsiInitiatorList' requires that UNICODE be set to true or false in the root module");
pub const ReportActiveIScsiTargetMappings = @compileError("'ReportActiveIScsiTargetMappings' requires that UNICODE be set to true or false in the root module");
pub const SetIScsiTunnelModeOuterAddress = @compileError("'SetIScsiTunnelModeOuterAddress' requires that UNICODE be set to true or false in the root module");
pub const SetIScsiIKEInfo = @compileError("'SetIScsiIKEInfo' requires that UNICODE be set to true or false in the root module");
pub const GetIScsiIKEInfo = @compileError("'GetIScsiIKEInfo' requires that UNICODE be set to true or false in the root module");
pub const SetIScsiInitiatorNodeName = @compileError("'SetIScsiInitiatorNodeName' requires that UNICODE be set to true or false in the root module");
pub const GetIScsiInitiatorNodeName = @compileError("'GetIScsiInitiatorNodeName' requires that UNICODE be set to true or false in the root module");
pub const AddISNSServer = @compileError("'AddISNSServer' requires that UNICODE be set to true or false in the root module");
pub const RemoveISNSServer = @compileError("'RemoveISNSServer' requires that UNICODE be set to true or false in the root module");
pub const RefreshISNSServer = @compileError("'RefreshISNSServer' requires that UNICODE be set to true or false in the root module");
pub const ReportISNSServerList = @compileError("'ReportISNSServerList' requires that UNICODE be set to true or false in the root module");
pub const GetIScsiSessionList = @compileError("'GetIScsiSessionList' requires that UNICODE be set to true or false in the root module");
pub const GetDevicesForIScsiSession = @compileError("'GetDevicesForIScsiSession' requires that UNICODE be set to true or false in the root module");
pub const AddPersistentIScsiDevice = @compileError("'AddPersistentIScsiDevice' requires that UNICODE be set to true or false in the root module");
pub const RemovePersistentIScsiDevice = @compileError("'RemovePersistentIScsiDevice' requires that UNICODE be set to true or false in the root module");
pub const ReportPersistentIScsiDevices = @compileError("'ReportPersistentIScsiDevices' requires that UNICODE be set to true or false in the root module");
pub const ReportIScsiTargetPortals = @compileError("'ReportIScsiTargetPortals' requires that UNICODE be set to true or false in the root module");
pub const AddRadiusServer = @compileError("'AddRadiusServer' requires that UNICODE be set to true or false in the root module");
pub const RemoveRadiusServer = @compileError("'RemoveRadiusServer' requires that UNICODE be set to true or false in the root module");
pub const ReportRadiusServerList = @compileError("'ReportRadiusServerList' requires that UNICODE be set to true or false in the root module");
},
};
//--------------------------------------------------------------------------------
// Section: Imports (7)
//--------------------------------------------------------------------------------
const Guid = @import("../zig.zig").Guid;
const BOOLEAN = @import("../foundation.zig").BOOLEAN;
const CHAR = @import("../foundation.zig").CHAR;
const LARGE_INTEGER = @import("../foundation.zig").LARGE_INTEGER;
const PSTR = @import("../foundation.zig").PSTR;
const PWSTR = @import("../foundation.zig").PWSTR;
const STORAGE_DEVICE_NUMBER = @import("../system/ioctl.zig").STORAGE_DEVICE_NUMBER;
test {
// The following '_ = <FuncPtrType>' lines are a workaround for https://github.com/ziglang/zig/issues/4476
if (@hasDecl(@This(), "DUMP_DEVICE_POWERON_ROUTINE")) { _ = DUMP_DEVICE_POWERON_ROUTINE; }
if (@hasDecl(@This(), "PDUMP_DEVICE_POWERON_ROUTINE")) { _ = PDUMP_DEVICE_POWERON_ROUTINE; }
@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);
}
}