/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the mingw-w64 runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
#ifndef _INC_ISCSIDSC
#define _INC_ISCSIDSC
#include <ntddscsi.h>
#if (_WIN32_WINNT >= 0x0600)
#ifdef __cplusplus
extern "C" {
#endif
typedef enum {
ISCSI_NO_AUTH_TYPE = 0,
ISCSI_CHAP_AUTH_TYPE = 1,
ISCSI_MUTUAL_CHAP_AUTH_TYPE = 2
} ISCSI_AUTH_TYPES;
typedef enum {
ISCSI_DIGEST_TYPE_NONE = 0,
ISCSI_DIGEST_TYPE_CRC32C = 1
} ISCSI_DIGEST_TYPES;
typedef ULONG ISCSI_LOGIN_OPTIONS_INFO_SPECIFIED,
*PISCSI_LOGIN_OPTIONS_INFO_SPECIFIED;
#define ISCSI_LOGIN_OPTIONS_HEADER_DIGEST 0x00000001
#define ISCSI_LOGIN_OPTIONS_DATA_DIGEST 0x00000002
#define ISCSI_LOGIN_OPTIONS_MAXIMUM_CONNECTIONS 0x00000004
#define ISCSI_LOGIN_OPTIONS_DEFAULT_TIME_2_WAIT 0x00000008
#define ISCSI_LOGIN_OPTIONS_DEFAULT_TIME_2_RETAIN 0x00000010
#define ISCSI_LOGIN_OPTIONS_USERNAME 0x00000020
#define ISCSI_LOGIN_OPTIONS_PASSWORD 0x00000040
#define ISCSI_LOGIN_OPTIONS_AUTH_TYPE 0x00000080
#define ISCSI_LOGIN_OPTIONS_VERSION 0x00000000
typedef ULONG ISCSI_LOGIN_FLAGS,
*PISCSI_LOGIN_FLAGS;
#define ISCSI_LOGIN_FLAG_REQUIRE_IPSEC 0x00000001
#define ISCSI_LOGIN_FLAG_MULTIPATH_ENABLED 0x00000002
#define ISCSI_LOGIN_FLAG_RESERVED1 0x00000004
#define ISCSI_LOGIN_FLAG_ALLOW_PORTAL_HOPPING 0x00000008
#define ISCSI_LOGIN_FLAG_USE_RADIUS_RESPONSE 0x00000010
#define ISCSI_LOGIN_FLAG_USE_RADIUS_VERIFICATION 0x00000020
typedef ULONGLONG ISCSI_SECURITY_FLAGS,
*PISCSI_SECURITY_FLAGS;
#define ISCSI_SECURITY_FLAG_VALID 0x00000001
#define ISCSI_SECURITY_FLAG_IKE_IPSEC_ENABLED 0x00000002
#define ISCSI_SECURITY_FLAG_MAIN_MODE_ENABLED 0x00000004
#define ISCSI_SECURITY_FLAG_AGGRESSIVE_MODE_ENABLED 0x00000008
#define ISCSI_SECURITY_FLAG_PFS_ENABLED 0x00000010
#define ISCSI_SECURITY_FLAG_TRANSPORT_MODE_PREFERRED 0x00000020
#define ISCSI_SECURITY_FLAG_TUNNEL_MODE_PREFERRED 0x00000040
#define AddIScsiConnection __MINGW_NAME_AW(AddIScsiConnection)
#define AddIScsiSendTargetPortal __MINGW_NAME_AW(AddIScsiSendTargetPortal)
#define AddIScsiStaticTarget __MINGW_NAME_AW(AddIScsiStaticTarget)
#define RemoveIScsiStaticTarget __MINGW_NAME_AW(RemoveIScsiStaticTarget)
#define AddISNSServer __MINGW_NAME_AW(AddISNSServer)
#define AddPersistentiScsiDevice __MINGW_NAME_AW(AddPersistentiScsiDevice)
#define RemoveIScsiPersistentTarget __MINGW_NAME_AW(RemoveIScsiPersistentTarget)
#define RemovePersistentIScsiDevice __MINGW_NAME_AW(RemovePersistentIScsiDevice)
#define PERSISTENT_ISCSI_LOGIN_INFO __MINGW_NAME_AW(PERSISTENT_ISCSI_LOGIN_INFO)
#define AddRadiusServer __MINGW_NAME_AW(AddRadiusServer)
#define RemoveRadiusServer __MINGW_NAME_AW(RemoveRadiusServer)
#define MAX_ISCSI_PORTAL_NAME_LEN 256
#define MAX_ISCSI_PORTAL_ADDRESS_LEN 256
#define MAX_ISCSI_HBANAME_LEN 256
typedef enum _TARGET_INFORMATION_CLASS {
ProtocolType,
TargetAlias,
DiscoveryMechanisms,
PortalGroups,
PersistentTargetMappings,
InitiatorName,
TargetFlags,
LoginOptions
} TARGET_INFORMATION_CLASS;
typedef enum _TARGETPROTOCOLTYPE {
ISCSI_TCP_PROTOCOL_TYPE
} TARGETPROTOCOLTYPE;
typedef enum _IKE_AUTHENTICATION_METHOD {
IKE_AUTHENTICATION_PRESHARED_KEY_METHOD = 1
} IKE_AUTHENTICATION_METHOD, *PIKE_AUTHENTICATION_METHOD;
typedef struct _ISCSI_LOGIN_OPTIONS {
ULONG Version;
ISCSI_LOGIN_OPTIONS_INFO_SPECIFIED InformationSpecified;
ISCSI_LOGIN_FLAGS LoginFlags;
ISCSI_AUTH_TYPES AuthType;
ISCSI_DIGEST_TYPES HeaderDigest;
ISCSI_DIGEST_TYPES DataDigest;
ULONG MaximumConnections;
ULONG DefaultTime2Wait;
ULONG DefaultTime2Retain;
ULONG UsernameLength;
ULONG PasswordLength;
PUCHAR Username;
PUCHAR Password;
} ISCSI_LOGIN_OPTIONS, *PISCSI_LOGIN_OPTIONS, *PSCSI_LOGIN_OPTIONS, *PISCI_LOGIN_OPTIONS;
typedef struct _ISCSI_TARGET_PORTALA {
CHAR SymbolicName[MAX_ISCSI_PORTAL_NAME_LEN];
CHAR Address[MAX_ISCSI_PORTAL_ADDRESS_LEN];
USHORT Socket;
} ISCSI_TARGET_PORTALA, *PISCSI_TARGET_PORTALA;
typedef struct _ISCSI_TARGET_PORTALW {
WCHAR SymbolicName[MAX_ISCSI_PORTAL_NAME_LEN];
WCHAR Address[MAX_ISCSI_PORTAL_ADDRESS_LEN];
USHORT Socket;
} ISCSI_TARGET_PORTALW, *PISCSI_TARGET_PORTALW;
typedef struct _ISCSI_TARGET_PORTAL_GROUPA {
ULONG Count;
ISCSI_TARGET_PORTALA Portals[1];
} ISCSI_TARGET_PORTAL_GROUPA, *PISCSI_TARGET_PORTAL_GROUPA;
typedef struct _ISCSI_TARGET_PORTAL_GROUPW {
ULONG Count;
ISCSI_TARGET_PORTALW Portals[1];
} ISCSI_TARGET_PORTAL_GROUPW, *PISCSI_TARGET_PORTAL_GROUPW;
typedef struct _ISCSI_LUN_LIST {
ULONG OSLUN;
ULONGLONG TargetLUN;
} SCSI_LUN_LIST, *PSCSI_LUN_LIST;
typedef struct _ISCSI_UNIQUE_SESSION_ID {
ULONGLONG AdapterUnique;
ULONGLONG AdapterSpecific;
}
ISCSI_UNIQUE_SESSION_ID, *PISCSI_UNIQUE_SESSION_ID,
ISCSI_UNIQUE_CONNECTION_ID, *PISCSI_UNIQUE_CONNECTION_ID;
typedef struct _ISCSI_TARGET_MAPPINGA {
CHAR InitiatorName[MAX_ISCSI_HBANAME_LEN];
CHAR TargetName[MAX_ISCSI_NAME_LEN];
CHAR OSDeviceName[MAX_PATH];
ISCSI_UNIQUE_SESSION_ID SessionId;
ULONG OSBusNumber;
ULONG OSTargetNumber;
ULONG LUNCount;
PSCSI_LUN_LIST LUNList;
} ISCSI_TARGET_MAPPINGA, *PISCSI_TARGET_MAPPINGA;
typedef struct _ISCSI_TARGET_MAPPINGW {
WCHAR InitiatorName[MAX_ISCSI_HBANAME_LEN];
WCHAR TargetName[MAX_ISCSI_NAME_LEN];
WCHAR OSDeviceName[MAX_PATH];
ISCSI_UNIQUE_SESSION_ID SessionId;
ULONG OSBusNumber;
ULONG OSTargetNumber;
ULONG LUNCount;
PSCSI_LUN_LIST LUNList;
} ISCSI_TARGET_MAPPINGW, *PISCSI_TARGET_MAPPINGW;
typedef struct _PERSISTENT_ISCSI_LOGIN_INFOA {
CHAR TargetName[MAX_ISCSI_NAME_LEN];
BOOLEAN IsInformationalSession;
CHAR InitiatorInstance[MAX_ISCSI_HBANAME_LEN];
ULONG InitiatorPortNumber;
ISCSI_TARGET_PORTALA TargetPortal;
ISCSI_SECURITY_FLAGS SecurityFlags;
PISCSI_TARGET_MAPPINGA Mappings;
ISCSI_LOGIN_OPTIONS LoginOptions;
} PERSISTENT_ISCSI_LOGIN_INFOA, *PPERSISTENT_ISCSI_LOGIN_INFOA;
typedef struct _PERSISTENT_ISCSI_LOGIN_INFOW {
CHAR TargetName[MAX_ISCSI_NAME_LEN];
BOOLEAN IsInformationalSession;
CHAR InitiatorInstance[MAX_ISCSI_HBANAME_LEN];
ULONG InitiatorPortNumber;
ISCSI_TARGET_PORTALW TargetPortal;
ISCSI_SECURITY_FLAGS SecurityFlags;
PISCSI_TARGET_MAPPINGW Mappings;
ISCSI_LOGIN_OPTIONS LoginOptions;
} PERSISTENT_ISCSI_LOGIN_INFOW, *PPERSISTENT_ISCSI_LOGIN_INFOW;
typedef UCHAR IKE_IDENTIFICATION_PAYLOAD_TYPE, *PIKE_IDENTIFICATION_PAYLOAD_TYPE;
typedef struct _IKE_AUTHENTICATION_PRESHARED_KEY {
ISCSI_SECURITY_FLAGS SecurityFlags;
IKE_IDENTIFICATION_PAYLOAD_TYPE IdType;
ULONG IdLengthInBytes;
PUCHAR Id;
ULONG KeyLengthInBytes;
PUCHAR Key;
} IKE_AUTHENTICATION_PRESHARED_KEY, *PIKE_AUTHENTICATION_PRESHARED_KEY;
typedef struct _IKE_AUTHENTICATION_INFORMATION {
IKE_AUTHENTICATION_METHOD AuthMethod;
__C89_NAMELESS union {
IKE_AUTHENTICATION_PRESHARED_KEY PsKey;
};
} IKE_AUTHENTICATION_INFORMATION, *PIKE_AUTHENTICATION_INFORMATION;
typedef struct _ISCSI_CONNECTION_INFOA {
ISCSI_UNIQUE_CONNECTION_ID ConnectionId;
CHAR InitiatorAddress;
CHAR TargetAddress;
USHORT InitiatorSocket;
USHORT TargetSocket;
UCHAR CID[2];
} ISCSI_CONNECTION_INFOA, *PISCSI_CONNECTION_INFOA;
typedef struct _ISCSI_CONNECTION_INFO {
ISCSI_UNIQUE_CONNECTION_ID ConnectionId;
TCHAR InitiatorAddress;
TCHAR TargetAddress;
USHORT InitiatorSocket;
USHORT TargetSocket;
UCHAR CID[2];
} ISCSI_CONNECTION_INFOW, *PISCSI_CONNECTION_INFOW;
typedef struct _ISCSI_SESSION_INFOA {
ISCSI_UNIQUE_SESSION_ID SessionId;
CHAR InitiatorName;
CHAR TargetName;
CHAR TargetNodeName;
UCHAR ISID[6];
UCHAR TSID[2];
ULONG ConnectionCount;
PISCSI_CONNECTION_INFOA Connections;
} ISCSI_SESSION_INFOA, *PISCSI_SESSION_INFOA;
typedef struct _ISCSI_SESSION_INFO {
ISCSI_UNIQUE_SESSION_ID SessionId;
WCHAR InitiatorName;
WCHAR TargetName;
WCHAR TargetNodeName;
UCHAR ISID[6];
UCHAR TSID[2];
ULONG ConnectionCount;
PISCSI_CONNECTION_INFOW Connections;
} ISCSI_SESSION_INFOW, *PISCSI_SESSION_INFOW;
typedef struct _ISCSI_VERSION_INFO {
ULONG MajorVersion;
ULONG MinorVersion;
ULONG BuildNumber;
} ISCSI_VERSION_INFO, *PISCSI_VERSION_INFO;
typedef struct _ISCSI_TARGET_PORTAL_INFOA {
CHAR InitiatorName[MAX_ISCSI_HBANAME_LEN];
ULONG InitiatorPortNumber;
CHAR SymbolicName[MAX_ISCSI_PORTAL_NAME_LEN];
CHAR Address[MAX_ISCSI_PORTAL_ADDRESS_LEN];
USHORT Socket;
} ISCSI_TARGET_PORTAL_INFOA, *PISCSI_TARGET_PORTAL_INFOA;
typedef struct _ISCSI_TARGET_PORTAL_INFOW {
WCHAR InitiatorName[MAX_ISCSI_HBANAME_LEN];
ULONG InitiatorPortNumber;
WCHAR SymbolicName[MAX_ISCSI_PORTAL_NAME_LEN];
WCHAR Address[MAX_ISCSI_PORTAL_ADDRESS_LEN];
USHORT Socket;
} ISCSI_TARGET_PORTAL_INFOW, *PISCSI_TARGET_PORTAL_INFOW;
typedef struct _ISCSI_TARGET_PORTAL_INFO_EXA {
CHAR InitiatorName[MAX_ISCSI_HBANAME_LEN];
ULONG InitiatorPortNumber;
CHAR SymbolicName[MAX_ISCSI_PORTAL_NAME_LEN];
CHAR Address[MAX_ISCSI_PORTAL_ADDRESS_LEN];
USHORT Socket;
ISCSI_SECURITY_FLAGS SecurityFlags;
ISCSI_LOGIN_OPTIONS LoginOptions;
} ISCSI_TARGET_PORTAL_INFO_EX, *PISCSI_TARGET_PORTAL_INFO_EX;
typedef struct _ISCSI_TARGET_PORTAL_INFO_EXW {
WCHAR InitiatorName[MAX_ISCSI_HBANAME_LEN];
ULONG InitiatorPortNumber;
WCHAR SymbolicName[MAX_ISCSI_PORTAL_NAME_LEN];
WCHAR Address[MAX_ISCSI_PORTAL_ADDRESS_LEN];
USHORT Socket;
ISCSI_SECURITY_FLAGS SecurityFlags;
ISCSI_LOGIN_OPTIONS LoginOptions;
} ISCSI_TARGET_PORTAL_INFO_EX, *PISCSI_TARGET_PORTAL_INFO_EX;
__MINGW_TYPEDEF_AW(ISCSI_CONNECTION_INFO)
__MINGW_TYPEDEF_AW(PISCSI_CONNECTION_INFO)
__MINGW_TYPEDEF_AW(ISCSI_SESSION_INFO)
__MINGW_TYPEDEF_AW(PISCSI_SESSION_INFO)
__MINGW_TYPEDEF_AW(ISCSI_TARGET_PORTAL_GROUP)
__MINGW_TYPEDEF_AW(PISCSI_TARGET_PORTAL_GROUP)
__MINGW_TYPEDEF_AW(ISCSI_TARGET_PORTAL)
__MINGW_TYPEDEF_AW(PISCSI_TARGET_PORTAL)
__MINGW_TYPEDEF_AW(ISCSI_TARGET_MAPPING)
__MINGW_TYPEDEF_AW(PISCSI_TARGET_MAPPING)
__MINGW_TYPEDEF_AW(ISCSI_TARGET_PORTAL_INFO)
__MINGW_TYPEDEF_AW(PISCSI_TARGET_PORTAL_INFO)
__MINGW_TYPEDEF_AW(ISCSI_TARGET_PORTAL_INFO_EX)
__MINGW_TYPEDEF_AW(PISCSI_TARGET_PORTAL_INFO_EX)
typedef ULONG ISCSI_TARGET_FLAGS;
HRESULT WINAPI AddIScsiConnectionA(PISCSI_UNIQUE_SESSION_ID UniqueSessionId,PVOID Reserved,ULONG InitiatorPortNumber,PISCSI_TARGET_PORTALA TargetPortal,ISCSI_SECURITY_FLAGS SecurityFlags,PSCSI_LOGIN_OPTIONS LoginOptions,ULONG KeySize,PCHAR Key,PISCSI_UNIQUE_CONNECTION_ID ConnectionId);
HRESULT WINAPI AddIScsiConnectionW(PISCSI_UNIQUE_SESSION_ID UniqueSessionId,PVOID Reserved,ULONG InitiatorPortNumber,PISCSI_TARGET_PORTALW TargetPortal,ISCSI_SECURITY_FLAGS SecurityFlags,PSCSI_LOGIN_OPTIONS LoginOptions,ULONG KeySize,PCHAR Key,PISCSI_UNIQUE_CONNECTION_ID ConnectionId);
HRESULT WINAPI AddIScsiSendTargetPortalA(PCHAR InitiatorName,ULONG InitiatorPortNumber,PISCI_LOGIN_OPTIONS LoginOptions,ISCSI_SECURITY_FLAGS SecurityFlags,PISCSI_TARGET_PORTALA Portal);
HRESULT WINAPI AddIScsiSendTargetPortalW(PWCHAR InitiatorName,ULONG InitiatorPortNumber,PISCI_LOGIN_OPTIONS LoginOptions,ISCSI_SECURITY_FLAGS SecurityFlags,PISCSI_TARGET_PORTALW Portal);
HRESULT WINAPI AddIScsiStaticTargetA(PCHAR TargetName,PCHAR TargetAlias,ISCSI_TARGET_FLAGS TargetFlags,BOOLEAN Persist,PISCSI_TARGET_MAPPINGA Mappings,PISCSI_LOGIN_OPTIONS LoginOptions,PISCSI_TARGET_PORTAL_GROUPA PortalGroup);
HRESULT WINAPI AddIScsiStaticTargetW(PWCHAR TargetName,PWCHAR TargetAlias,ISCSI_TARGET_FLAGS TargetFlags,BOOLEAN Persist,PISCSI_TARGET_MAPPINGW Mappings,PISCSI_LOGIN_OPTIONS LoginOptions,PISCSI_TARGET_PORTAL_GROUPW PortalGroup);
HRESULT WINAPI AddISNSServerA(PCHAR Address);
HRESULT WINAPI AddISNSServerW(PWCHAR Address);
HRESULT WINAPI AddRadiusServerA(PCHAR Address);
HRESULT WINAPI AddRadiusServerW(PWCHAR Address);
HRESULT WINAPI AddPersistentiScsiDeviceA(PCHAR VolumePath);
HRESULT WINAPI AddPersistentiScsiDeviceW(PWCHAR VolumePath);
HRESULT WINAPI ClearPersistentiScsiDevices(void);
HRESULT WINAPI RemoveIScsiPersistentTargetA(PCHAR InitiatorInstance,ULONG InitiatorPortNumber,PCHAR TargetName,PISCSI_TARGET_PORTALA Portal);
HRESULT WINAPI RemoveIScsiPersistentTargetW(PWCHAR InitiatorInstance,ULONG InitiatorPortNumber,PWCHAR TargetName,PISCSI_TARGET_PORTALW Portal);
HRESULT WINAPI RemoveIScsiStaticTargetA(PCHAR TargetName);
HRESULT WINAPI RemoveIScsiStaticTargetW(PWCHAR TargetName);
HRESULT WINAPI RemovePersistentIScsiDeviceA(PCHAR VolumePath);
HRESULT WINAPI RemovePersistentIScsiDeviceW(PWCHAR VolumePath);
HRESULT WINAPI RemoveRadiusServerA(PCHAR Address);
HRESULT WINAPI RemoveRadiusServerW(PWCHAR Address);
HRESULT WINAPI SetupPersistentIScsiDevices(void);
HRESULT WINAPI SendScsiInquiry(PISCSI_UNIQUE_SESSION_ID *UniqueSessionId,ULONGLONG Lun,UCHAR EvpdCmddt,UCHAR PageCode,PUCHAR *ScsiStatus,PULONG *ReponseSize,PUCHAR ReponseBuffer,PULONG *SenseSize,PUCHAR SenseBuffer);
HRESULT WINAPI SendScsiReadCapacity(PISCSI_UNIQUE_SESSION_ID UniqueSessionId,ULONGLONG Lun,PUCHAR *ScsiStatus,PULONG *ResponseSize,PUCHAR ResponseBuffer,PULONG *SenseSize,PUCHAR SenseBuffer);
HRESULT WINAPI SendScsiReportLuns(PISCSI_UNIQUE_SESSION_ID UniqueSessionId,PUCHAR *ScsiStatus,PULONG *ResponseSize,PUCHAR ResponseBuffer,PULONG *SenseSize,PUCHAR SenseBuffer);
typedef struct _ISCSI_DEVICE_ON_SESSION {
TCHAR InitiatorName[MAX_ISCSI_HBANAME_LEN];
TCHAR TargetName[MAX_ISCSI_NAME_LEN + 1];
SCSI_ADDRESS ScsiAddress;
GUID DeviceInterfaceType;
TCHAR DeviceInterfaceName[MAX_PATH];
TCHAR LegacyName[MAX_PATH];
STORAGE_DEVICE_NUMBER StorageDeviceNumber;
DWORD DeviceInstance;
} ISCSI_DEVICE_ON_SESSION, *PISCSI_DEVICE_ON_SESSION;
HRESULT WINAPI GetDevicesForiSCSISession(
PISCSI_UNIQUE_SESSION_ID UniqueSessionId,
ULONG *DeviceCount,
PISCSI_DEVICE_ON_SESSION Devices
);
#define GetIScsiIKEInfo __MINGW_NAME_AW(GetIScsiIKEInfo)
HRESULT WINAPI GetIScsiIKEInfoA(
PCHAR InitiatorName,
ULONG PortNumber,
PULONG Reserved,
PIKE_AUTHENTICATION_INFORMATION *AuthInfo
);
HRESULT WINAPI GetIScsiIKEInfoW(
PWCHAR InitiatorName,
ULONG PortNumber,
PULONG Reserved,
PIKE_AUTHENTICATION_INFORMATION *AuthInfo
);
#define GetIScsiInitiatorNodeName __MINGW_NAME_AW(GetIScsiInitiatorNodeName)
HRESULT WINAPI GetIScsiInitiatorNodeNameA(
PCHAR InitiatorNodeName
);
HRESULT WINAPI GetIScsiInitiatorNodeNameW(
PWCHAR InitiatorNodeName
);
#define GetIScsiSessionList __MINGW_NAME_AW(GetIScsiSessionList)
HRESULT WINAPI GetIScsiSessionListA(
ULONG *BufferSize,
ULONG *SessionCount,
PISCSI_SESSION_INFOA SessionInfo
);
HRESULT WINAPI GetIScsiSessionListW(
ULONG *BufferSize,
ULONG *SessionCount,
PISCSI_SESSION_INFOW SessionInfo
);
#define GetIScsiTargetInformation __MINGW_NAME_AW(GetIScsiTargetInformation)
HRESULT WINAPI GetIScsiTargetInformationA(
PCHAR TargetName,
PCHAR DiscoveryMechanism,
TARGET_INFORMATION_CLASS InfoClass,
PULONG BufferSize,
PVOID Buffer
);
HRESULT WINAPI GetIScsiTargetInformationW(
PWCHAR TargetName,
PWCHAR DiscoveryMechanism,
TARGET_INFORMATION_CLASS InfoClass,
PULONG BufferSize,
PVOID Buffer
);
HRESULT WINAPI GetIScsiVersionInformation(
PISCSI_VERSION_INFO VersionInfo
);
HRESULT WINAPI LoginIScsiTargetA(
PCHAR TargetName,
BOOLEAN IsInformationalSession,
PCHAR InitiatorName,
ULONG InitiatorPortNumber,
PISCSI_TARGET_PORTALA TargetPortal,
ISCSI_SECURITY_FLAGS SecurityFlags,
PISCSI_TARGET_MAPPINGA Mappings,
PISCSI_LOGIN_OPTIONS LoginOptions,
ULONG KeySize,
PCHAR Key,
BOOLEAN IsPersistent,
PISCSI_UNIQUE_SESSION_ID UniqueSessionId,
PISCSI_UNIQUE_CONNECTION_ID UniqueConnectionId
);
HRESULT WINAPI LoginIScsiTargetW(
PWCHAR TargetName,
BOOLEAN IsInformationalSession,
PWCHAR InitiatorName,
ULONG InitiatorPortNumber,
PISCSI_TARGET_PORTALW TargetPortal,
ISCSI_SECURITY_FLAGS SecurityFlags,
PISCSI_TARGET_MAPPINGW Mappings,
PISCSI_LOGIN_OPTIONS LoginOptions,
ULONG KeySize,
PCHAR Key,
BOOLEAN IsPersistent,
PISCSI_UNIQUE_SESSION_ID UniqueSessionId,
PISCSI_UNIQUE_CONNECTION_ID UniqueConnectionId
);
HRESULT WINAPI LogoutIScsiTarget(
PISCSI_UNIQUE_SESSION_ID UniqueSessionId
);
HRESULT WINAPI RefreshIScsiSendTargetPortalA(
PCHAR InitiatorInstance,
ULONG InitiatorPortNumber,
PISCSI_TARGET_PORTALA Portal
);
HRESULT WINAPI RefreshIScsiSendTargetPortalW(
PWCHAR InitiatorInstance,
ULONG InitiatorPortNumber,
PISCSI_TARGET_PORTALW Portal
);
#define RefreshIScsiSendTargetPortal __MINGW_NAME_AW(RefreshIScsiSendTargetPortal)
HRESULT WINAPI RefreshISNSServerA(
PCHAR Address
);
HRESULT WINAPI RefreshISNSServerW(
PWCHAR Address
);
#define RefreshISNSServer __MINGW_NAME_AW(RefreshISNSServer)
HRESULT WINAPI RemoveIScsiConnection(
PISCSI_UNIQUE_SESSION_ID UniqueSessionId,
PISCSI_UNIQUE_CONNECTION_ID UniqueConnectionId
);
HRESULT WINAPI RemoveIScsiPersistentTargetA(
PCHAR InitiatorInstance,
ULONG InitiatorPortNumber,
PCHAR TargetName,
PISCSI_TARGET_PORTALA Portal
);
HRESULT WINAPI RemoveIScsiPersistentTargetW(
PWCHAR InitiatorInstance,
ULONG InitiatorPortNumber,
PWCHAR TargetName,
PISCSI_TARGET_PORTALW Portal
);
#define RemoveIScsiPersistentTarget __MINGW_NAME_AW(RemoveIScsiPersistentTarget)
HRESULT WINAPI RemoveIScsiSendTargetPortalA(
PCHAR InitiatorInstance,
ULONG InitiatorPortNumber,
PISCSI_TARGET_PORTALA Portal
);
HRESULT WINAPI RemoveIScsiSendTargetPortalW(
PWCHAR InitiatorInstance,
ULONG InitiatorPortNumber,
PISCSI_TARGET_PORTALW Portal
);
#define RemoveIScsiSendTargetPortal __MINGW_NAME_AW(RemoveIScsiSendTargetPortal)
HRESULT WINAPI RemoveIScsiStaticTargetA(
PCHAR TargetName
);
HRESULT WINAPI RemoveIScsiStaticTargetW(
PWCHAR TargetName
);
#define RemoveIScsiStaticTarget __MINGW_NAME_AW(RemoveIScsiStaticTarget)
HRESULT WINAPI RemoveISNSServerA(
PCHAR Address
);
HRESULT WINAPI RemoveISNSServerW(
PWCHAR Address
);
#define RemoveISNSServer __MINGW_NAME_AW(RemoveISNSServer)
HRESULT WINAPI RemovePersistentIScsiDeviceA(
PCHAR VolumePath
);
HRESULT WINAPI RemovePersistentIScsiDeviceW(
PWCHAR VolumePath
);
#define RemovePersistentIScsiDevice __MINGW_NAME_AW(RemovePersistentIScsiDevice)
HRESULT WINAPI RemoveRadiusServerA(
PCHAR Address
);
HRESULT WINAPI RemoveRadiusServerW(
PWCHAR Address
);
#define RemoveRadiusServer __MINGW_NAME_AW(RemoveRadiusServer)
HRESULT WINAPI ReportIScsiInitiatorListA(
ULONG *BufferSize,
PCHAR Buffer
);
HRESULT WINAPI ReportIScsiInitiatorListW(
ULONG *BufferSize,
PWCHAR Buffer
);
HRESULT WINAPI ReportIScsiPersistentLoginsA(
ULONG *Count,
PPERSISTENT_ISCSI_LOGIN_INFOA PersistentLoginInfo,
PULONG BufferSizeInBytes
);
HRESULT WINAPI ReportIScsiPersistentLoginsW(
ULONG *Count,
PPERSISTENT_ISCSI_LOGIN_INFOW PersistentLoginInfo,
PULONG BufferSizeInBytes
);
#define ReportIScsiPersistentLogins __MINGW_NAME_AW(ReportIScsiPersistentLogins)
HRESULT WINAPI ReportIScsiSendTargetPortalsA(
PULONG PortalCount,
PISCSI_TARGET_PORTAL_INFOA PortalInfo
);
HRESULT WINAPI ReportIScsiSendTargetPortalsW(
PULONG PortalCount,
PISCSI_TARGET_PORTAL_INFOA PortalInfo
);
#define ReportIScsiSendTargetPortals __MINGW_NAME_AW(ReportIScsiSendTargetPortals)
HRESULT WINAPI ReportActiveIScsiTargetMappingsA(
PULONG BufferSize,
PULONG MappingCount,
PISCSI_TARGET_MAPPINGA Mappings
);
HRESULT WINAPI ReportActiveIScsiTargetMappingsW(
PULONG BufferSize,
PULONG MappingCount,
PISCSI_TARGET_MAPPINGW Mappings
);
#define ReportActiveIScsiTargetMappings __MINGW_NAME_AW(ReportActiveIScsiTargetMappings)
HRESULT WINAPI ReportIScsiSendTargetPortalsExA(
PULONG PortalCount,
PULONG PortalInfoSize,
PISCSI_TARGET_PORTAL_INFO_EXA PortalInfo
);
HRESULT WINAPI ReportIScsiSendTargetPortalsExW(
PULONG PortalCount,
PULONG PortalInfoSize,
PISCSI_TARGET_PORTAL_INFO_EXW PortalInfo
);
#define ReportIScsiSendTargetPortalsEx __MINGW_NAME_AW(ReportIScsiSendTargetPortalsEx)
HRESULT WINAPI ReportIScsiTargetPortalsA(
PCHAR InitiatorName,
PCHAR TargetName,
PUSHORT TargetPortalTag,
PULONG ElementCount,
PISCSI_TARGET_PORTALA Portals
);
HRESULT WINAPI ReportIScsiTargetPortalsW(
PWCHAR InitiatorName,
PWCHAR TargetName,
PUSHORT TargetPortalTag,
PULONG ElementCount,
PISCSI_TARGET_PORTALW Portals
);
#define ReportIScsiTargetPortals __MINGW_NAME_AW(ReportIScsiTargetPortals)
HRESULT WINAPI ReportIScsiTargetsA(
BOOLEAN ForceUpdate,
PULONG BufferSize,
PCHAR Buffer
);
HRESULT WINAPI ReportIScsiTargetsW(
BOOLEAN ForceUpdate,
PULONG BufferSize,
PWCHAR Buffer
);
#define ReportIScsiTargets __MINGW_NAME_AW(ReportIScsiTargets)
HRESULT WINAPI ReportISNSServerListA(
PULONG BufferSizeInChar,
PCHAR Buffer
);
HRESULT WINAPI ReportISNSServerListW(
PULONG BufferSizeInChar,
PWCHAR Buffer
);
#define ReportISNSServerList __MINGW_NAME_AW(ReportISNSServerList)
HRESULT WINAPI ReportPersistentiScsiDevicesA(
PULONG BufferSizeInChar,
PCHAR Buffer
);
HRESULT WINAPI ReportPersistentiScsiDevicesW(
PULONG BufferSizeInChar,
PWCHAR Buffer
);
#define ReportPersistentiScsiDevices __MINGW_NAME_AW(ReportPersistentiScsiDevices)
HRESULT WINAPI ReportRadiusServerListA(
PULONG BufferSizeInChar,
PCHAR Buffer
);
HRESULT WINAPI ReportRadiusServerListW(
PULONG BufferSizeInChar,
PCHAR Buffer
);
#define ReportRadiusServerList __MINGW_NAME_AW(ReportRadiusServerList)
HRESULT WINAPI SendScsiReadCapacity(
PISCSI_UNIQUE_SESSION_ID UniqueSessionId,
ULONGLONG Lun,
PUCHAR *ScsiStatus,
PULONG *ResponseSize,
PUCHAR ResponseBuffer,
PULONG *SenseSize,
PUCHAR SenseBuffer
);
HRESULT WINAPI SendScsiReportLuns(
PISCSI_UNIQUE_SESSION_ID UniqueSessionId,
PUCHAR *ScsiStatus,
PULONG *ResponseSize,
PUCHAR ResponseBuffer,
PULONG *SenseSize,
PUCHAR SenseBuffer
);
HRESULT WINAPI SendScsiInquiry(
PISCSI_UNIQUE_SESSION_ID *UniqueSessionId,
ULONGLONG Lun,
UCHAR EvpdCmddt,
UCHAR PageCode,
PUCHAR *ScsiStatus,
PULONG *ReponseSize,
PUCHAR ReponseBuffer,
PULONG *SenseSize,
PUCHAR SenseBuffer
);
HRESULT WINAPI SetIScsiGroupPresharedKey(
ULONG KeyLength,
PUCHAR Key,
BOOLEAN Persist
);
HRESULT WINAPI SetIScsiInitiatorCHAPSharedSecret(
ULONG SharedSecretLength,
PUCHAR SharedSecret
);
HRESULT WINAPI SetIScsiInitiatorNodeNameA(
PCHAR InitiatorNodeName
);
HRESULT WINAPI SetIScsiInitiatorNodeNameW(
PWCHAR InitiatorNodeName
);
#define SetIScsiInitiatorNodeName __MINGW_NAME_AW(SetIScsiInitiatorNodeName)
HRESULT WINAPI SetIscsiInitiatorRADIUSSharedSecret(
ULONG SharedSecretLength,
PUCHAR SharedSecret
);
HRESULT WINAPI SetIScsiTunnelModeOuterAddressA(
PCHAR InitiatorName,
ULONG InitiatorPortNumber,
PCHAR DestinationAddress,
PCHAR OuterModeAddress,
BOOLEAN Persist
);
HRESULT WINAPI SetIScsiTunnelModeOuterAddressW(
PWCHAR InitiatorName,
ULONG InitiatorPortNumber,
PWCHAR DestinationAddress,
PWCHAR OuterModeAddress,
BOOLEAN Persist
);
#define SetIScsiTunnelModeOuterAddress __MINGW_NAME_AW(SetIScsiTunnelModeOuterAddress)
HRESULT WINAPI SetupPersistentIScsiDevices(void);
#ifdef __cplusplus
}
#endif
#endif /*(_WIN32_WINNT >= 0x0600)*/
#endif