- Fix handling of some PnP IRPs
- Handle IRP_MN_STOP_DEVICE as it travels down the stack not up
- Only complete the IRP_MN_QUERY_XXX_DEVICE IRPs if we fail them otherwise pass them down the device stack
- Handle IRP_MN_CANCEL_XXX_DEVICE as it travels back up the stack not on its way down
- Append our flags when handling IRP_MN_QUERY_PNP_DEVICE_STATE and pass it down the device stack
svn path=/trunk/; revision=51927
- Set up periodic threshold (90 %)
- Add function to retrieve interrupt endpoints
- Add function to retrieve specific descriptors from interface. These are used by HID devices such as mice / keyboards
- Add function to retrieve interrupt interval
- Enqueue all endpoint descriptors at the end of the associated queue
- Only notify hardware of insertion when it is an bulk / control request
- Scan interrupt endpoint list to find the completed transfer descriptor
- Add debugging function to print out linked endpoint descriptors
- Interrupt transfers are now implemented.
- Tested in Windows XP SP3 + Vbox 4.04 + Microsoft 5-Button Mouse. The HID mouse installs, initializes and starts up. Unfortunately the mouse does not work as expected yet
svn path=/branches/usb-bringup/; revision=51922
- Remove dead code
- Silence traces
- Pass status & DoneHead as parameters to dpc routine
- Move IUSBRequest cleanup code into new function and use it for bulk / control transfer cleanup
- Fix bugs in AllocateEndpointDescriptor. It did not take the device address into account. It also did not respect the direction of the descriptor
- Implement support for bulk transfer requests
- Handle irp completion in CompletionCallback
- Tested in Windows XP SP3 + Vbox 4.04 + USB2.0 disabled + ReactOS usbstor + USB mass storage device
- OHCI Mass storage support is now also ready
- Next interrupt transfers
svn path=/branches/usb-bringup/; revision=51917
Store the PortName value in the registry.
Please note that SetupDiCreateDevRegKey and SetupDiOpenDevRegKey are broken because they do not open or create the 'Device Parameters' subkey of a device instance key but the device instance key itself.
svn path=/trunk/; revision=51916
- Start to put together the logon / logoff user interface process
- It currently paints an exact pixel replica of WinXP's welcome screen in a logging off state
- Just a bit of fun at the moment, but will be part of the UI revamp we're all working towards.
svn path=/trunk/; revision=51906
- Implement ComDBClaimNextFreePort and ComDBReleasePort.
- Add stubs for ComDBGetCurrentPortUsage and ComDBResizeDatabase.
- Do not keep the port bitmap in a buffer between calls but use a read-modify-write strategy instead.
- Replace pointer-based access to the port bitmap by index-based access.
- Use ComDBClaimNextFreePort in the serial port installer.
See issue #6272 for more details.
svn path=/trunk/; revision=51901
- Add glue code for supporting iso transfers
- Remove dead from Handle
- Remove broken asserts
- Add support for string descriptors
- Add support for class specific endpoint requests (Needs be ported to usbehci)
- Link to usbd driver
- Add support for retrieving string descriptor
- Rewrite configuration descriptor handling in IUSBDevice. New code is smaller, smarter and handles a lot more cases. Needs to be ported to usbehci
- Wrap usbdlib.h include in extern c macro, it has c linkage
- Control transfers should now work
- Need to implement support for isochronous / bulk / interrupt transfers until functional
- Tested with Bluetooth USB Stick (multi function, interrupt / bulk / control / isochronous) / USB Microphone (isochronous & control) in XP SP3
svn path=/branches/usb-bringup/; revision=51900
- Fix remove locks with debug block initialization in IoInitializeRemoveLockEx(). Before only their debug block was initialized, and not the lock itself...
- Implemented support remove locks debug blocks in IoAcquireRemoveLockEx(), IoReleaseRemoveLockEx() and IoReleaseRemoveLockAndWaitEx()
This will help debugging in storage stack and is required since partmgr is using them.
svn path=/trunk/; revision=51898
- Merge 48786. (This is why we moved to C++, so much cleaner than the previous C code.)
- Improve parameter checks for IShellLinkA interface.
- Fix heap corruption when an invalid pointer is passed.
- Implement IPersistFile_fnGetCurFile.
- TODO: Add same checks to IShellLinkW interface and fix IShellLink[A|W]::GetPath / SetPath / SetIdList / GetIdList logic.
svn path=/trunk/; revision=51891
- Merge 48254, 48371, 48463, 48501
- Don't worry about trying to build this dll, it needs the new PSDK interfaces which won't be committed until the very end as they'll break the existing shell32. It make take a day or two as everything has to be merged by hand.
svn path=/trunk/; revision=51890
- Add sanity checks
- Preserve command status value when notifying the hc that a control / bulk endpoint was added
- Re-enable root hub notification interrupt when reset port has been completed
- Dispatch processing to USBQeueu when DoneHead event arrives
- Scan endpoints to find the logical endpoint which was completed by the hardware
- Signal completion to IUSBRequest by calling CompletionCallback
- Create a final transfer descriptor which is linked to the endpoint descriptor
- Control transfers now appear to be working (Device retrieves device descriptor / configuration descriptor and succeeds in setting device address)
- Configuration parsing code needs more work now (currently fails there due to invalid / unexpected configuration descriptor from device)
svn path=/branches/usb-bringup/; revision=51888
- Enable global power mode
- Wait untill reset is complete
- Clear reset complete bit when reset is done
- Enable port
- Reset port now works
- USBOHCI still hangs after adding first control request, needs more investigation
svn path=/branches/usb-bringup/; revision=51883
Addenum. This change slipped past in commit 51873. Fix name of irot header include, which should be irot.h and not irot_s.h. Fixes rpcss build in MSVC.
svn path=/trunk/; revision=51874
- Add msports.h header file.
- Add the initial version of the com port database and use it to track the used com ports.
svn path=/trunk/; revision=51866
- Start implementing control transfers
- Move initialization of usb queue after the bulk / control head endpoints have been created
- Add interface functions to retrieve bulk / control head endpoint descriptors
- Add macros for setting transfer descriptors field (taken from Haiku)
- Partly implement IUSBQueue::AddUSBRequest for control / bulk transfers
- Create endpoint descriptor for control request and link setup descriptor to it
- Link setup descriptors to data descriptor / status descriptor
- WIP (needs fixes)
svn path=/branches/usb-bringup/; revision=51864
- Create a new library msvcrtex, which will be automatically linked, when msvcrt is linked. This is yet a minimal version which replaces the different mingw libs.
- Use proper unicode entrypoints
- remove unneeded libcoldname.a
svn path=/trunk/; revision=51860
- Fix bug in calculating offset of status register
- Start implementing deferred processing routine
- Signal status change when new device is arrived
- Implement basic GetPortStatus
- Start implementing SetPortFeature, ClearPortStatus
- ResetPort not yet fully working, WIP
svn path=/branches/usb-bringup/; revision=51858
- Add check that controller is functional state
- enable interrupts after the controller has been started
- partly implement isr routine
svn path=/branches/usb-bringup/; revision=51852
- Start of OHCI support
- Based on new usbehci driver and Haiku USB Stack
- Driver initializes the controller and retrieve number of ports
svn path=/branches/usb-bringup/; revision=51851
Arch Blackmann should know not to remove empty lines at the end of resource/rsrc files in base\applications. Should fix MS Linker fatal error RC1004 for modules affected.
svn path=/trunk/; revision=51844
Determine serial port names COM1-4 and parallel port names LPT1-2 from their resources. Other serial and parallel are still named COMx and LPTx.
svn path=/trunk/; revision=51843
- base/applications. pl-PL.rc conversion;
- add PRAGMA, required by MSVC to rsrc/modulename/resource.rc, instead of individual localisation files. Localisation files already converted to UTF-8 will be placed at the end, after PRAGMA.
Tested on rbuild/cmake/nmake
svn path=/trunk/; revision=51841