summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rbutil/ipodpatcher/ipodio-win32-scsi.c25
1 files changed, 24 insertions, 1 deletions
diff --git a/rbutil/ipodpatcher/ipodio-win32-scsi.c b/rbutil/ipodpatcher/ipodio-win32-scsi.c
index 7e338acbc0..16460cfba3 100644
--- a/rbutil/ipodpatcher/ipodio-win32-scsi.c
+++ b/rbutil/ipodpatcher/ipodio-win32-scsi.c
@@ -53,10 +53,33 @@
53#include <windows.h> 53#include <windows.h>
54#include <stddef.h> 54#include <stddef.h>
55#include <stdio.h> 55#include <stdio.h>
56#include <ddk/ntddscsi.h>
57 56
58#include "ipodio.h" 57#include "ipodio.h"
59 58
59/* from ddk/ntddscsi.h */
60#define SCSI_IOCTL_DATA_OUT 0
61#define SCSI_IOCTL_DATA_IN 1
62#define SCSI_IOCTL_DATA_UNSPECIFIED 2
63
64#define IOCTL_SCSI_PASS_THROUGH \
65 CTL_CODE(FILE_DEVICE_CONTROLLER, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
66
67typedef struct _SCSI_PASS_THROUGH {
68 USHORT Length;
69 UCHAR ScsiStatus;
70 UCHAR PathId;
71 UCHAR TargetId;
72 UCHAR Lun;
73 UCHAR CdbLength;
74 UCHAR SenseInfoLength;
75 UCHAR DataIn;
76 ULONG DataTransferLength;
77 ULONG TimeOutValue;
78 ULONG_PTR DataBufferOffset;
79 ULONG SenseInfoOffset;
80 UCHAR Cdb[16];
81} SCSI_PASS_THROUGH, *PSCSI_PASS_THROUGH;
82
60typedef struct _SCSI_PASS_THROUGH_WITH_BUFFERS { 83typedef struct _SCSI_PASS_THROUGH_WITH_BUFFERS {
61 SCSI_PASS_THROUGH Spt; 84 SCSI_PASS_THROUGH Spt;
62 ULONG Filler; /* realign buffers to double word boundary */ 85 ULONG Filler; /* realign buffers to double word boundary */