Commit graph

787 commits

Author SHA1 Message Date
Victor Perevertkin
e92ab76d0d [REACTOS] Exclude some modules from clang-format 2019-12-28 01:23:49 +02:00
Hermès Bélusca-Maïto
1928e170f2
[BLUE] Fix a visual regression introduced in bfd8a848: Don't touch INBV when resetting internal screen state during driver loading. 2019-12-24 16:13:10 +01:00
Hermès Bélusca-Maïto
aca7ff54b0
[BOOTVID] Correctly fix scrolling and printing when the scroll region contains the whole screen.
Addendum fixes to ca370b49 (r52239) and a965ca6b (r52409).

- Fix the comments to explain what is really happening.

- Fix the boundary calculations in VidDisplayString() so that we can
  correctly display a character in the very last column before going
  to the next line, and fix similarly the vertical boundary calculation.

- Port the fixes to the ARM code.
2019-12-23 21:06:59 +01:00
Hermès Bélusca-Maïto
93e9877225
[BOOTVID] Factor out the common code that is used before setting pixels. 2019-12-23 21:06:58 +01:00
Hermès Bélusca-Maïto
4f76cffb59
[BOOTVID] Code style fixes; Replace some 'do-while' loops by 'for' loops when it makes the code simpler.
+ Fix a potential bug in BitBlt() "4bpp blitting" in case Top == Bottom (i.e. Height == 0).
2019-12-23 21:06:57 +01:00
Hermès Bélusca-Maïto
1d2b0fbcd1
[BOOTVID] Replace hardcoded screen and font size numbers by #define-d values. 2019-12-23 21:06:57 +01:00
Victor Perevertkin
23147330dd
[USBOHCI] Use KeQueryTickCount for timeouts instead of KeQuerySystemTime 2019-12-16 03:21:28 +03:00
Victor Perevertkin
1d9e03b708
[KS] Use KeQueryTickCount for timeouts instead of KeQuerySystemTime
This avoids overflow when system time is changed between calls (for example, via NTP)
2019-12-16 02:28:41 +03:00
Hermès Bélusca-Maïto
bfd8a84865
[BLUE] Improve initialization and interfacing with INBV.
CORE-15901

This fixes display reset transition when an external module acquired
INBV ownership and then released it, similarly to what was done in
commit 0ad65796 for VIDEOPRT.

For this a backup screenbuffer is used to store the contents of the
screen just before an INBV screen acquire transition, and these contents
are restored when it is detected that INBV ownership has been released.
Also, the active text font associated with the active console code-page
is restored, as well as the cursor state and shape.

In addition, any user of BLUE.SYS is now required to explicitly issue
a new IOCTL_CONSOLE_RESET_SCREEN to either enable or disable the screen.
This allows avoiding nasty unwanted screen mode switches when a handle
to the \Device\BlueScreen device is opened but no screen mode switch was
actually wanted - This "fixes" this annoyance on ReactOS and Windows,
when these are running witha VGA-compatible video driver and one wants
to look at properties of the \Device\BlueScreen device using
Sysinternals' WinObj.

Following this, we don't need to check anymore for explicit INBV
ownership by issuing calls to InbvCheckDisplayOwnership(), but instead
we check whether the screen has beeen manually enabled using the
aforementioned IOCTL. This partly supersedes commit 8b553a4b, and allows
fixing the second bug, namely that if we start ReactOS without the
/NOGUIBOOT option (and thus, INBV is active during boot), USETUP would
not show up anything because BLUE.SYS wouldn't display anything on screen.
See CORE-15901.

[USETUP][CONSRV] Call IOCTL_CONSOLE_RESET_SCREEN to tell BlueScreen device to enable the screen.
2019-12-15 03:37:52 +01:00
Hermès Bélusca-Maïto
67c9e81cb0
[BLUE] Use ExFreePoolWithTag(). 2019-12-15 03:36:24 +01:00
Hermès Bélusca-Maïto
45b655ec3a
[BLUE] Improve includes. 2019-12-15 03:36:21 +01:00
Hermès Bélusca-Maïto
d684f90632
[BLUE] Code formatting, add SAL2 annotations, and update file source headers. 2019-12-15 03:36:17 +01:00
Thomas Faber
be617cf987
[ACPICA] Update to version 20191213. CORE-16559 2019-12-14 09:48:11 +01:00
Eric Kohl
c1f22c88ca [STORAGE] Storage driver cleanup part 5 (last part)
Move the fdc and flpydrv drivers into the floppy directory.
2019-11-30 13:33:32 +01:00
Eric Kohl
2a2040a9fe [STORAGE] Storage driver cleanup part 4
Move the floppy driver into the floppy/floppy directory.
2019-11-30 13:13:59 +01:00
Eric Kohl
9393c6a48b [STORAGE] Storage driver cleanup part 3
Move the storahci driver into the port directory.
2019-11-30 12:58:59 +01:00
Eric Kohl
d736908967 [STORAGE] Storage driver cleanup part 2
Move the scsiport driver into the port directory.
2019-11-30 12:19:03 +01:00
Eric Kohl
6b687478d1 [STORAGE] Storage driver cleanup part 1
Move the classpnp driver into the class directory because it is a class driver, just like the class2 driver.
2019-11-30 11:54:33 +01:00
Hermès Bélusca-Maïto
75f188c200
[PCIX][BLUE] Don't hardcode values in KeDelayExecutionThread() call. Remove deprecated code. 2019-11-25 00:41:48 +01:00
Mark Jansen
d4a0549eb6
[MOUNTMGR] Fix out of bounds write
CORE-16530
2019-11-23 16:24:56 +01:00
Pierre Schweitzer
0917815efa
[CDROM] Forcibly declare our CD devices to the MountMgr 2019-11-19 19:05:23 +01:00
Hermès Bélusca-Maïto
ea6d427d10
[I8042PRT] Remove dead commented-out code; Allow sending ROS-specific commands to the kernel debugger since KD64 also support them.
[NTOS:MM] Remove an extra ')' in a DbgPrint() string.
2019-11-17 23:21:55 +01:00
Thomas Faber
d170b6ab3e
[ACPICA] Update to version 20191018. CORE-16434
This includes a cherry-pick of
3e0d03893c
to fix build.
2019-11-16 16:12:16 +01:00
Pierre Schweitzer
cc5c307b8e
[BTRFS] Fix MSVC build 2019-11-13 00:03:22 +01:00
Pierre Schweitzer
62e630de4c
[BTRFS] Upgrade to 1.5
CORE-16494
2019-11-12 19:35:43 +01:00
Pierre Schweitzer
887200703c
[CLASS2] Drop the drive letter hack 2019-11-11 18:18:32 +01:00
Hermès Bélusca-Maïto
3b2f158593
[NTOS][CLASS2][FFS][WIN32SS] Fix some pool tags so that they correctly appear in pool dump lists.
Reminder: in the code they are defined using reverse byte order
(Windows/ReactOS are little-endian OSes).
2019-11-01 19:12:27 +01:00
Pierre Schweitzer
6889cff5b5
[FLOPPY] Make floppy drives letters being handled by the MountMgr
This involves many changes/fixes in the floppy driver:
- Stop creating ourselves our DOS device, it's up to the MountMgr or to the kernel;
- Report each new floppy drive to the MountMgr (this is a hack for now);
- As a consequence, stop storing the symlink name into the DRIVE_INFO structure;
- Store the device name instead;
- On IOCTL_MOUNTDEV_QUERY_DEVICE_NAME, don't return DOS device, but device name;
- On IOCTL_MOUNTDEV_QUERY_DEVICE_NAME, properly return if buffer is way too small;
- Hackplement IOCTL_MOUNTDEV_QUERY_UNIQUE_ID so that it returns device name.
2019-10-27 11:35:23 +01:00
Robert Naumann
5f99f5c1a7 [REISERFS] Fix a copy paste Error. CID 1363527 2019-10-23 17:23:05 +02:00
Robert Naumann
b8032d98a9 [UDFS] Fix a copy paste error. CID1321910 2019-10-23 17:23:05 +02:00
Pierre Schweitzer
457612702b
[MOUNTMGR] Fix invalid WorkerReferences check in QueueWorkItem()
This fixes shutting down ReactOS under certain circumstances, where
the references were incremented, but no worker thread started.
Also, took the opportunity to clarify the WorkerReferences comparisons
where relevant.

CORE-16446
2019-10-22 21:53:48 +02:00
Pierre Schweitzer
b68104dd87
[DISK] Forcibly declare our partitions to the MountMgr
Because our disk.sys doesn't do anything related to PnP
(compared to disk_new.sys), forcibly declare our partitions
to the MountMgr so that it can references them and assign
them a DOS drive letter on demand later on.
2019-10-21 16:50:36 +02:00
Pierre Schweitzer
410c606999
[CLASS2] Hackplement support for IOCTL_MOUNTDEV_QUERY_UNIQUE_ID
This is required so that MountMgr can handle devices that are still
using class2 instead of classpnp.
Given we have no unique ID to return, we'll return device path, which
is far from perfect but which is enough for now to have everything
working.
2019-10-21 16:45:28 +02:00
Pierre Schweitzer
16fcf694ef
[MOUNTMGR] Fix setting up reparse index file name
This fixes memory smashing while attempting to volume
reparse index (we were previously trying to copy the
name on itself, in the middle of itself...).
This code won't go farther on FAT, it requires NTFS.

Now, with this, ReactOS can properly boot with MountMgr
handling DOS devices without any crash or code disabled.
Cf: what was written in 7608ac9.

Modifications in class2, disk, and ntoskrnl are still to
be committed to enable all this.
2019-10-21 12:58:30 +02:00
Pierre Schweitzer
bced3eaa25
[MOUNTMGR] That was not meant to be committed
Even though it shows there might be a bug in the
code handling remote databases in the MountMgr ;-)

Addendum to 7608ac9
2019-10-21 11:03:43 +02:00
Pierre Schweitzer
7608ac9f71
[MOUNTMGR] Misc. fixes for WorkerThread()
- Properly quit the active loop when we're out of work items;
- Fix timeout duration (setting it to 1s);
- Fix handling the "Unloading" variable in case of a shutdown
  so that waiting loop is properly stopped;
- Documented why we're waiting on VolumesSafeForWriteAccess.

This fixes shutting down ReactOS with work items queued.
This is needed here because no one ever sets that event (properly)
created by SMSS though. A. Ionescu was explaining in 2018 that it's
autochk responsibility, but it doesn't seem to be the case in W2K3.
To be investigated.

This fix with all the previous ones and more uncommitted stuff (yet ;-))
allows reaching the first steps towards a NT5 storage stack:
https://twitter.com/HeisSpiter/status/1186199631740506112
2019-10-21 10:58:14 +02:00
Pierre Schweitzer
a058e680b6
[MOUNTMGR] Don't kill Mm when a device has several symlinks
On preflight to compute output size, device name & unique ID were
counted only once per device.
Then, on copy, these two were copied on every MOUNTMGR_MOUNT_POINT
structure. This is counter efficient (data duplication) but also,
it was overruning the output buffer, since the preflight was not
expecting these extra copies.
2019-10-19 18:04:30 +02:00
Pierre Schweitzer
a53992180d
[MOUNTMGR] Fix enumerating drive letter for creating new mountpoint
This is purely a copypasta error fix, which was causing MountMgrNextDriveLetterWorker
to fail as no drive letters were enumerated previously.

With that set of patches, MountMgr now properly assigns drive letters to
new devices!
2019-10-19 16:59:58 +02:00
Pierre Schweitzer
e359a3c888
[MOUNTMGR] Fix interpretation of QueryDeviceInformation GptDriveLetter
Being TRUE doesn't mean the device is GPT and has a drive letter. It just
means that it's not a GPT device with GPT_BASIC_DATA_ATTRIBUTE_NO_DRIVE_LETTER
attribute. In short, if TRUE, it means that the device can receive a drive
letter mount point.

This fixes MountMgrNextDriveLetterWorker bailing out for any attempt to
assign a drive letter to a device.
2019-10-19 16:59:58 +02:00
Pierre Schweitzer
961693f060
[MOUNTMGR] Fix IsFtVolume so that it returns TRUE only for FT volumes 2019-10-19 16:59:58 +02:00
Pierre Schweitzer
225a1e92bd
[MOUNTMGR] Query proper device when creating mount point
We must query the target device, and not the symbolic link
we attempt to create. The later will always fail as it doesn't
exist yet.

This fixes MountMgrCreatePointWorker not working.
2019-10-19 16:59:57 +02:00
Pierre Schweitzer
7b650d2c3e
[MOUNTMGR] Remove cancel routine before completing pending IRP 2019-10-19 16:59:57 +02:00
Pierre Schweitzer
2da92ac67b
[MOUNTMGR] QueryPointsFromMemory: take into account the multiple MOUNTMGR_MOUNT_POINT
This fixes returning too small structure on an IOCTL_MOUNTMGR_QUERY_POINTS call.
The multiple MOUNTMGR_MOUNT_POINT structures were ignored and thus the data of the
first one were erased by the multiple structures.
MountMgr now returns consistent output on this IOCTL call.
2019-10-17 22:42:47 +02:00
Serge Gautherie
f5f52417cb [MOUNTMGR] QueryPointsFromSymbolicLinkName(): Fix a copypasta
Addendum to r55156.

CORE-16371
2019-10-16 21:07:47 +02:00
Serge Gautherie
09beb7502e [MOUNTMGR] Properly look for device and break when found
Also use same pattern in MountMgrCreatePointWorker().

Addendum to a7f97cc70f.
2019-10-06 10:58:30 +02:00
Serge Gautherie
9f8e5d1ce0 [MOUNTMGR] QueryPointsFromMemory(): Do not leak DeviceName.Buffer
Follow-up to 7601011f4e.
2019-10-06 10:52:05 +02:00
Pierre Schweitzer
a7f97cc70f
[MOUNTMGR] Properly look for symlink and break when found
This fixes a bug where MountMgr was returning first found entry
on query even when not matching the requested device.
2019-10-05 21:30:55 +02:00
Serge Gautherie
ed9f0dca14 [USBPORT] USBPORT_InvalidateEndpointHandler(): Properly enumerate endpoints 2019-09-29 13:39:12 +03:00
Thomas Faber
6ec38aa942
[HDAUDBUS] Build a device instance ID from Codec & node number. CORE-13702 2019-09-27 21:29:41 +02:00
Thomas Faber
4c6cc29bb8
[HDAUDBUS] Fix timeouts for hardware register operations. CORE-15874
Most needed to be multiplied by 10 to match Haiku's behavior.
In one case, the broken timeout was offset by a higher number of loop
iterations, which is now  restored.

This should fix failures on real hardware that result in the
"unable to exit reset" print, and avoid a possible subsequent Pnp
manager crash.

Compare with the following (both snooze and KeStallExecutionProcessor use microseconds):
ff38df48cf/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp (L466)
ff38df48cf/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp (L357)
ff38df48cf/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp (L978)
2019-09-26 10:27:31 +02:00
Serge Gautherie
085528c31a [MOUNTMGR] HasDriveLetter(): Simplify code by using a for() loop 2019-09-22 10:25:09 +02:00
Pierre Schweitzer
20b4f0a231
[FLOPPY] Implement IOCTL_MOUNTDEV_QUERY_DEVICE_NAME 2019-09-14 10:48:19 +02:00
Pierre Schweitzer
bf6215c601
[MOUNTMGR] Properly enumerate pending IRPs on cleanup
CORE-16370
2019-09-14 09:41:47 +02:00
Pierre Schweitzer
0a5f86d44a
[MOUNTMGR] Fix MountState usage in MountMgrTargetDeviceNotification
CORE-13882
2019-09-13 20:08:39 +02:00
Pierre Schweitzer
5c678a76a6
[MOUNTMGR] Fix broken check
Only mark volume mounted if it's not waiting for unloading

CORE-13882
2019-09-13 20:08:39 +02:00
Timo Kreuzer
a71a6531ef [UNIATA] Fix uniata on x64 2019-09-08 10:39:01 +02:00
Thomas Faber
5d4f13f625
[ACPICA] Update to version 20190816. CORE-16368 2019-09-08 07:46:53 +02:00
Pierre Schweitzer
7ff3658f10
[BTRFS] Reenable the MountMgr thread
Now that IOCTL_MOUNTMGR_QUERY_POINTS and IOCTL_MOUNTMGR_CHANGE_NOTIFY have
been fixed, the thread no longer eats 100% CPU nor prevent ReactOS shutdown
2019-09-07 23:28:58 +02:00
Pierre Schweitzer
d904ee19c5
[MOUNTMGR] Properly return EpicNumber in MountMgrChangeNotify 2019-09-07 23:07:54 +02:00
Serge Gautherie
400eb23a64 [BTRFS] Revert "Allow driver to start at first stage when no hive is present."
Not needed anymore.

This reverts commit 80e11516b1.
2019-09-07 19:58:03 +02:00
Serge Gautherie
e08dc30569 [BTRFS] Revert "Leak the root stream file object on mount."
Not needed anymore.

This reverts commit c13ccc92f6.
2019-09-07 19:58:03 +02:00
Pierre Schweitzer
6e3c0d360b
[BTRFS] bool must be 1-sized
CORE-16366
2019-09-06 08:56:26 +02:00
Serge Gautherie
b45f27cf2e [MOUNTMGR] Remove a leftover UNREFERENCED_PARAMETER()
Addendum to 77657c22c9.
2019-09-06 08:34:14 +02:00
Pierre Schweitzer
ff19ce934b
[MOUNTMGR] Don't overrun output buffer in QueryPointsFromMemory 2019-09-06 08:30:18 +02:00
Pierre Schweitzer
26a31b160a
[MOUNTMGR] Fix QueryPointsFromSymbolicLinkName and make it working
Select the current stack location for output buffer
And set output size so that buffer gets properly copied to caller
2019-09-06 08:28:36 +02:00
Pierre Schweitzer
d592e00dfa
[MOUNTMGR] Fix QueryPointsFromMemory and make it working
Select the current stack location for output buffer
And set output size so that buffer gets properly copied to caller
2019-09-05 08:36:19 +02:00
Pierre Schweitzer
70d29ec423
[MOUNTMGR] Properly validate input buffer size
This avoids IOCTL_MOUNTMGR_QUERY_POINTS always failing
2019-09-05 08:36:19 +02:00
Pierre Schweitzer
77657c22c9
[MOUNTMGR] Fix global symbolic link creations
They were wrongly pointing to the original target once rewritten
instead of pointing to the proper target: the device.

This notably fixes opening the MountMgr device from user
mode (to perform IOCTL calls, for instance), and might
also fix various bugs dealing with global namespaces.
This might have some various effects in ReactOS~.
2019-09-05 08:36:19 +02:00
Pierre Schweitzer
dcd463ba98
[BTRFS] Fix fileinfo.c build 2019-09-02 22:17:17 +02:00
Pierre Schweitzer
021e25f249
[BTRFS] Fix create.c build 2019-09-02 22:02:45 +02:00
Pierre Schweitzer
fe0a6c9be4
[BTRFS] Fix dirctl.c build 2019-09-02 21:48:54 +02:00
Pierre Schweitzer
318da0c18c
[BTRFS] Upgrade to 1.4
CORE-16354
2019-09-02 08:19:48 +02:00
Stanislav Motylkov
053bf17e8b [BOOTVID] Refactor font data from i386 and arm bootdata.c (#1891) 2019-09-01 23:01:40 +02:00
Victor Perevertkin
88cf5b0a3c
[USB] Enable *_new usb stack 2019-08-20 01:34:58 +03:00
Victor Perevertkin
fc14c095f5
[USBPORT] Fix endless loop, occasionally happened on real hardware 2019-08-20 01:30:52 +03:00
Hermès Bélusca-Maïto
4016225269
[FFS] Silence some only-informative KdPrints. 2019-08-18 15:26:23 +02:00
Victor Martinez
d60acd88cb [UDFS] Avoid freeing Vcb when it couldn't have been allocated in UDFPnpSurpriseRemove()
CORE-11203
2019-08-17 16:49:11 +03:00
Victor Martinez
e5e4362b6d [UDFS] Fix NewCFBName leakage in UDFFirstOpenFile()
CORE-11098
2019-08-17 16:49:11 +03:00
Victor Martinez
b64865fbdf [UDFS] Fix accessing an already freed pointer in UDFMarkAllocatedAsNotXXX()
CORE-11182
2019-08-17 16:49:11 +03:00
Victor Martinez
4805f0cd73 [UDFS] Don't access OldInIcb after being freed
CORE-11199
2019-08-17 16:49:11 +03:00
Victor Martinez
d97e49091d
[UDFS] Fix uninitialized variable
CORE-11216
2019-08-17 15:43:24 +03:00
Victor Perevertkin
90b8646790
[USBOHCI_NEW] Fix unused variable 2019-08-16 20:37:11 +03:00
Stanislav Motylkov
2a8fc2b411 [USBOHCI_NEW] Refactor OHCI_AbortTransfer function
- Added SAL annotation
- Simplified local variables
- Replace counterintuitive `do {} while ()` loops with nice `for` loops
- Get rid of goto and its label, it can be simply avoided
2019-08-16 19:08:04 +02:00
Sylvain Deverre
4d3df0da50 [NTFS] Correctly find attributes stored in another file record in MFT (and referenced in data stream) 2019-08-16 11:08:29 +02:00
Serge Gautherie
68bcc2df7c [NDIS] Enforce '#if DBG' around MiniDisplayPacket[2]()
Also add 'static' on MiniDisplayPacket2().
2019-08-15 21:08:10 +02:00
Timo Kreuzer
0e8392beea [TDI] Improve spec file 2019-08-15 18:04:57 +02:00
Timo Kreuzer
58588b76e2 [REACTOS] Fix MSVC printf format warnings 2019-08-15 15:24:12 +02:00
Hermès Bélusca-Maïto
d7d13b3226
[PROCESSR] Employ usual casing for CurrentControlSet key. 2019-08-10 19:15:38 +02:00
Oleg Dubinskiy
47303268e1 [USBAUDIO] Fix compilation issues 2019-08-03 14:55:57 +02:00
Hermès Bélusca-Maïto
b6135732d4
[DLLs] Fix .spec files regarding OLE-specific exports.
- Do not use hardcoded ordinals, add missing '-private'.
  Except for MSXML3, OLE32 and RSAENH, see commit bff824b2 for more details.

- SHSVCS: The 6 first exports are nonamed with ordinals. Replace exported
  commented stubs by actual exported stubs instead.

Co-Authored-By: Timo Kreuzer <timo.kreuzer@reactos.org>
2019-07-28 16:26:22 +02:00
Timo Kreuzer
08c6d21e1f [REACTOS] Fix warning C4146: unary minus operator applied to unsigned type, result still unsigned 2019-07-27 11:21:28 +02:00
Timo Kreuzer
791b1ad7bd [FASTFAT] Copy an entire field, instead of half-copying it with RtlCopyMemory
Fixes GCC 8 warning:
sdk/include/crt/mingw32/intrin_x86.h:76:12: error: 'memmove' offset [21, 40] from the object at 'DirContext' is out of the bounds of referenced subobject 'Attrib' with type 'unsigned char' at offset 19 [-Werror=array-bounds]
     return memmove(dest, source, num);
            ^~~~~~~~~~~~~~~~~~~~~~~~~~
2019-07-20 13:56:18 +02:00
Thomas Faber
aa46da57d4
[ACPICA] Update to version 20190703. CORE-16202 2019-07-20 08:47:50 +02:00
Timo Kreuzer
ad60726288 [ACPICA] Fix MSVC x64 build
See CORE-16082
2019-07-14 11:35:50 +02:00
Thomas Faber
d9f9cb247c
[PCI] The INIT section must be uppercase. 2019-07-07 08:18:12 +02:00
Serge Gautherie
4253ba71fc [FLOPPY_NEW] Fix MSVC builds 2019-07-06 09:39:03 +02:00
Thomas Faber
76e00fab7e
[PORTCLS] Zero memory in operator new. CORE-16157
Fixes a regression from 99fa38809f, which
replaced the kcom.h/stdunk.h versions (which zero memory) with local
implementations (which don't).

Standard C++ does not guarantee that memory is zeroed but several classes
rely on this, in particular for their m_Ref and m_bInitialized members.

Ideally the constructors should be fixed to initialize all required members,
but that task is error-prone so for now we simply restore the previous
behavior.
2019-07-05 17:31:46 +02:00
Serge Gautherie
6d238e4513 [FASTFAT_NEW] Fix MSVC builds
CORE-14879
2019-07-04 21:16:12 +02:00
Timo Kreuzer
9590cd15f4 [FASTFAT] Fix use after free when volume is unmounted 2019-06-30 13:57:14 +02:00
Eric Kohl
545692e89e [STORPORT] Improvements to the device enumerator code.
- Create PDO for the device
- Send a SCSIOP_INQUIRY command to the new PDO
- Delete the PDO if the inquiry command failed
2019-06-27 23:28:41 +02: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
10260f40d9
[USBOHCI_NEW] Rename counter-intuitive field of Transfer Descriptor 2019-06-25 15:14:21 +03:00
Victor Perevertkin
9004e64b57
[USBOHCI_NEW] Zero out the transfer descriptor right after allocation.
Cleaned up transfer routines and added some more docs.
2019-06-25 15:03:26 +03:00
Victor Perevertkin
3fe397818a
[USBOHCI_NEW] Simplify the MapTransferToTD routine and add some docs 2019-06-25 13:02:35 +03:00
Thomas Faber
3fb5ca3bee
[UNIATA] Update to version 0.47a. CORE-15930 2019-06-25 09:26:09 +02:00
Thomas Faber
2e21126cb0
[ACPICA] Update to version 20190509. CORE-16138 2019-06-25 09:26:07 +02:00
Timo Kreuzer
dc0cd07d21 [CMIDRIVER] Try to fix build 3 2019-06-25 09:11:01 +02:00
Hermès Bélusca-Maïto
306bcd9d73
[BLUE] Initialize the console with a default font for codepage 437. 2019-06-25 02:32:09 +02:00
Timo Kreuzer
aad4096475 [CMIDRIVER] Try to fix build 2 2019-06-25 00:54:00 +02:00
Timo Kreuzer
a14b509974 [CMIDRIVER] Try to fix build 2019-06-25 00:26:08 +02:00
Timo Kreuzer
99fa38809f [STDUNK][PORTCLS][CMIDriver] Fix issue with operator new/delete
Fix for MSVC warning "C2323: 'operator new': non-member operator new or delete functions may not be declared static or in a namespace other than the global namespace."

See https://docs.microsoft.com/en-us/cpp/porting/visual-cpp-what-s-new-2003-through-2015?view=vs-2019 section "Overloaded operator new and operator delete"
2019-06-24 21:17:00 +02:00
Hermès Bélusca-Maïto
ede3fddad7
[BOOTVID] Diverse enhancements.
- Import cmdcnst.h and vga.h headers from the 'vga_new' VGA Miniport Driver,
  that contain definitions related to VGA registers as well as command-stream
  functionality.

- Replace a bunch of hardcoded values by their corresponding defintions.

- Replace "Captain-Obvious" comments in VgaIsPresent() with actual
  explanations from the corresponding function in 'vga_new'.

- Simplify the VgaInterpretCmdStream() function, based on the
  corresponding one from 'vga_new'.

- Use concise comments in the 'AT_Initialization' command stream definition.

- Import the 'VGA_640x480' initialization command stream from 'vga_new'
  and use it as the full VGA initialization stream whenever the HAL
  does not handle the VGA display (HalResetDisplay() returning FALSE).
  Otherwise we just use the 'AT_Initialization' command stream that
  performs minimal initialization.

- Remove unused AT_Initialization and other declarations from ARM build.
2019-06-23 23:59:48 +02:00
Hermès Bélusca-Maïto
8f04a09e74
[BOOTVID] Fixes for VgaIsPresent() and VidInitialize().
- VgaIsPresent(): Re-select the memory mode register before playing
  around with the sequencer flag. Otherwise the VGA may not be detected
  correctly from time to time.

- VidInitialize(): Simplify the initialization loop, reset AddressSpace
  to its "default" value of 1 when calling HalFindBusAddressTranslation()
  on 'NullAddress'.
2019-06-23 03:07:19 +02:00
Hermès Bélusca-Maïto
025cfb108b
[BOOTVID] Simplify the code by introducing and using IO port helper macros.
- Move around two header includes.
- Remove a redundant assignment in VgaInterpretCmdStream().
2019-06-23 02:59:43 +02:00
Bișoc George
42ce8519b6 [FASTFAT][FLTMGR][NTOS] Do not explicitly call ObfDereferenceObject() (#1636)
"Most code should not directly call the platform-specific ObfDereferenceObject() function but use the ObDereferenceObject() macro instead."

CORE-16081
2019-06-22 16:20:58 +02:00
Benjamin Aerni
939b25a15a [I8042PRT] Add Latitude E6400 to the hack list (#1665)
Let it make grow, grow, grow... !!
2019-06-16 23:00:53 +02:00
Victor Perevertkin
1552434940 [NTFS] Do not print debug message for every function call by default 2019-06-15 19:24:27 +03:00
Pierre Schweitzer
95848cb538
[BTRFS] Fix MSVC build
CORE-16111
2019-06-11 12:50:49 +02:00
Pierre Schweitzer
92543df9e1
[BTRFS] Fix MSVC build
CORE-16111
2019-06-11 12:43:43 +02:00
Pierre Schweitzer
f381137c89
[BTRFS] Upgrade to 1.3
CORE-16111
2019-06-11 12:35:19 +02:00
Victor Perevertkin
da1b08e842 [USBSTOR] Properly handle IRP_MN_QUERY_DEVICE_RELATIONS(BusRelations) for FDO.
This fixes Driver Verifier warnings
2019-06-11 04:39:43 +03:00
Victor Perevertkin
04409942d6 [USBSTOR] Register dumb IRP_MJ_SYSTEM_CONTROL handler.
This satisfies Driver Verifier
2019-06-11 04:39:43 +03:00
Victor Perevertkin
126abaf88f [USBSTOR] Improve handling of IRP_MN_QUERY_DEVICE_TEXT for PDOs
CORE-15883
2019-06-11 04:39:43 +03:00
Victor Perevertkin
40b25634ff [USBSTOR] Do not leak fields of DeviceExtensions upon device removal 2019-06-11 04:39:43 +03:00
Victor Perevertkin
fa530aee92 [DISK] Disable IsFloppyDevice check.
It wrongly marks USB flash drives as a floppy device
2019-06-11 04:39:43 +03:00
Victor Perevertkin
b7de5870e6 [USBSTOR] Weaken the type checks of a device.
This adds usb-cdrom support to usbstor.sys
2019-06-11 04:39:43 +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
84f78cb0d7 [USBSTOR] Better handle CBW/CSW transfer errors
and set SrbStatus correctly.
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
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