wnaspi32: Do not crash on SC_GETSET_TIMEOUTS.

Signed-off-by: Thierry Vermeylen <t_chan4958@hotmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Thierry Vermeylen 2017-02-11 09:06:03 +00:00 committed by Alexandre Julliard
parent 21d1410494
commit 77af98e3df
2 changed files with 17 additions and 0 deletions

View File

@ -573,6 +573,12 @@ DWORD __cdecl SendASPI32Command(LPSRB lpSRB)
FIXME("SC_GET_DISK_INFO always return 'int13 unassociated disk'.\n");
lpSRB->diskinfo.SRB_DriveFlags = 0; /* disk is not int13 served */
return SS_COMP;
case SC_GETSET_TIMEOUTS: {
PSRB_GetSetTimeouts psrb_gst = (PSRB_GetSetTimeouts)lpSRB;
FIXME("SC_GETSET_TIMEOUTS doesn't actually change the timeout value nor does it return the current value.\n");
psrb_gst->SRB_Status = SS_COMP; /* synchronous call, should be the same as the return value of SendASPI32Command */
return SS_COMP;
}
default:
FIXME("Unknown command %d\n", lpSRB->common.SRB_Cmd);
}

View File

@ -200,6 +200,17 @@ typedef struct tagSRB32_GetDiskInfo {
BYTE SRB_Rsvd1[10]; /* 0E Reserved */
} SRB_GetDiskInfo, *PSRB_GetDiskInfo;
typedef struct tagSRB32_GetSetTimeouts {
BYTE SRB_Cmd; /* 00 ASPI cmd code = SC_GETSET_TIMEOUTS */
BYTE SRB_Status; /* 01 ASPI command status byte */
BYTE SRB_HaId; /* 02 ASPI host adapter number */
BYTE SRB_Flags; /* 03 Reserved */
DWORD SRB_Hdr_Rsvd; /* 04 Reserved */
BYTE SRB_Target; /* 08 Target's SCSI ID */
BYTE SRB_Lun; /* 09 Target's LUN number */
DWORD SRB_Timeout; /* 10 Target's Timeout value */
} SRB_GetSetTimeouts, *PSRB_GetSetTimeouts;
/* SRB header */
typedef struct tagSRB32_Header {
BYTE SRB_Cmd; /* 00 ASPI cmd code = SC_RESET_DEV */