Commit graph

554 commits

Author SHA1 Message Date
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
Victor Perevertkin
b4c03399ba [USBSTOR] Do not attempt additional processing of SCSI requests.
Now the driver sends all requests transparently.
Inspired by Vadim Galyant's patches to usbstor
2019-06-11 04:39:43 +03:00
Victor Perevertkin
d17d15ab6c [FORMATTING][USBSTOR] Remove Captain Obvious and line-wasting comments.
Now the driver conforms with our current Coding Style.
No functional changes
2019-06-11 04:39:43 +03:00
Hermès Bélusca-Maïto
6fb3dcd312
[FASTFAT] Adjust the 'UnCleanCount', followng commit 9c3c0d12. 2019-06-09 19:05:24 +02:00
Hermès Bélusca-Maïto
4b6abeb352
[FASTFAT] Minor cleanup of the main header file. 2019-06-09 17:56:06 +02:00
Serge Gautherie
38db074491 Misc addendum to CORE-14271 (#1529)
* [ADVAPI32] Simplify RtlCreateUnicodeStringFromAsciiz() return value check

RtlCreateUnicodeStringFromAsciiz() returns a BOOLEAN, not a BOOL.

No functional change.

Addendum to
CORE-14271

* [USER32] Simplify RtlCreateUnicodeStringFromAsciiz() return value check

RtlCreateUnicodeStringFromAsciiz() returns a BOOLEAN, not a UINT.

Also, add a FIXME.

No functional change.

Addendum to
CORE-14271

* [USER32] Simplify RegisterClipboardFormatA/W() a bit

No functional change.

* [UDFS] Simplify SeSinglePrivilegeCheck() return value check

No functional change.

Addendum to
CORE-14271
2019-06-04 16:56:33 +02:00
Eric Kohl
be88574f59 [STORPORT] Detect attached devices 2019-06-02 23:30:02 +02:00
Eric Kohl
631db82058 [STORPORT] Fix resource list size calculation 2019-06-02 14:24:35 +02:00
Timo Kreuzer
2944d29969 [REISERFS] Convert a tab to spaces
Fixes GCC 8 warning:
drivers/filesystems/reiserfs/src/memory.c:874:5: error: this 'if' clause does not guard... [-Werror=misleading-indentation]
     if (Mcb->RfsdFcb)
     ^~
drivers/filesystems/reiserfs/src/memory.c:877:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
  if (RfsdLoadInode(Vcb, &(Mcb->Key), &RfsdIno)) {
  ^~
2019-05-27 13:22:40 +02:00
Timo Kreuzer
81bdf4e360 [CRT] Add missing posix error codes
These are required by latest mingw-w64 stl and we are mixing this with our crt headers.
Define _CRT_NO_POSIX_ERROR_CODES in all modules that define their own constants.
2019-05-27 13:22:40 +02:00
Hervé Poussineau
9a6eb70ff9 [HIDCLASS] Implement IRP_MJ_WRITE 2019-05-14 14:37:22 +02:00
Pierre Schweitzer
883b1f31ac
[BTRFS] Upgrade to 1.2.1
CORE-16004
2019-05-11 11:20:02 +02:00
Hervé Poussineau
2d5a230810 [MOUHID] Correctly detect tablet devices
Some mice give a logical min/logical max which is the maximum move
that they can provide. Those were wrongly detected as absolute mice,
and mouse pointer was mostly stuck at the upper left corner of the
screen.
2019-05-10 11:35:01 +02:00
Hervé Poussineau
2978d4b61b [HIDPARSE/HIDPARSER] Move HidP_* functions from hidparse.sys to hidparser library
Interface between both is not anymore the HidParser_* functions, but
the HidP_* functions and the AllocFunction/FreeFunction/DebugFunctions/
ZeroFunction/CopyFunction.
2019-05-02 20:06:47 +02:00
Hervé Poussineau
bef39dd62e [SERIAL] Immediately complete read IRP if all requested bytes have been found in circular buffer
Previously, we had to wait to receive another byte to finish the first IRP.
2019-05-02 20:06:47 +02:00
Hervé Poussineau
ebd39aa266 [I8042PRT] Do not assert on unknown IOCTL 2019-05-02 20:06:47 +02:00
Hervé Poussineau
501116b68f [HIDCLASS] Implement IOCTL_HID_GET_FEATURE/IOCTL_HID_SET_FEATURE 2019-04-19 22:46:03 +02:00
Thomas Faber
a7634b8e1d
[USBHUB_NEW] Support NULL HubExtension in USBH_PdoRemoveDevice.
Device removal can happen multiple times for PDOs.
2019-04-14 15:32:18 +02:00
Thomas Faber
477cf902e4
[USBHUB_NEW] Fix inverted check in USBH_RestoreDevice.
This allows re-enabling a disabled device.
2019-04-14 15:32:16 +02:00
Thomas Faber
46b0f6d9de
[USBCCGP] Allow unconfiguring the device in USBCCGP_PDOSelectConfiguration.
Fixes device removal for USB audio devices.
2019-04-14 15:32:14 +02:00
Thomas Faber
528fc589c0
[USBCCGP] Do not try to unconfigure a device that is not configured.
Fixes handling failed IRP_MN_START_DEVICE.
2019-04-14 15:32:12 +02:00
Victor Perevertkin
5f4cf8a716 [USBHID] Do not assert if the device was unplugged during an operation. 2019-04-08 12:05:17 +03:00
Hervé Poussineau
902b86eecf [UDFS] Fix macros to support 'bit' being a complex expression
This is for example used in udf_info/mount.cpp:
    UDFSetUsedBits(new_bm, i & ~(d-1), d);
2019-04-07 19:28:18 +02:00
Hervé Poussineau
5f69f99ce2 [UDFS] Keep same includes/defines on x64 as on other architectures 2019-04-07 19:28:18 +02:00
Hervé Poussineau
33cf2c44c5 [MUP] Use _SEH2_AbnormalTermination() instead of _abnormal_termination()
We're already using SEH2 macros, so also use SEH2 functions
2019-04-07 19:28:18 +02:00
Hervé Poussineau
4c1cbd2b53 [EXT2] Add __REACTOS__ check around changes done in 76910c358f 2019-04-07 18:32:29 +02:00
Thomas Faber
89a587169b
[ACPICA] Update to version 20190405. CORE-15926 2019-04-07 10:59:52 +02:00
Jérôme Gardou
23373acbb9 [CMAKE] Use modules instead of shared libraries
There is no need to compile our DLLs as shared libraries since we are
managing symbols exports and imports through spec files.

On my system, this reduces the configure-time by a factor of two.
2019-04-06 17:43:38 +02:00
Pierre Schweitzer
2a104321ee [UDFS] Fix an integer overflow leading to a buffer overrun
Spotted by GCC7
2019-04-04 15:08:21 +02:00
Alexandr A. Telyatnikov
6d5a81013c [UNIATA] Fix for uninitialized Lun pointer
This fixes crash on Intel AHCI init. CORE-15886
2019-04-02 18:02:07 +02:00
Timo Kreuzer
c334c17d69 [UDFS] Fix 64 bit issues 2019-04-02 10:53:23 +02:00
Hervé Poussineau
12c70fb4cf [UDFS] Really use 'logical or' when meant to
'binary or' was also working, but it is less clear.
2019-04-01 11:38:32 +02:00
Hervé Poussineau
76910c358f [EXT2] Correctly zero memory before using it 2019-04-01 11:38:32 +02:00
Thomas Faber
ba1fb9ace9
[ACPICA] Update to version 20190329. CORE-15900 2019-03-30 14:57:35 +01:00
Maxim Smirnov
5570cde271
[NULL] Use correct device characteristics value for the null device 2019-03-28 22:46:04 +01:00
Thomas Faber
b546130731
[UNIATA] Update to version 0.47. CORE-15870 2019-03-24 14:48:32 +01:00
Thomas Faber
526fc76cac
[SERIAL] Do not return NTSTATUS from an interrupt routine. 2019-03-24 09:25:17 +01:00
Thomas Faber
b91cf860cd
[UNIATA] Update to version 46e8. CORE-15843 2019-03-14 13:16:43 +01:00
Thomas Faber
48870fe35e
[UNIATA] Remove an unnecessary ROS-diff. 2019-03-14 13:16:41 +01:00
Thomas Faber
fc9d5d2f55
[USBUHCI_NEW] Fix an infinite loop. 2019-03-11 08:54:03 +01:00
Thomas Faber
026a12fe39
[USBPORT] Implement interface setting in USBPORT_OpenInterface. 2019-03-11 08:54:01 +01:00
Thomas Faber
ac20ab031c
[USBPORT] Correctly handle alternate settings returned from USBPORT_ParseConfigurationDescriptor.
The last parameter of USBPORT_ParseConfigurationDescriptor is a pointer
to a boolean indicating whether any alternate interface settings were
found for the specified interface.
Interpreting it as an alternate setting value, as we did before,
would always override the alternate setting to '1' (if any alternate
descriptors were present), therefore selecting the wrong interface
setting, and possibly causing a buffer overflow on the InterfaceList's
Pipes array.

Found by Special Pool.
2019-03-11 08:53:55 +01:00
Thomas Faber
36c1cb0910
[USBPORT] Correctly find interface descriptor in USBPORT_ParseConfigurationDescriptor
There can be other descriptors between the config descriptor and the
first interface descriptor, so we specifically need to check for
the interface descriptor type and skip anything before that.
We also need to guard against bLength == 0, which would cause an
infinite loop, instead of doing a second bDescriptorType check.
2019-03-11 08:53:53 +01:00
Thomas Faber
1946f6bb25
[USBPORT] Acquire EndpointSpinLock in addition to MiniportSpinLock in USBPORT_ReopenPipe. 2019-03-11 08:53:52 +01:00
Thomas Faber
e47240fb37
[USBPORT] Release StateChangeSpinLock before acquiring MiniportSpinLock.
Found by Driver Verifier.
2019-03-11 08:53:50 +01:00
Thomas Faber
267f5633ee
[USBPORT] Leave IRP status untouched for unhandled interfaces.
Found by Driver Verifier.
2019-03-11 08:53:49 +01:00
Thomas Faber
12a66769fc
[USBPORT] Don't change the status of IRP_MJ_SYSTEM_CONTROL requests.
Found by Driver Verifier.
2019-03-11 08:53:47 +01:00
Thomas Faber
e10e6a85fb
[USBHUB_NEW] Don't leak IRP_MJ_SYSTEM_CONTROL requests.
Found by Driver Verifier.
2019-03-11 08:53:45 +01:00
Pierre Schweitzer
4e07b3b9f9
[AFD] Don't reallocate buffers if windows sizes didn't change 2019-03-10 12:27:30 +01:00