Commit graph

56 commits

Author SHA1 Message Date
Amine Khaldi 6b89580cf4 [KBDCLASS]
* Do not include debug.h from within the main header.
* Improve the GUIDs situation.
* Remove one time inclusions from the main header and put them back where they belong.
CORE-7716

svn path=/trunk/; revision=61878
2014-01-29 10:53:48 +00:00
Cameron Gutman ccae886429 [MOUCLASS][KBDCLASS]
- Fix a file object reference leak on legacy enumerated keyboard and mouse port drivers

svn path=/trunk/; revision=56067
2012-03-06 22:20:02 +00:00
Cameron Gutman e321ae7ab1 [KBDCLASS][MOUCLASS]
- Demote an assertion into a warning

svn path=/trunk/; revision=55752
2012-02-20 12:08:35 +00:00
Cameron Gutman 9a4a85968d [KBDCLASS]
- Kill the rest of the input stack hack of doom

svn path=/trunk/; revision=55751
2012-02-20 11:47:46 +00:00
Cameron Gutman 022f4b2ce5 [USB]
- We proudly merge the first charge of the usb-bringup branch. We do want to stress hardware support is still under heavy development and testing in real hardware is experimental
- Merge the Human Interface Device Stack(HID) which is used for mice / keyboards and other devices which use the USB interface, consisting of hidusb, hidparse, hidclass, mouhid, kbdhid
- Merge the composite driver, supports USB composite devices, laid out in usbccgp
- Merge the generic hub driver, which supports the USB root hub and in future USB hubs. Driver is usbhub
- Merge the Open Host Controller Interface driver (ohci)
- Merge the Enhanced Host Controller Interface driver (ehci)
- Merge the many fixes in other areas of ReactOS needed for USB to work (ntoskrnl, pci, inf, umpnpmgr, usetup)
- Special thanks goes the Haiku team, whose excellent code has provided a great base for the development of the new ReactOS USB / HID stack
- The development of the USB stack has shown the great potential when ReactOS developers team up together to achieve a common goal. The involved developers are here, listed alphabetically:

Alex Ionescu
Amine Khaldi
Cameron Gutman
Johannes Anderwald
Michel Martin
Thomas Faber
Thomas Lotz(Haiku)

Let's start the ReactOS revolution

svn path=/trunk/; revision=55555
2012-02-12 04:59:51 +00:00
Cameron Gutman c2d0d784c7 [USB-BRINGUP-TRUNK]
- Create a branch to do a proper merge of USB work from a trunk base instead of from cmake-bringup
- In the future, DO NOT under any circumstances branch another branch. This leads to merge problems!

svn path=/branches/usb-bringup-trunk/; revision=55018
2012-01-20 20:58:46 +00:00
Cameron Gutman 358cc6d2aa [KBDCLASS]
- Add a small hack to bind all keyboard port devices to the same keyboard class device when no default setting is present (circumvents win32k not supporting multiple keyboard class FDOs)

svn path=/trunk/; revision=54120
2011-10-13 21:38:07 +00:00
Cameron Gutman 89107a6e11 [KBDCLASS/MOUCLASS]
- Better fix for the race condition

svn path=/trunk/; revision=54042
2011-10-07 05:52:52 +00:00
Cameron Gutman 8b969e61ec [KBDCLASS/MOUCLASS]
- Fix a race condition in IRP queuing that can cause an assertion to fail in the cancellation routine

svn path=/trunk/; revision=54041
2011-10-07 05:23:16 +00:00
Amine Khaldi 2817ba1e7e * Comment out some unused but set variables, remove some others.
* Allow warnings for some 3rd party code.

svn path=/trunk/; revision=53693
2011-09-11 16:56:56 +00:00
Michael Martin 56cc203023 - CreateClassDeviceObject/ClassAddDevice: Do not create KeyboardClass device with exclusive access as it will prevent key loggers from working.
svn path=/trunk/; revision=41054
2009-05-23 01:37:34 +00:00
Aleksey Bragin b988d2bd3d - Move part of the 1st stage pnp hacks to kbdclass driver. Previously, the driver (i8042prt) relied on kbdclass's normal reinit routine being called BEFORE a registered boot reinit routine, which is certainly wrong on a real NT system.
- Now, the correct order is ensured, and it is not relying on a broken reinit calling order in ReactOS anymore.

svn path=/trunk/; revision=39856
2009-03-03 12:06:57 +00:00
Dmitry Gorbachev ebaf0cf88c Silence compiler warnings (4/11).
svn path=/trunk/; revision=37826
2008-12-03 17:29:38 +00:00
KJK::Hyperion 1bd07ee187 modified include/reactos/probe.h
Workaround for gcc 4.1.3. See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38054#c7

modified   ntoskrnl/include/internal/mm.h
   gcc 4.3.2 doesn't like to be told to inline MmAcquirePageListLock

modified   ntoskrnl/include/internal/probe.h
   Cleaning up after TSVN's buggy "apply patch"

modified   subsystems/win32/win32k/ntuser/message.c
   Silence a gcc 4.3.2 warning (possibly incorrectly)

modified   dll/directx/ddraw/ddraw.rbuild
modified   dll/win32/gdi32/gdi32.rbuild
modified   dll/win32/kernel32/kernel32.rbuild
modified   dll/win32/psapi/psapi.rbuild
modified   dll/win32/setupapi/setupapi.rbuild
modified   dll/win32/syssetup/syssetup.rbuild
modified   dll/win32/user32/user32.rbuild
modified   drivers/input/kbdclass/kbdclass.rbuild
modified   drivers/input/mouclass/mouclass.rbuild
modified   drivers/network/afd/afd.rbuild
modified   drivers/network/tcpip/tcpip.rbuild
modified   lib/rtl/rtl.rbuild
modified   subsystems/win32/win32k/win32k.rbuild
modified   subsystems/win32/win32k/objects/gdiobj.c
   gcc 4.1.3 workarounds. See embedded comments

modified   base/services/eventlog/eventlog.h
modified   dll/win32/advapi32/advapi32.h
   Removed superfluous includes of pseh/pseh.h

modified   dll/directx/ddraw/Ddraw/ddraw_displaymode.c
modified   dll/directx/ddraw/Ddraw/ddraw_main.c
modified   dll/directx/ddraw/Ddraw/ddraw_setcooperativelevel.c
modified   dll/directx/ddraw/Ddraw/GetCaps.c
modified   dll/directx/ddraw/Ddraw/GetDeviceIdentifier.c
modified   dll/directx/ddraw/main.c
modified   dll/directx/ddraw/rosdraw.h
modified   dll/directx/ddraw/Surface/surface_main.c
   ddraw migrated to PSEH 2.0

modified   dll/win32/gdi32/include/precomp.h
modified   dll/win32/gdi32/misc/misc.c
modified   dll/win32/gdi32/objects/bitmap.c
   gdi32 migrated to PSEH 2.0

modified   dll/win32/kernel32/except/except.c
modified   dll/win32/kernel32/file/find.c
modified   dll/win32/kernel32/k32.h
modified   dll/win32/kernel32/mem/isbad.c
modified   dll/win32/kernel32/misc/console.c
modified   dll/win32/kernel32/process/procsup.c
modified   dll/win32/kernel32/string/lstring.c
modified   dll/win32/kernel32/thread/thread.c
   kernel32 migrated to PSEH 2.0

modified   dll/win32/psapi/precomp.h
modified   dll/win32/psapi/psapi.c
   psapi migrated to PSEH 2.0

modified   dll/win32/setupapi/cfgmgr.c
modified   dll/win32/setupapi/setupapi_private.h
   setupapi migrated to PSEH 2.0

modified   dll/win32/syssetup/wizard.c
   syssetup migrated to PSEH 2.0

modified   dll/win32/user32/include/user32.h
modified   dll/win32/user32/windows/class.c
modified   dll/win32/user32/windows/text.c
modified   dll/win32/user32/windows/window.c
   user32 migrated to PSEH 2.0

modified   drivers/input/kbdclass/kbdclass.c
modified   drivers/input/kbdclass/kbdclass.h
   kbdclass migrated to PSEH 2.0

modified   drivers/input/mouclass/mouclass.c
modified   drivers/input/mouclass/mouclass.h
   mouclass migrated to PSEH 2.0

modified   drivers/network/afd/afd/info.c
modified   drivers/network/afd/afd/lock.c
modified   drivers/network/afd/afd/tdi.c
modified   drivers/network/afd/afd/tdiconn.c
   afd migrated to PSEH 2.0

modified   drivers/network/lan/lan/lan.c
   lan migrated to PSEH 2.0

modified   drivers/network/tcpip/tcpip/dispatch.c
   tcpip migrated to PSEH 2.0

modified   lib/rtl/debug.c
modified   lib/rtl/res.c
modified   lib/rtl/rtl.h
modified   lib/rtl/unicode.c
modified   lib/rtl/workitem.c
   rtl migrated to PSEH 2.0

modified   ntoskrnl/include/precomp.h
   ntoskrnl migrated to PSEH 2.0

modified   subsystems/csr/csrsrv/api.c
   csrsrv migrated to PSEH 2.0

modified   subsystems/win32/win32k/eng/bitblt.c
modified   subsystems/win32/win32k/eng/mem.c
modified   subsystems/win32/win32k/include/mmcopy.h
modified   subsystems/win32/win32k/misc/copy.c
modified   subsystems/win32/win32k/ntuser/callback.c
modified   subsystems/win32/win32k/ntuser/class.c
modified   subsystems/win32/win32k/ntuser/clipboard.c
modified   subsystems/win32/win32k/ntuser/cursoricon.c
modified   subsystems/win32/win32k/ntuser/display.c
modified   subsystems/win32/win32k/ntuser/hook.c
modified   subsystems/win32/win32k/ntuser/input.c
modified   subsystems/win32/win32k/ntuser/kbdlayout.c
modified   subsystems/win32/win32k/ntuser/menu.c
modified   subsystems/win32/win32k/ntuser/misc.c
modified   subsystems/win32/win32k/ntuser/ntstubs.c
modified   subsystems/win32/win32k/ntuser/painting.c
modified   subsystems/win32/win32k/ntuser/simplecall.c
modified   subsystems/win32/win32k/ntuser/sysparams.c
modified   subsystems/win32/win32k/ntuser/window.c
modified   subsystems/win32/win32k/objects/bitblt.c
modified   subsystems/win32/win32k/objects/bitmaps.c
modified   subsystems/win32/win32k/objects/brush.c
modified   subsystems/win32/win32k/objects/cliprgn.c
modified   subsystems/win32/win32k/objects/color.c
modified   subsystems/win32/win32k/objects/coord.c
modified   subsystems/win32/win32k/objects/dc.c
modified   subsystems/win32/win32k/objects/dcutil.c
modified   subsystems/win32/win32k/objects/dibobj.c
modified   subsystems/win32/win32k/objects/fillshap.c
modified   subsystems/win32/win32k/objects/font.c
modified   subsystems/win32/win32k/objects/freetype.c
modified   subsystems/win32/win32k/objects/icm.c
modified   subsystems/win32/win32k/objects/line.c
modified   subsystems/win32/win32k/objects/path.c
modified   subsystems/win32/win32k/objects/pen.c
modified   subsystems/win32/win32k/objects/print.c
modified   subsystems/win32/win32k/objects/region.c
modified   subsystems/win32/win32k/objects/text.c
modified   subsystems/win32/win32k/pch.h
   win32k migrated to PSEH 2.0

svn path=/trunk/; revision=37776
2008-11-30 19:28:11 +00:00
Hervé Poussineau 242b0d5be5 Replace DPRINT/DPRINT1 by dynamic traces
svn path=/trunk/; revision=34791
2008-07-25 20:24:46 +00:00
KJK::Hyperion b16ac9683a - Remove WINE-isms from KeDeviceQueue code
- Fix memory corruption that happened pretty much everytime you pressed a key or moved the mouse -- reponsible for countless crashes, including the famous ASSERT during 1-stage setup.
 - Remove anti-memory-corruption-workaround from VFAT
 - Note: If you're going to do use device queues in your driver, please learn how. Kthxbye.
Patch by Alex Ionescu <alex.ionescu@reactos.org>
_____

Alex,
 Marry me,
KJK::Hyperion
XOXOXO

See issue #3116 for more details.

svn path=/trunk/; revision=33633
2008-05-22 11:46:46 +00:00
Hervé Poussineau 28e9a590db Fix indentation, to match mouclass one.
svn path=/trunk/; revision=33431
2008-05-11 10:03:52 +00:00
Filip Navara a173ef04c2 A driver-supplied Cancel routine is called with the cancel spin lock held, it must be released on IRP completion. Patch by R.T.Sivakumar <rtshiva@gmail.com>.
svn path=/trunk/; revision=33429
2008-05-11 09:47:57 +00:00
Hervé Poussineau fae0c09e4b Report STATUS_NOT_SUPPORTED when IOCTL is not supported
svn path=/trunk/; revision=30068
2007-11-02 13:01:15 +00:00
Hervé Poussineau 426db02b5b Support IRP cancellation
svn path=/trunk/; revision=30066
2007-11-02 12:36:50 +00:00
Daniel Reimer ae7da04787 Delete all Trailing spaces in code.
svn path=/trunk/; revision=29690
2007-10-19 23:21:45 +00:00
Christoph von Wittich 9f79a749af Never call IoCompleteRequest while holding a spin lock. Attempting to complete an IRP while holding a spin lock can cause deadlocks.
svn path=/trunk/; revision=27429
2007-07-06 17:14:24 +00:00
Hervé Poussineau 1cf915a077 ZeroMemory the correct amount of bytes
svn path=/trunk/; revision=27398
2007-07-05 07:05:05 +00:00
Christoph von Wittich 7f02b7b93c ZeroMemory the correct amount of bytes
svn path=/trunk/; revision=27397
2007-07-05 01:24:57 +00:00
Hervé Poussineau 6b63d35926 Use a tag when allocating/freeing some memory
svn path=/trunk/; revision=26990
2007-06-04 09:25:04 +00:00
Hervé Poussineau 0423e310b2 Fix warnings
svn path=/trunk/; revision=26128
2007-03-18 00:27:02 +00:00
Hervé Poussineau 4670093f37 Fix default data sent to RtlQueryRegistryValues
svn path=/trunk/; revision=26124
2007-03-17 20:53:05 +00:00
Hervé Poussineau c4a6f8d938 Fix calling convention for class callbacks
svn path=/trunk/; revision=24567
2006-10-18 22:40:39 +00:00
Hervé Poussineau 3674f2ef32 Fix 2 typos (spotted by Fireball)
svn path=/trunk/; revision=24367
2006-10-02 19:36:14 +00:00
Hervé Poussineau b606a6771c Do not expect a call to AddDevice with a NULL Pdo. Those are not guaranteed
svn path=/trunk/; revision=24323
2006-09-30 22:41:23 +00:00
Hervé Poussineau 2c59aa9330 - kbdclass/mouclass should be able to return more than one keystroke/mouse move during a IRP_MJ_READ.
- Better cleanup in case of error in ClassAddDevice
- Registering the interface is optional. Don't fail in case of error.

svn path=/trunk/; revision=23129
2006-07-17 22:13:40 +00:00
Magnus Olsen 64e3f510fe Tempary fixing kbdclass and mouse class u can not call on IoDeleteDevice before disabler the keyboard or mouse driver other wise it will bsod at shoutdown of ReactOS, create the frist boot problem. that we have seen on BootCD; Hpoussin I have comment out iodevice for now, please look at it when u got time.
svn path=/trunk/; revision=23068
2006-07-15 20:14:44 +00:00
Hervé Poussineau d0bbf9199b In case of error, free the input data buffer only if we just allocated it.
svn path=/trunk/; revision=23052
2006-07-13 22:20:54 +00:00
Hervé Poussineau 05917e3fee Don't change PortData pointer, as it is allocated memory, and so, it is easier to free it when needed.
svn path=/trunk/; revision=23010
2006-07-11 13:38:59 +00:00
Hervé Poussineau 1a5e9cdfd8 Don't be so aggressive in debug messages.
svn path=/trunk/; revision=22664
2006-06-27 11:09:23 +00:00
Hervé Poussineau 28ab30ea8d Don't call IoRaiseHardError at DISPATCH_LEVEL
svn path=/trunk/; revision=21791
2006-05-03 14:42:28 +00:00
Hervé Poussineau fbd4530bfa Complete IRP_MJ_CREATE, IRP_MJ_CLOSE, IRP_MJ_CLEANUP
Use correct buffer when filling read request. Use SEH when needed
Correctly propagate DO_BUFFERED_IO, DO_DIRECT_IO and FILE_DEVICE_SECURE_OPEN flags

svn path=/trunk/; revision=21741
2006-04-25 22:22:22 +00:00
Hervé Poussineau 99ea202a07 Don't dereference device objects if they were not referenced
Remove one hack from kbdclass

svn path=/trunk/; revision=21708
2006-04-22 14:08:43 +00:00
Hervé Poussineau 31dc05f5f1 kbdclass and mouclass:
- Better synchronization of code between kbdclass and mouclass
- Better cleanup in ClassAddDevice in case of error
- Better support of legacy devices
kbdclass only:
- Send IOCTLs to lower device

svn path=/trunk/; revision=21599
2006-04-16 07:17:34 +00:00
Hervé Poussineau a40d0cc620 Disable some more code that may crash. I'll look at it later
svn path=/trunk/; revision=21196
2006-02-26 12:22:40 +00:00
Hervé Poussineau 49da356967 Revert simplification of SearchForLegacyDrivers done in r21188, because it breaks bootcd
svn path=/trunk/; revision=21195
2006-02-26 12:14:48 +00:00
Hervé Poussineau 2c5b094ca5 Send IOCTL_* to the port device objects. Keyboard LEDs should now work
Simplify code in SearchForLegacyDrivers

svn path=/trunk/; revision=21188
2006-02-24 13:38:14 +00:00
Hervé Poussineau 6402246022 Replace STATUS_UNSUCCESSFUL by STATUS_TOO_MANY_NAMES
svn path=/trunk/; revision=20526
2006-01-02 11:32:03 +00:00
Hervé Poussineau 290837445f Fix little bug which prevented IRP_MJ_PNP to be forwarded to lower driver
Set eol-style to native for usbstor driver files

svn path=/trunk/; revision=20256
2005-12-18 20:50:26 +00:00
Hervé Poussineau 0bfe9a412e Revert 19324 and part of 19325...
svn path=/trunk/; revision=19328
2005-11-18 20:35:42 +00:00
Hervé Poussineau e253c1b277 - Don't use buffered I/O, to prevent some lag
- mouclass: Change the critical section place, to follow changes done in kbdclass in r19322

svn path=/trunk/; revision=19325
2005-11-18 17:28:19 +00:00
Art Yerkes 82beaf2b2a Fixed skipped events from keyboard:
- Wait for IO if it would be pending
- Don't copy into UserBuffer directly in read because it'll be 
  overwritten.  Use Irp->AssociatedIrp.SystemBuffer.

svn path=/trunk/; revision=19322
2005-11-18 10:53:32 +00:00
Hervé Poussineau c8a200b0f6 - Add registry entry in HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP for each keyboard class DO
- Don't search for legacy port drivers in DriverEntry, but in first AddDevice
- Don't dereference non-referenced objects

svn path=/trunk/; revision=19094
2005-11-09 11:15:42 +00:00
Hervé Poussineau 1974f400e3 When a driver is a legacy driver, call its AddDevice function with a NULL Pdo
svn path=/trunk/; revision=19059
2005-11-08 17:20:58 +00:00
Hervé Poussineau cfd5a15157 Revert Kdb and Keyboard strings in name to share more code with mouclass
Fix PORT_DEVICE_EXTENSION and CLASS_DEVICE_EXTENSION structures and use them correctly (PORT_DEVICE_EXTENSION was not used...)
ObDereference DOs when an error occurs, instead of ObReferencing them

svn path=/trunk/; revision=19010
2005-11-05 08:21:59 +00:00