1
0

More experiments

This commit is contained in:
Benjamin Höglinger-Stelzer 2023-06-26 07:50:45 +02:00
parent 793d29683c
commit 114750b9af
2 changed files with 4 additions and 2 deletions

View File

@ -10,6 +10,8 @@ Heavily work in progress 🔥
The ACU sends a couple of `IOCTL_SCSI_MINIPORT` IOCTLs with custom payloads on controller selection; this is received and handled by the `HpSAMD.sys` driver. So far cross-checking the payload format with the well-known Linux sources hasn't yielded any success; I assume when `IOCTL_SCSI_MINIPORT` is used, the payload isn't what 1:1 gets sent to the controller, unlike `IOCTL_SCSI_PASS_THROUGH` which isn't what the ACU uses. Next step might be trying to port over the Linux CCISS example requests to the Windows SCSI API by using `IOCTL_SCSI_PASS_THROUGH` to try if the controller then responds with the same packet structure as it would under Linux.
So far trying to get a `IOCTL_SCSI_PASS_THROUGH` for controller identification to work results in a `ERROR_IO_DEVICE` 1117 (0x45D).
## 3rd party sources
- [HP ProLiant Array Configuration Utility for Windows 64-bit](https://support.hpe.com/connect/s/softwaredetails?language=en_US&softwareId=MTX_669f83062c7b492083c2aa7125)

View File

@ -132,7 +132,7 @@ int wmain(int argc, wchar_t* argv[])
sptwb.spt.CdbLength = 10;
sptwb.spt.SenseInfoLength = SPT_SENSE_LENGTH;
sptwb.spt.DataIn = SCSI_IOCTL_DATA_IN;
sptwb.spt.DataTransferLength = 192;
sptwb.spt.DataTransferLength = SPTWB_DATA_LENGTH;
sptwb.spt.TimeOutValue = 120;
sptwb.spt.DataBufferOffset = offsetof(SCSI_PASS_THROUGH_WITH_BUFFERS, ucDataBuf);
sptwb.spt.SenseInfoOffset = offsetof(SCSI_PASS_THROUGH_WITH_BUFFERS, ucSenseBuf);
@ -150,7 +150,7 @@ int wmain(int argc, wchar_t* argv[])
&sptwb,
sizeof(SCSI_PASS_THROUGH),
&sptwb,
length,
sizeof(SCSI_PASS_THROUGH_WITH_BUFFERS),
&returned,
NULL
);