source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/iscsidsc.h@ 1170

Last change on this file since 1170 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 24.1 KB
Line 
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#ifndef _INC_ISCSIDSC
7#define _INC_ISCSIDSC
8#include <ntddscsi.h>
9#if (_WIN32_WINNT >= 0x0600)
10#ifdef __cplusplus
11extern "C" {
12#endif
13
14 typedef enum {
15 ISCSI_NO_AUTH_TYPE = 0,
16 ISCSI_CHAP_AUTH_TYPE = 1,
17 ISCSI_MUTUAL_CHAP_AUTH_TYPE = 2
18 } ISCSI_AUTH_TYPES;
19
20 typedef enum {
21 ISCSI_DIGEST_TYPE_NONE = 0,
22 ISCSI_DIGEST_TYPE_CRC32C = 1
23 } ISCSI_DIGEST_TYPES;
24
25 typedef ULONG ISCSI_LOGIN_OPTIONS_INFO_SPECIFIED,
26 *PISCSI_LOGIN_OPTIONS_INFO_SPECIFIED;
27#define ISCSI_LOGIN_OPTIONS_HEADER_DIGEST 0x00000001
28#define ISCSI_LOGIN_OPTIONS_DATA_DIGEST 0x00000002
29#define ISCSI_LOGIN_OPTIONS_MAXIMUM_CONNECTIONS 0x00000004
30#define ISCSI_LOGIN_OPTIONS_DEFAULT_TIME_2_WAIT 0x00000008
31#define ISCSI_LOGIN_OPTIONS_DEFAULT_TIME_2_RETAIN 0x00000010
32#define ISCSI_LOGIN_OPTIONS_USERNAME 0x00000020
33#define ISCSI_LOGIN_OPTIONS_PASSWORD 0x00000040
34#define ISCSI_LOGIN_OPTIONS_AUTH_TYPE 0x00000080
35
36#define ISCSI_LOGIN_OPTIONS_VERSION 0x00000000
37
38 typedef ULONG ISCSI_LOGIN_FLAGS,
39 *PISCSI_LOGIN_FLAGS;
40
41#define ISCSI_LOGIN_FLAG_REQUIRE_IPSEC 0x00000001
42#define ISCSI_LOGIN_FLAG_MULTIPATH_ENABLED 0x00000002
43#define ISCSI_LOGIN_FLAG_RESERVED1 0x00000004
44#define ISCSI_LOGIN_FLAG_ALLOW_PORTAL_HOPPING 0x00000008
45#define ISCSI_LOGIN_FLAG_USE_RADIUS_RESPONSE 0x00000010
46#define ISCSI_LOGIN_FLAG_USE_RADIUS_VERIFICATION 0x00000020
47
48 typedef ULONGLONG ISCSI_SECURITY_FLAGS,
49 *PISCSI_SECURITY_FLAGS;
50
51#define ISCSI_SECURITY_FLAG_VALID 0x00000001
52#define ISCSI_SECURITY_FLAG_IKE_IPSEC_ENABLED 0x00000002
53#define ISCSI_SECURITY_FLAG_MAIN_MODE_ENABLED 0x00000004
54#define ISCSI_SECURITY_FLAG_AGGRESSIVE_MODE_ENABLED 0x00000008
55#define ISCSI_SECURITY_FLAG_PFS_ENABLED 0x00000010
56#define ISCSI_SECURITY_FLAG_TRANSPORT_MODE_PREFERRED 0x00000020
57#define ISCSI_SECURITY_FLAG_TUNNEL_MODE_PREFERRED 0x00000040
58
59
60#define AddIScsiConnection __MINGW_NAME_AW(AddIScsiConnection)
61#define AddIScsiSendTargetPortal __MINGW_NAME_AW(AddIScsiSendTargetPortal)
62#define AddIScsiStaticTarget __MINGW_NAME_AW(AddIScsiStaticTarget)
63#define RemoveIScsiStaticTarget __MINGW_NAME_AW(RemoveIScsiStaticTarget)
64#define AddISNSServer __MINGW_NAME_AW(AddISNSServer)
65#define AddPersistentiScsiDevice __MINGW_NAME_AW(AddPersistentiScsiDevice)
66#define RemoveIScsiPersistentTarget __MINGW_NAME_AW(RemoveIScsiPersistentTarget)
67#define RemovePersistentIScsiDevice __MINGW_NAME_AW(RemovePersistentIScsiDevice)
68#define PERSISTENT_ISCSI_LOGIN_INFO __MINGW_NAME_AW(PERSISTENT_ISCSI_LOGIN_INFO)
69#define AddRadiusServer __MINGW_NAME_AW(AddRadiusServer)
70#define RemoveRadiusServer __MINGW_NAME_AW(RemoveRadiusServer)
71
72#define MAX_ISCSI_PORTAL_NAME_LEN 256
73#define MAX_ISCSI_PORTAL_ADDRESS_LEN 256
74#define MAX_ISCSI_HBANAME_LEN 256
75
76typedef enum _TARGET_INFORMATION_CLASS {
77 ProtocolType,
78 TargetAlias,
79 DiscoveryMechanisms,
80 PortalGroups,
81 PersistentTargetMappings,
82 InitiatorName,
83 TargetFlags,
84 LoginOptions
85} TARGET_INFORMATION_CLASS;
86
87typedef enum _TARGETPROTOCOLTYPE {
88 ISCSI_TCP_PROTOCOL_TYPE
89} TARGETPROTOCOLTYPE;
90
91typedef enum _IKE_AUTHENTICATION_METHOD {
92 IKE_AUTHENTICATION_PRESHARED_KEY_METHOD = 1
93} IKE_AUTHENTICATION_METHOD, *PIKE_AUTHENTICATION_METHOD;
94
95typedef struct _ISCSI_LOGIN_OPTIONS {
96 ULONG Version;
97 ISCSI_LOGIN_OPTIONS_INFO_SPECIFIED InformationSpecified;
98 ISCSI_LOGIN_FLAGS LoginFlags;
99 ISCSI_AUTH_TYPES AuthType;
100 ISCSI_DIGEST_TYPES HeaderDigest;
101 ISCSI_DIGEST_TYPES DataDigest;
102 ULONG MaximumConnections;
103 ULONG DefaultTime2Wait;
104 ULONG DefaultTime2Retain;
105 ULONG UsernameLength;
106 ULONG PasswordLength;
107 PUCHAR Username;
108 PUCHAR Password;
109} ISCSI_LOGIN_OPTIONS, *PISCSI_LOGIN_OPTIONS, *PSCSI_LOGIN_OPTIONS, *PISCI_LOGIN_OPTIONS;
110
111typedef struct _ISCSI_TARGET_PORTALA {
112 CHAR SymbolicName[MAX_ISCSI_PORTAL_NAME_LEN];
113 CHAR Address[MAX_ISCSI_PORTAL_ADDRESS_LEN];
114 USHORT Socket;
115} ISCSI_TARGET_PORTALA, *PISCSI_TARGET_PORTALA;
116
117typedef struct _ISCSI_TARGET_PORTALW {
118 WCHAR SymbolicName[MAX_ISCSI_PORTAL_NAME_LEN];
119 WCHAR Address[MAX_ISCSI_PORTAL_ADDRESS_LEN];
120 USHORT Socket;
121} ISCSI_TARGET_PORTALW, *PISCSI_TARGET_PORTALW;
122
123typedef struct _ISCSI_TARGET_PORTAL_GROUPA {
124 ULONG Count;
125 ISCSI_TARGET_PORTALA Portals[1];
126} ISCSI_TARGET_PORTAL_GROUPA, *PISCSI_TARGET_PORTAL_GROUPA;
127
128typedef struct _ISCSI_TARGET_PORTAL_GROUPW {
129 ULONG Count;
130 ISCSI_TARGET_PORTALW Portals[1];
131} ISCSI_TARGET_PORTAL_GROUPW, *PISCSI_TARGET_PORTAL_GROUPW;
132
133typedef struct _ISCSI_LUN_LIST {
134 ULONG OSLUN;
135 ULONGLONG TargetLUN;
136} SCSI_LUN_LIST, *PSCSI_LUN_LIST;
137
138typedef struct _ISCSI_UNIQUE_SESSION_ID {
139 ULONGLONG AdapterUnique;
140 ULONGLONG AdapterSpecific;
141}
142ISCSI_UNIQUE_SESSION_ID, *PISCSI_UNIQUE_SESSION_ID,
143ISCSI_UNIQUE_CONNECTION_ID, *PISCSI_UNIQUE_CONNECTION_ID;
144
145typedef struct _ISCSI_TARGET_MAPPINGA {
146 CHAR InitiatorName[MAX_ISCSI_HBANAME_LEN];
147 CHAR TargetName[MAX_ISCSI_NAME_LEN];
148 CHAR OSDeviceName[MAX_PATH];
149 ISCSI_UNIQUE_SESSION_ID SessionId;
150 ULONG OSBusNumber;
151 ULONG OSTargetNumber;
152 ULONG LUNCount;
153 PSCSI_LUN_LIST LUNList;
154} ISCSI_TARGET_MAPPINGA, *PISCSI_TARGET_MAPPINGA;
155
156typedef struct _ISCSI_TARGET_MAPPINGW {
157 WCHAR InitiatorName[MAX_ISCSI_HBANAME_LEN];
158 WCHAR TargetName[MAX_ISCSI_NAME_LEN];
159 WCHAR OSDeviceName[MAX_PATH];
160 ISCSI_UNIQUE_SESSION_ID SessionId;
161 ULONG OSBusNumber;
162 ULONG OSTargetNumber;
163 ULONG LUNCount;
164 PSCSI_LUN_LIST LUNList;
165} ISCSI_TARGET_MAPPINGW, *PISCSI_TARGET_MAPPINGW;
166
167typedef struct _PERSISTENT_ISCSI_LOGIN_INFOA {
168 CHAR TargetName[MAX_ISCSI_NAME_LEN];
169 BOOLEAN IsInformationalSession;
170 CHAR InitiatorInstance[MAX_ISCSI_HBANAME_LEN];
171 ULONG InitiatorPortNumber;
172 ISCSI_TARGET_PORTALA TargetPortal;
173 ISCSI_SECURITY_FLAGS SecurityFlags;
174 PISCSI_TARGET_MAPPINGA Mappings;
175 ISCSI_LOGIN_OPTIONS LoginOptions;
176} PERSISTENT_ISCSI_LOGIN_INFOA, *PPERSISTENT_ISCSI_LOGIN_INFOA;
177
178typedef struct _PERSISTENT_ISCSI_LOGIN_INFOW {
179 CHAR TargetName[MAX_ISCSI_NAME_LEN];
180 BOOLEAN IsInformationalSession;
181 CHAR InitiatorInstance[MAX_ISCSI_HBANAME_LEN];
182 ULONG InitiatorPortNumber;
183 ISCSI_TARGET_PORTALW TargetPortal;
184 ISCSI_SECURITY_FLAGS SecurityFlags;
185 PISCSI_TARGET_MAPPINGW Mappings;
186 ISCSI_LOGIN_OPTIONS LoginOptions;
187} PERSISTENT_ISCSI_LOGIN_INFOW, *PPERSISTENT_ISCSI_LOGIN_INFOW;
188
189typedef UCHAR IKE_IDENTIFICATION_PAYLOAD_TYPE, *PIKE_IDENTIFICATION_PAYLOAD_TYPE;
190
191typedef struct _IKE_AUTHENTICATION_PRESHARED_KEY {
192 ISCSI_SECURITY_FLAGS SecurityFlags;
193 IKE_IDENTIFICATION_PAYLOAD_TYPE IdType;
194 ULONG IdLengthInBytes;
195 PUCHAR Id;
196 ULONG KeyLengthInBytes;
197 PUCHAR Key;
198} IKE_AUTHENTICATION_PRESHARED_KEY, *PIKE_AUTHENTICATION_PRESHARED_KEY;
199
200typedef struct _IKE_AUTHENTICATION_INFORMATION {
201 IKE_AUTHENTICATION_METHOD AuthMethod;
202 __C89_NAMELESS union {
203 IKE_AUTHENTICATION_PRESHARED_KEY PsKey;
204 };
205} IKE_AUTHENTICATION_INFORMATION, *PIKE_AUTHENTICATION_INFORMATION;
206
207typedef struct _ISCSI_CONNECTION_INFOA {
208 ISCSI_UNIQUE_CONNECTION_ID ConnectionId;
209 CHAR InitiatorAddress;
210 CHAR TargetAddress;
211 USHORT InitiatorSocket;
212 USHORT TargetSocket;
213 UCHAR CID[2];
214} ISCSI_CONNECTION_INFOA, *PISCSI_CONNECTION_INFOA;
215
216typedef struct _ISCSI_CONNECTION_INFO {
217 ISCSI_UNIQUE_CONNECTION_ID ConnectionId;
218 TCHAR InitiatorAddress;
219 TCHAR TargetAddress;
220 USHORT InitiatorSocket;
221 USHORT TargetSocket;
222 UCHAR CID[2];
223} ISCSI_CONNECTION_INFOW, *PISCSI_CONNECTION_INFOW;
224
225typedef struct _ISCSI_SESSION_INFOA {
226 ISCSI_UNIQUE_SESSION_ID SessionId;
227 CHAR InitiatorName;
228 CHAR TargetName;
229 CHAR TargetNodeName;
230 UCHAR ISID[6];
231 UCHAR TSID[2];
232 ULONG ConnectionCount;
233 PISCSI_CONNECTION_INFOA Connections;
234} ISCSI_SESSION_INFOA, *PISCSI_SESSION_INFOA;
235
236typedef struct _ISCSI_SESSION_INFO {
237 ISCSI_UNIQUE_SESSION_ID SessionId;
238 WCHAR InitiatorName;
239 WCHAR TargetName;
240 WCHAR TargetNodeName;
241 UCHAR ISID[6];
242 UCHAR TSID[2];
243 ULONG ConnectionCount;
244 PISCSI_CONNECTION_INFOW Connections;
245} ISCSI_SESSION_INFOW, *PISCSI_SESSION_INFOW;
246
247typedef struct _ISCSI_VERSION_INFO {
248 ULONG MajorVersion;
249 ULONG MinorVersion;
250 ULONG BuildNumber;
251} ISCSI_VERSION_INFO, *PISCSI_VERSION_INFO;
252
253typedef struct _ISCSI_TARGET_PORTAL_INFOA {
254 CHAR InitiatorName[MAX_ISCSI_HBANAME_LEN];
255 ULONG InitiatorPortNumber;
256 CHAR SymbolicName[MAX_ISCSI_PORTAL_NAME_LEN];
257 CHAR Address[MAX_ISCSI_PORTAL_ADDRESS_LEN];
258 USHORT Socket;
259} ISCSI_TARGET_PORTAL_INFOA, *PISCSI_TARGET_PORTAL_INFOA;
260
261typedef struct _ISCSI_TARGET_PORTAL_INFOW {
262 WCHAR InitiatorName[MAX_ISCSI_HBANAME_LEN];
263 ULONG InitiatorPortNumber;
264 WCHAR SymbolicName[MAX_ISCSI_PORTAL_NAME_LEN];
265 WCHAR Address[MAX_ISCSI_PORTAL_ADDRESS_LEN];
266 USHORT Socket;
267} ISCSI_TARGET_PORTAL_INFOW, *PISCSI_TARGET_PORTAL_INFOW;
268
269typedef struct _ISCSI_TARGET_PORTAL_INFO_EXA {
270 CHAR InitiatorName[MAX_ISCSI_HBANAME_LEN];
271 ULONG InitiatorPortNumber;
272 CHAR SymbolicName[MAX_ISCSI_PORTAL_NAME_LEN];
273 CHAR Address[MAX_ISCSI_PORTAL_ADDRESS_LEN];
274 USHORT Socket;
275 ISCSI_SECURITY_FLAGS SecurityFlags;
276 ISCSI_LOGIN_OPTIONS LoginOptions;
277} ISCSI_TARGET_PORTAL_INFO_EX, *PISCSI_TARGET_PORTAL_INFO_EX;
278
279typedef struct _ISCSI_TARGET_PORTAL_INFO_EXW {
280 WCHAR InitiatorName[MAX_ISCSI_HBANAME_LEN];
281 ULONG InitiatorPortNumber;
282 WCHAR SymbolicName[MAX_ISCSI_PORTAL_NAME_LEN];
283 WCHAR Address[MAX_ISCSI_PORTAL_ADDRESS_LEN];
284 USHORT Socket;
285 ISCSI_SECURITY_FLAGS SecurityFlags;
286 ISCSI_LOGIN_OPTIONS LoginOptions;
287} ISCSI_TARGET_PORTAL_INFO_EX, *PISCSI_TARGET_PORTAL_INFO_EX;
288
289__MINGW_TYPEDEF_AW(ISCSI_CONNECTION_INFO)
290__MINGW_TYPEDEF_AW(PISCSI_CONNECTION_INFO)
291__MINGW_TYPEDEF_AW(ISCSI_SESSION_INFO)
292__MINGW_TYPEDEF_AW(PISCSI_SESSION_INFO)
293__MINGW_TYPEDEF_AW(ISCSI_TARGET_PORTAL_GROUP)
294__MINGW_TYPEDEF_AW(PISCSI_TARGET_PORTAL_GROUP)
295__MINGW_TYPEDEF_AW(ISCSI_TARGET_PORTAL)
296__MINGW_TYPEDEF_AW(PISCSI_TARGET_PORTAL)
297__MINGW_TYPEDEF_AW(ISCSI_TARGET_MAPPING)
298__MINGW_TYPEDEF_AW(PISCSI_TARGET_MAPPING)
299__MINGW_TYPEDEF_AW(ISCSI_TARGET_PORTAL_INFO)
300__MINGW_TYPEDEF_AW(PISCSI_TARGET_PORTAL_INFO)
301__MINGW_TYPEDEF_AW(ISCSI_TARGET_PORTAL_INFO_EX)
302__MINGW_TYPEDEF_AW(PISCSI_TARGET_PORTAL_INFO_EX)
303
304typedef ULONG ISCSI_TARGET_FLAGS;
305
306 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);
307 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);
308
309 HRESULT WINAPI AddIScsiSendTargetPortalA(PCHAR InitiatorName,ULONG InitiatorPortNumber,PISCI_LOGIN_OPTIONS LoginOptions,ISCSI_SECURITY_FLAGS SecurityFlags,PISCSI_TARGET_PORTALA Portal);
310
311 HRESULT WINAPI AddIScsiSendTargetPortalW(PWCHAR InitiatorName,ULONG InitiatorPortNumber,PISCI_LOGIN_OPTIONS LoginOptions,ISCSI_SECURITY_FLAGS SecurityFlags,PISCSI_TARGET_PORTALW Portal);
312
313 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);
314
315 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);
316
317 HRESULT WINAPI AddISNSServerA(PCHAR Address);
318 HRESULT WINAPI AddISNSServerW(PWCHAR Address);
319
320 HRESULT WINAPI AddRadiusServerA(PCHAR Address);
321 HRESULT WINAPI AddRadiusServerW(PWCHAR Address);
322
323 HRESULT WINAPI AddPersistentiScsiDeviceA(PCHAR VolumePath);
324 HRESULT WINAPI AddPersistentiScsiDeviceW(PWCHAR VolumePath);
325
326 HRESULT WINAPI ClearPersistentiScsiDevices(void);
327
328 HRESULT WINAPI RemoveIScsiPersistentTargetA(PCHAR InitiatorInstance,ULONG InitiatorPortNumber,PCHAR TargetName,PISCSI_TARGET_PORTALA Portal);
329 HRESULT WINAPI RemoveIScsiPersistentTargetW(PWCHAR InitiatorInstance,ULONG InitiatorPortNumber,PWCHAR TargetName,PISCSI_TARGET_PORTALW Portal);
330
331 HRESULT WINAPI RemoveIScsiStaticTargetA(PCHAR TargetName);
332 HRESULT WINAPI RemoveIScsiStaticTargetW(PWCHAR TargetName);
333
334 HRESULT WINAPI RemovePersistentIScsiDeviceA(PCHAR VolumePath);
335 HRESULT WINAPI RemovePersistentIScsiDeviceW(PWCHAR VolumePath);
336
337 HRESULT WINAPI RemoveRadiusServerA(PCHAR Address);
338 HRESULT WINAPI RemoveRadiusServerW(PWCHAR Address);
339
340 HRESULT WINAPI SetupPersistentIScsiDevices(void);
341
342 HRESULT WINAPI SendScsiInquiry(PISCSI_UNIQUE_SESSION_ID *UniqueSessionId,ULONGLONG Lun,UCHAR EvpdCmddt,UCHAR PageCode,PUCHAR *ScsiStatus,PULONG *ReponseSize,PUCHAR ReponseBuffer,PULONG *SenseSize,PUCHAR SenseBuffer);
343
344 HRESULT WINAPI SendScsiReadCapacity(PISCSI_UNIQUE_SESSION_ID UniqueSessionId,ULONGLONG Lun,PUCHAR *ScsiStatus,PULONG *ResponseSize,PUCHAR ResponseBuffer,PULONG *SenseSize,PUCHAR SenseBuffer);
345
346 HRESULT WINAPI SendScsiReportLuns(PISCSI_UNIQUE_SESSION_ID UniqueSessionId,PUCHAR *ScsiStatus,PULONG *ResponseSize,PUCHAR ResponseBuffer,PULONG *SenseSize,PUCHAR SenseBuffer);
347
348typedef struct _ISCSI_DEVICE_ON_SESSION {
349 TCHAR InitiatorName[MAX_ISCSI_HBANAME_LEN];
350 TCHAR TargetName[MAX_ISCSI_NAME_LEN + 1];
351 SCSI_ADDRESS ScsiAddress;
352 GUID DeviceInterfaceType;
353 TCHAR DeviceInterfaceName[MAX_PATH];
354 TCHAR LegacyName[MAX_PATH];
355 STORAGE_DEVICE_NUMBER StorageDeviceNumber;
356 DWORD DeviceInstance;
357} ISCSI_DEVICE_ON_SESSION, *PISCSI_DEVICE_ON_SESSION;
358
359HRESULT WINAPI GetDevicesForiSCSISession(
360 PISCSI_UNIQUE_SESSION_ID UniqueSessionId,
361 ULONG *DeviceCount,
362 PISCSI_DEVICE_ON_SESSION Devices
363);
364
365#define GetIScsiIKEInfo __MINGW_NAME_AW(GetIScsiIKEInfo)
366
367HRESULT WINAPI GetIScsiIKEInfoA(
368 PCHAR InitiatorName,
369 ULONG PortNumber,
370 PULONG Reserved,
371 PIKE_AUTHENTICATION_INFORMATION *AuthInfo
372);
373
374HRESULT WINAPI GetIScsiIKEInfoW(
375 PWCHAR InitiatorName,
376 ULONG PortNumber,
377 PULONG Reserved,
378 PIKE_AUTHENTICATION_INFORMATION *AuthInfo
379);
380
381#define GetIScsiInitiatorNodeName __MINGW_NAME_AW(GetIScsiInitiatorNodeName)
382
383HRESULT WINAPI GetIScsiInitiatorNodeNameA(
384 PCHAR InitiatorNodeName
385);
386
387HRESULT WINAPI GetIScsiInitiatorNodeNameW(
388 PWCHAR InitiatorNodeName
389);
390
391#define GetIScsiSessionList __MINGW_NAME_AW(GetIScsiSessionList)
392
393HRESULT WINAPI GetIScsiSessionListA(
394 ULONG *BufferSize,
395 ULONG *SessionCount,
396 PISCSI_SESSION_INFOA SessionInfo
397);
398
399HRESULT WINAPI GetIScsiSessionListW(
400 ULONG *BufferSize,
401 ULONG *SessionCount,
402 PISCSI_SESSION_INFOW SessionInfo
403);
404
405#define GetIScsiTargetInformation __MINGW_NAME_AW(GetIScsiTargetInformation)
406
407HRESULT WINAPI GetIScsiTargetInformationA(
408 PCHAR TargetName,
409 PCHAR DiscoveryMechanism,
410 TARGET_INFORMATION_CLASS InfoClass,
411 PULONG BufferSize,
412 PVOID Buffer
413);
414
415HRESULT WINAPI GetIScsiTargetInformationW(
416 PWCHAR TargetName,
417 PWCHAR DiscoveryMechanism,
418 TARGET_INFORMATION_CLASS InfoClass,
419 PULONG BufferSize,
420 PVOID Buffer
421);
422
423HRESULT WINAPI GetIScsiVersionInformation(
424 PISCSI_VERSION_INFO VersionInfo
425);
426
427HRESULT WINAPI LoginIScsiTargetA(
428 PCHAR TargetName,
429 BOOLEAN IsInformationalSession,
430 PCHAR InitiatorName,
431 ULONG InitiatorPortNumber,
432 PISCSI_TARGET_PORTALA TargetPortal,
433 ISCSI_SECURITY_FLAGS SecurityFlags,
434 PISCSI_TARGET_MAPPINGA Mappings,
435 PISCSI_LOGIN_OPTIONS LoginOptions,
436 ULONG KeySize,
437 PCHAR Key,
438 BOOLEAN IsPersistent,
439 PISCSI_UNIQUE_SESSION_ID UniqueSessionId,
440 PISCSI_UNIQUE_CONNECTION_ID UniqueConnectionId
441);
442
443HRESULT WINAPI LoginIScsiTargetW(
444 PWCHAR TargetName,
445 BOOLEAN IsInformationalSession,
446 PWCHAR InitiatorName,
447 ULONG InitiatorPortNumber,
448 PISCSI_TARGET_PORTALW TargetPortal,
449 ISCSI_SECURITY_FLAGS SecurityFlags,
450 PISCSI_TARGET_MAPPINGW Mappings,
451 PISCSI_LOGIN_OPTIONS LoginOptions,
452 ULONG KeySize,
453 PCHAR Key,
454 BOOLEAN IsPersistent,
455 PISCSI_UNIQUE_SESSION_ID UniqueSessionId,
456 PISCSI_UNIQUE_CONNECTION_ID UniqueConnectionId
457);
458
459HRESULT WINAPI LogoutIScsiTarget(
460 PISCSI_UNIQUE_SESSION_ID UniqueSessionId
461);
462
463HRESULT WINAPI RefreshIScsiSendTargetPortalA(
464 PCHAR InitiatorInstance,
465 ULONG InitiatorPortNumber,
466 PISCSI_TARGET_PORTALA Portal
467);
468
469HRESULT WINAPI RefreshIScsiSendTargetPortalW(
470 PWCHAR InitiatorInstance,
471 ULONG InitiatorPortNumber,
472 PISCSI_TARGET_PORTALW Portal
473);
474
475#define RefreshIScsiSendTargetPortal __MINGW_NAME_AW(RefreshIScsiSendTargetPortal)
476
477HRESULT WINAPI RefreshISNSServerA(
478 PCHAR Address
479);
480
481HRESULT WINAPI RefreshISNSServerW(
482 PWCHAR Address
483);
484
485#define RefreshISNSServer __MINGW_NAME_AW(RefreshISNSServer)
486
487HRESULT WINAPI RemoveIScsiConnection(
488 PISCSI_UNIQUE_SESSION_ID UniqueSessionId,
489 PISCSI_UNIQUE_CONNECTION_ID UniqueConnectionId
490);
491
492HRESULT WINAPI RemoveIScsiPersistentTargetA(
493 PCHAR InitiatorInstance,
494 ULONG InitiatorPortNumber,
495 PCHAR TargetName,
496 PISCSI_TARGET_PORTALA Portal
497);
498
499HRESULT WINAPI RemoveIScsiPersistentTargetW(
500 PWCHAR InitiatorInstance,
501 ULONG InitiatorPortNumber,
502 PWCHAR TargetName,
503 PISCSI_TARGET_PORTALW Portal
504);
505
506#define RemoveIScsiPersistentTarget __MINGW_NAME_AW(RemoveIScsiPersistentTarget)
507
508HRESULT WINAPI RemoveIScsiSendTargetPortalA(
509 PCHAR InitiatorInstance,
510 ULONG InitiatorPortNumber,
511 PISCSI_TARGET_PORTALA Portal
512);
513
514HRESULT WINAPI RemoveIScsiSendTargetPortalW(
515 PWCHAR InitiatorInstance,
516 ULONG InitiatorPortNumber,
517 PISCSI_TARGET_PORTALW Portal
518);
519
520#define RemoveIScsiSendTargetPortal __MINGW_NAME_AW(RemoveIScsiSendTargetPortal)
521
522HRESULT WINAPI RemoveIScsiStaticTargetA(
523 PCHAR TargetName
524);
525
526HRESULT WINAPI RemoveIScsiStaticTargetW(
527 PWCHAR TargetName
528);
529#define RemoveIScsiStaticTarget __MINGW_NAME_AW(RemoveIScsiStaticTarget)
530
531HRESULT WINAPI RemoveISNSServerA(
532 PCHAR Address
533);
534
535HRESULT WINAPI RemoveISNSServerW(
536 PWCHAR Address
537);
538#define RemoveISNSServer __MINGW_NAME_AW(RemoveISNSServer)
539
540HRESULT WINAPI RemovePersistentIScsiDeviceA(
541 PCHAR VolumePath
542);
543
544HRESULT WINAPI RemovePersistentIScsiDeviceW(
545 PWCHAR VolumePath
546);
547#define RemovePersistentIScsiDevice __MINGW_NAME_AW(RemovePersistentIScsiDevice)
548
549HRESULT WINAPI RemoveRadiusServerA(
550 PCHAR Address
551);
552
553HRESULT WINAPI RemoveRadiusServerW(
554 PWCHAR Address
555);
556#define RemoveRadiusServer __MINGW_NAME_AW(RemoveRadiusServer)
557
558HRESULT WINAPI ReportIScsiInitiatorListA(
559 ULONG *BufferSize,
560 PCHAR Buffer
561);
562
563HRESULT WINAPI ReportIScsiInitiatorListW(
564 ULONG *BufferSize,
565 PWCHAR Buffer
566);
567
568HRESULT WINAPI ReportIScsiPersistentLoginsA(
569 ULONG *Count,
570 PPERSISTENT_ISCSI_LOGIN_INFOA PersistentLoginInfo,
571 PULONG BufferSizeInBytes
572);
573
574HRESULT WINAPI ReportIScsiPersistentLoginsW(
575 ULONG *Count,
576 PPERSISTENT_ISCSI_LOGIN_INFOW PersistentLoginInfo,
577 PULONG BufferSizeInBytes
578);
579#define ReportIScsiPersistentLogins __MINGW_NAME_AW(ReportIScsiPersistentLogins)
580
581HRESULT WINAPI ReportIScsiSendTargetPortalsA(
582 PULONG PortalCount,
583 PISCSI_TARGET_PORTAL_INFOA PortalInfo
584);
585
586HRESULT WINAPI ReportIScsiSendTargetPortalsW(
587 PULONG PortalCount,
588 PISCSI_TARGET_PORTAL_INFOA PortalInfo
589);
590
591#define ReportIScsiSendTargetPortals __MINGW_NAME_AW(ReportIScsiSendTargetPortals)
592
593HRESULT WINAPI ReportActiveIScsiTargetMappingsA(
594 PULONG BufferSize,
595 PULONG MappingCount,
596 PISCSI_TARGET_MAPPINGA Mappings
597);
598
599HRESULT WINAPI ReportActiveIScsiTargetMappingsW(
600 PULONG BufferSize,
601 PULONG MappingCount,
602 PISCSI_TARGET_MAPPINGW Mappings
603);
604#define ReportActiveIScsiTargetMappings __MINGW_NAME_AW(ReportActiveIScsiTargetMappings)
605
606HRESULT WINAPI ReportIScsiSendTargetPortalsExA(
607 PULONG PortalCount,
608 PULONG PortalInfoSize,
609 PISCSI_TARGET_PORTAL_INFO_EXA PortalInfo
610);
611
612HRESULT WINAPI ReportIScsiSendTargetPortalsExW(
613 PULONG PortalCount,
614 PULONG PortalInfoSize,
615 PISCSI_TARGET_PORTAL_INFO_EXW PortalInfo
616);
617
618#define ReportIScsiSendTargetPortalsEx __MINGW_NAME_AW(ReportIScsiSendTargetPortalsEx)
619
620HRESULT WINAPI ReportIScsiTargetPortalsA(
621 PCHAR InitiatorName,
622 PCHAR TargetName,
623 PUSHORT TargetPortalTag,
624 PULONG ElementCount,
625 PISCSI_TARGET_PORTALA Portals
626);
627
628HRESULT WINAPI ReportIScsiTargetPortalsW(
629 PWCHAR InitiatorName,
630 PWCHAR TargetName,
631 PUSHORT TargetPortalTag,
632 PULONG ElementCount,
633 PISCSI_TARGET_PORTALW Portals
634);
635
636#define ReportIScsiTargetPortals __MINGW_NAME_AW(ReportIScsiTargetPortals)
637
638HRESULT WINAPI ReportIScsiTargetsA(
639 BOOLEAN ForceUpdate,
640 PULONG BufferSize,
641 PCHAR Buffer
642);
643
644HRESULT WINAPI ReportIScsiTargetsW(
645 BOOLEAN ForceUpdate,
646 PULONG BufferSize,
647 PWCHAR Buffer
648);
649#define ReportIScsiTargets __MINGW_NAME_AW(ReportIScsiTargets)
650
651HRESULT WINAPI ReportISNSServerListA(
652 PULONG BufferSizeInChar,
653 PCHAR Buffer
654);
655
656HRESULT WINAPI ReportISNSServerListW(
657 PULONG BufferSizeInChar,
658 PWCHAR Buffer
659);
660
661#define ReportISNSServerList __MINGW_NAME_AW(ReportISNSServerList)
662
663HRESULT WINAPI ReportPersistentiScsiDevicesA(
664 PULONG BufferSizeInChar,
665 PCHAR Buffer
666);
667
668HRESULT WINAPI ReportPersistentiScsiDevicesW(
669 PULONG BufferSizeInChar,
670 PWCHAR Buffer
671);
672
673#define ReportPersistentiScsiDevices __MINGW_NAME_AW(ReportPersistentiScsiDevices)
674
675HRESULT WINAPI ReportRadiusServerListA(
676 PULONG BufferSizeInChar,
677 PCHAR Buffer
678);
679
680HRESULT WINAPI ReportRadiusServerListW(
681 PULONG BufferSizeInChar,
682 PCHAR Buffer
683);
684#define ReportRadiusServerList __MINGW_NAME_AW(ReportRadiusServerList)
685
686HRESULT WINAPI SendScsiReadCapacity(
687 PISCSI_UNIQUE_SESSION_ID UniqueSessionId,
688 ULONGLONG Lun,
689 PUCHAR *ScsiStatus,
690 PULONG *ResponseSize,
691 PUCHAR ResponseBuffer,
692 PULONG *SenseSize,
693 PUCHAR SenseBuffer
694);
695
696HRESULT WINAPI SendScsiReportLuns(
697 PISCSI_UNIQUE_SESSION_ID UniqueSessionId,
698 PUCHAR *ScsiStatus,
699 PULONG *ResponseSize,
700 PUCHAR ResponseBuffer,
701 PULONG *SenseSize,
702 PUCHAR SenseBuffer
703);
704
705HRESULT WINAPI SendScsiInquiry(
706 PISCSI_UNIQUE_SESSION_ID *UniqueSessionId,
707 ULONGLONG Lun,
708 UCHAR EvpdCmddt,
709 UCHAR PageCode,
710 PUCHAR *ScsiStatus,
711 PULONG *ReponseSize,
712 PUCHAR ReponseBuffer,
713 PULONG *SenseSize,
714 PUCHAR SenseBuffer
715);
716
717HRESULT WINAPI SetIScsiGroupPresharedKey(
718 ULONG KeyLength,
719 PUCHAR Key,
720 BOOLEAN Persist
721);
722
723HRESULT WINAPI SetIScsiInitiatorCHAPSharedSecret(
724 ULONG SharedSecretLength,
725 PUCHAR SharedSecret
726);
727
728HRESULT WINAPI SetIScsiInitiatorNodeNameA(
729 PCHAR InitiatorNodeName
730);
731
732HRESULT WINAPI SetIScsiInitiatorNodeNameW(
733 PWCHAR InitiatorNodeName
734);
735
736#define SetIScsiInitiatorNodeName __MINGW_NAME_AW(SetIScsiInitiatorNodeName)
737
738HRESULT WINAPI SetIscsiInitiatorRADIUSSharedSecret(
739 ULONG SharedSecretLength,
740 PUCHAR SharedSecret
741);
742
743HRESULT WINAPI SetIScsiTunnelModeOuterAddressA(
744 PCHAR InitiatorName,
745 ULONG InitiatorPortNumber,
746 PCHAR DestinationAddress,
747 PCHAR OuterModeAddress,
748 BOOLEAN Persist
749);
750
751HRESULT WINAPI SetIScsiTunnelModeOuterAddressW(
752 PWCHAR InitiatorName,
753 ULONG InitiatorPortNumber,
754 PWCHAR DestinationAddress,
755 PWCHAR OuterModeAddress,
756 BOOLEAN Persist
757);
758
759#define SetIScsiTunnelModeOuterAddress __MINGW_NAME_AW(SetIScsiTunnelModeOuterAddress)
760
761HRESULT WINAPI SetupPersistentIScsiDevices(void);
762
763#ifdef __cplusplus
764}
765#endif
766#endif /*(_WIN32_WINNT >= 0x0600)*/
767#endif
Note: See TracBrowser for help on using the repository browser.