Adam Słaboń
20efea8fa4
[USBSTOR] Fix PdoHandleQueryInstanceId and increase serial number descriptor size to MAXIMUM_USB_STRING_LENGTH ( #6413 )
...
Serial number on some USB devices might exceed the number of 100 characters
(e.g. 120 characters on "SanDisk Ultra 3.2Gen1" pendrive) and cause buffer
overflow, resulting in usbstor.sys crash.
- Use pool allocation for instance ID generation.
Fixes stack overflow on USB storage devices with large serial number.
- Print the LUN number as a hexadecimal, not as a character.
- Verify the serial number descriptor before using it.
- Increase the max descriptor size for serial number to
MAXIMUM_USB_STRING_LENGTH. This fixes serial number string truncation.
Based on suggestions by disean and ThFabba.
CORE-17625
2024-02-16 18:48:33 +03:00
Victor Perevertkin
7ed1883c8e
[DRIVERS] Use IoForwardIrpSynchronously in drivers
...
Instead of having an own routine in each driver
IoForwardIrpSynchronously can be used.
2022-01-05 02:17:56 +03:00
Victor Perevertkin
cbe88e287f
[USBSTOR][SCSIPORT] Use STORAGE_ADAPTER_DESCRIPTOR from WIN8
...
This way, these drivers are more compatible with classpnp and cdrom used
by ReactOS (and don't fire asserts)
2020-12-06 01:57:56 +03:00
Victor Perevertkin
94e61c3080
[USBSTOR] Move PDO's Inquiry data and FDO's SCSI context
...
to their Device Extensions.
This way the driver can better handle low memory situations
2020-06-12 16:55:27 +03:00
Victor Perevertkin
a9b97aeded
[USBSTOR] General refactoring.
...
Remove unused structures and unused fields in device extensions.
Replaced magic numbers with constants
2020-06-12 16:55:27 +03:00
Victor Perevertkin
e831f8530b
[USBSTOR] Do not print device descriptor by default.
...
Add SrbGetCdb macro
2019-06-25 19:04:20 +03:00
Victor Perevertkin
7bb93db372
[USBSTOR] Refactor device reset and pipe reset code.
...
Return correct status codes from completion routines.
Reject requests while the device is being reset
2019-06-11 04:39:43 +03:00
Victor Perevertkin
aaa90f6986
[USBSTOR] Do not try to retry a failed request
...
for all cases except receiving a USBD_STATUS_STALL_PID status.
This decision should be made by higher-level driver (and classpnp drivers do it)
2019-06-11 04:39:43 +03:00
Victor Perevertkin
c7ed299aaa
[USBSTOR] Issue a SCSI Request Sense after receiving
...
a CSW with failed status. CORE-15884
Based on Vadim Galyant's patches to usbstor
2019-06-11 04:39:43 +03:00
Victor Perevertkin
5046f1b3fa
[USBSTOR] Keep CBW and CSW inside an IRP context.
...
Remove obsolete fields from the IRP context structure.
2019-06-11 04:39:43 +03:00
Victor Perevertkin
c452f7dab4
[USBSTOR] Refactor request issue code.
...
Pipe handle selection now made more correctly.
Simplified an MDL allocation for a request.
2019-06-11 04:39:43 +03:00
Victor Perevertkin
3faf5efd49
[USBSTOR] Better validate SCSI IRPs.
...
Patch by Vadim Galyant
2019-06-11 04:39:43 +03:00
Victor Perevertkin
f3fd12b9be
[USBSTOR] Rework the routines for sending internal SCSI requests.
...
Now for each request SenseBuffer is correctly set
and 3 attempts are made to be sure the STALL state is cleared and
the error is in something else.
Remove the usage of UFI_INQUIRY_DATA structure in favor of "standard"
INQUIRYDATA structure from scsi.h
Based in Vadim Galyant's patches to usbstor
2019-06-11 04:39:43 +03:00
Victor Perevertkin
ed6724cd7e
[USBSTOR] Do not create a new Irp for USB requests - use the original one
...
from higher-level driver instead.
Refactored CSWCompletionRoutine for correct handling different CSW
statuses, more work to be done here.
2019-06-11 04:39:43 +03:00
Colin Finck
c2c66aff7d
Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys.
2017-10-03 07:45:34 +00:00