@@ -34,6 +34,8 @@ extern "C" {
34
34
#define IOCTL_SCSI_RESCAN_BUS CTL_CODE(IOCTL_SCSI_BASE,0x0407,METHOD_BUFFERED,FILE_ANY_ACCESS)
35
35
#define IOCTL_SCSI_GET_DUMP_POINTERS CTL_CODE(IOCTL_SCSI_BASE,0x0408,METHOD_BUFFERED,FILE_ANY_ACCESS)
36
36
#define IOCTL_SCSI_FREE_DUMP_POINTERS CTL_CODE(IOCTL_SCSI_BASE,0x0409,METHOD_BUFFERED,FILE_ANY_ACCESS)
37
+ #define IOCTL_SCSI_PASS_THROUGH_EX CTL_CODE(IOCTL_SCSI_BASE, 0x0411, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
38
+ #define IOCTL_SCSI_PASS_THROUGH_DIRECT_EX CTL_CODE(IOCTL_SCSI_BASE, 0x0412, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
37
39
#define IOCTL_IDE_PASS_THROUGH CTL_CODE(IOCTL_SCSI_BASE,0x040a,METHOD_BUFFERED,FILE_READ_ACCESS | FILE_WRITE_ACCESS)
38
40
#define IOCTL_ATA_PASS_THROUGH CTL_CODE(IOCTL_SCSI_BASE,0x040b,METHOD_BUFFERED,FILE_READ_ACCESS | FILE_WRITE_ACCESS)
39
41
#define IOCTL_ATA_PASS_THROUGH_DIRECT CTL_CODE(IOCTL_SCSI_BASE,0x040c,METHOD_BUFFERED,FILE_READ_ACCESS | FILE_WRITE_ACCESS)
@@ -104,6 +106,26 @@ extern "C" {
104
106
} SCSI_PASS_THROUGH_DIRECT32 ,* PSCSI_PASS_THROUGH_DIRECT32 ;
105
107
#endif /* _WIN64 */
106
108
109
+
110
+ typedef struct _SCSI_PASS_THROUGH_EX {
111
+ ULONG Version ;
112
+ ULONG Length ;
113
+ ULONG CdbLength ;
114
+ ULONG StorAddressLength ;
115
+ UCHAR ScsiStatus ;
116
+ UCHAR SenseInfoLength ;
117
+ UCHAR DataDirection ;
118
+ UCHAR Reserved ;
119
+ ULONG TimeOutValue ;
120
+ ULONG StorAddressOffset ;
121
+ ULONG SenseInfoOffset ;
122
+ ULONG DataOutTransferLength ;
123
+ ULONG DataInTransferLength ;
124
+ ULONG_PTR DataOutBufferOffset ;
125
+ ULONG_PTR DataInBufferOffset ;
126
+ UCHAR Cdb [ANYSIZE_ARRAY ];
127
+ } SCSI_PASS_THROUGH_EX , * PSCSI_PASS_THROUGH_EX ;
128
+
107
129
typedef struct _ATA_PASS_THROUGH_EX {
108
130
USHORT Length ;
109
131
USHORT AtaFlags ;
0 commit comments