Commit graph

50597 commits

Author SHA1 Message Date
Sir Richard 61dab06b71 [NTOS]: For debugging only, want to see what is excercising MmAllocatePagesForMdl. The way I wrote this seems broken, but I can't find anything to test it with.
svn path=/trunk/; revision=56010
2012-03-04 19:51:22 +00:00
Pierre Schweitzer 4f16fa360c [RAMDISK]
Implement RamdiskFlushBuffers, RamdiskUnload

svn path=/trunk/; revision=56009
2012-03-04 19:48:09 +00:00
Kamil Hornicek b9862648ef [WIN32K]
Take the "unsignedness" of the index into account.

svn path=/trunk/; revision=56007
2012-03-04 19:20:25 +00:00
Pierre Schweitzer 300da180c0 [RAMDISK]
Implement RamdiskSetPartitionInfo and make use of it
Also use RamdiskGetPartitionInfo in RamdiskWorkerThread

svn path=/trunk/; revision=56002
2012-03-04 18:32:07 +00:00
Jérôme Gardou 75e0ec3feb [NTOSKRNL]
- fix code assuming System process pointer is never NULL, which is the case when we're creating it.

svn path=/trunk/; revision=56001
2012-03-04 17:57:44 +00:00
Sir Richard 645e6a793a [MEGAPERF]: This build introduces the following performance boosts:
- Using a dead stack lookaside list for up to 5 dead kernel thread stacks. 1500% improvement when rapidly destroying/creating threads, such as during second stage setup and many winetests.
- Using a free pool page lookaside list for up to 12 free non-paged or paged pool pages. 800% improvement when allocating big pages from the pool, as well as during pool expansion.
- Using a bucketized per-processor and local list (in the KPRCB) for block sizes between 1 and 32 bytes. 1000% improvement when rapidly allocating/freeing small pool allocations, and 8x reduction in pool fragmentation.

svn path=/trunk/; revision=56000
2012-03-04 17:56:00 +00:00
Sir Richard 6c3e9221be [NTOS]: Drop a reference count to the page table in MiDeleteSystemPageableVm as ARM3 now owns PDEs. This helps out yet again to free a little bit of extra RAM up.
svn path=/trunk/; revision=55999
2012-03-04 17:42:56 +00:00
Timo Kreuzer e3e2689cbf [GENDIB]
- Generate ansi style indentation
- Fix signed/unsigned MSVC warnings in generated code

svn path=/trunk/; revision=55998
2012-03-04 13:33:07 +00:00
Timo Kreuzer 10dabf2876 [GENDIB]
Fix formatting

svn path=/trunk/; revision=55997
2012-03-04 13:06:02 +00:00
Pierre Schweitzer d2e6e7b9d0 [NTOSKRNL]
Comment out two overzealous ASSERTs

svn path=/trunk/; revision=55996
2012-03-04 12:52:02 +00:00
Timo Kreuzer 354085c7e8 [WIN32K]
Fix build 2

svn path=/trunk/; revision=55995
2012-03-04 12:01:59 +00:00
Timo Kreuzer 3159c6f62f [WIN32K]
Fix build

svn path=/trunk/; revision=55994
2012-03-04 11:43:08 +00:00
Timo Kreuzer a508886eb0 [WIN32K]
- Fix a possible integer overflow in NtGdiCreateBitmap
- Don't cast length of LARGE_STRING (ULONG) to USHORT, instead truncate to MAXUSHORT. This is still hacky, but better than before.
- Fix MSVC warnings

svn path=/trunk/; revision=55993
2012-03-04 11:32:43 +00:00
Johannes Anderwald a5bdcfa727 [LIBUSB]
- Fix bug while scanning endpoint descriptors
- Do not assume interface info has the correct number of pipes set
- Fix alternate interface handling
- Tested in VBox + USB Audio Device

svn path=/trunk/; revision=55992
2012-03-04 11:07:13 +00:00
Sir Richard 9bb1ba5ee4 [NTOS]: If the address space is exhausted, don't ASSERT, simply return failure just as Windows does. Should fix the last of the ASSERTions on TestBot.
Next step is to support VirtualProtect/Query correctly.

svn path=/trunk/; revision=55991
2012-03-04 07:04:42 +00:00
Sir Richard 83a2328786 [NTOS]: Blimey this was a hard one. When using the reserved flag to request 1MB in a new process (which is used for starting SMSS and CSRSS), we must request 1MB - 256 bytes (or any number, actually) to offset the fact that with a base address of 0x4, a 1MB region gets us at 0x100FFF, and not 0xFFFF, because Windows computes ending address *before* alignment, and then returns a new region size for you (so if you pass in 1MB, you get 1MB + 4096KB). In Win32csr, when the code is trying to release 1MB, this ended up in our "Case A", because it would still leave a page in the VAD. Fixed rtl to request just shy off a MB. Verified on Windows as well.
[NTOS]: The fix above was due to fixing "EndingAddress" which was being initialized to zero too late (after writing to it!). This caused allocations with a fixed base address that were already on top of another allocation not to be seen as a conflict, then we tried inserting a VAD and received an ASSERT saying we've already found a VAD there. After fixing the sizing code, the bug above creeped up.
Whoever wrote the NtFreeVirtualMemory test is a godsend. It has been nailing bug after bug in the VAD implementation. Thank you.

svn path=/trunk/; revision=55990
2012-03-04 06:42:49 +00:00
Johannes Anderwald acb68dc20d [KS]
- Fix property item merge in KsMergeAutomationTable

 

svn path=/trunk/; revision=55989
2012-03-04 04:44:48 +00:00
Sir Richard 4411be35e7 [NTOS]: Release the *right* lock. "Fix the fix" as the yuppies say.
svn path=/trunk/; revision=55988
2012-03-04 03:18:47 +00:00
Alex Ionescu 26b48236fb [WIN32K]: Should fix usb/livecd failure reported by igorko. bug 6696..or something?
svn path=/trunk/; revision=55987
2012-03-04 03:06:20 +00:00
Alex Ionescu a604834220 [SMSS]: No longer fail on invalid known DLL checksum until I can fix the loader API.
svn path=/trunk/; revision=55986
2012-03-04 03:00:01 +00:00
Sir Richard 4c07bf2fcd [NTOS]: Don't keep the address space locked when failing in NtFreeVirtualMemory. Dang this testbot is good at catching those bugs.
svn path=/trunk/; revision=55985
2012-03-04 02:56:16 +00:00
Johannes Anderwald 0e20c445f1 [KS]
- Handle custom sized nodes

svn path=/trunk/; revision=55984
2012-03-04 02:39:37 +00:00
Johannes Anderwald 0b301f3da8 [USBHUB]
- Implement retrieving USB_BUS_INTERFACE_USBDI_GUID interface
[KS]
- Add PnP hack for IoSetDeviceInterfaceState

svn path=/trunk/; revision=55983
2012-03-04 02:17:13 +00:00
Sir Richard 9732b09bc6 [NTOS]: Delete anonmem.c and move the ARM3-compatible code to ARM3/virtual.c. Whatever remained is for sections only, so move it to mm/section.c
[NTOS]: Fix some broken assertions in NtFreeVirtualMemory. Lesson: Do not try to "optimize" Microsoft's ASSERTs.

svn path=/trunk/; revision=55982
2012-03-04 02:03:46 +00:00
Sir Richard 2d534ce868 [RTL]: Sorry, forgot this critical part of the VAD commit.
svn path=/trunk/; revision=55981
2012-03-04 00:47:20 +00:00
Cameron Gutman 79dd33a566 [UNIATA]
- Try to fix KVM testbot

svn path=/trunk/; revision=55980
2012-03-03 23:13:21 +00:00
Cameron Gutman 2b71ec3e05 [USETUP]
- Turn off debugging
- Fix the checkpoint print so it doesn't happen anytime a usetup progress bar reaches 50%

svn path=/trunk/; revision=55979
2012-03-03 23:04:10 +00:00
Cameron Gutman 6b93fbc2de [STORAGE]
- Back by popular demand, the storage driver to end all storage drivers, uniata!
- I had forgotten how many issues atapi had itself and the hardware compatibility improvement (if there was one) was offset by lack of features

svn path=/trunk/; revision=55978
2012-03-03 22:46:04 +00:00
Sir Richard 08e91a3df6 [NTOS]: Implement VAD-based Virtual Memory Management. MEMORY_AREA_VIRTUAL_MEMORY is gone. Tested for 3 days with various experiments and handled all the cases and issues that appeared. Some code paths are not implemented because they were not encountered. Will consider implementing them if anything breaks -- note however that those code paths were not handled in RosMM either, so no new regressions are expected.
Hoping this will work on other configurations other than just my test virtual machine. If so, it is a big day in Mm history. Only sections and cache still use the old Mm functionality. I -will- revert this if all hell breaks loose.

svn path=/trunk/; revision=55977
2012-03-03 22:34:35 +00:00
Cameron Gutman 297eb4a462 [USBCCGP]
- Implement support for getting string descriptors (may need more work)
- USB mass storage devices which are part of a composite device now initialize

svn path=/trunk/; revision=55976
2012-03-03 21:23:04 +00:00
Hervé Poussineau 3e4f41c5e9 ntoskrnl: fix pointer dereference before testing for it
svn path=/trunk/; revision=55975
2012-03-03 21:11:42 +00:00
Timo Kreuzer f99547ad97 [PSDK] Add missing definitions to wingdi.h
[WIN32K] Fix MSVC warnings

svn path=/trunk/; revision=55974
2012-03-03 20:57:42 +00:00
Hervé Poussineau b541b98d59 freeldr/pxe: remove some traces
svn path=/trunk/; revision=55973
2012-03-03 20:57:17 +00:00
Hervé Poussineau 22f20d79fc Revert most of r53392 effects.
When IoReportDetectedDevice() creates a PDO, the PDO is in no way related to the DriverObject given to the function.
Driver calling IoReportDetectedDevice() should then ensure that it attachs a FDO on top of this PDO.

svn path=/trunk/; revision=55972
2012-03-03 20:39:51 +00:00
Cameron Gutman 85f9f9e518 [LIBUSB]
- Don't assert that the clear stall will complete successfully since it may be sent for a removal
- Fixes removal surprise removal of HID devices

svn path=/trunk/; revision=55971
2012-03-03 20:17:29 +00:00
Timo Kreuzer fed10df057 [WIN32K]
- Fix a memory leak in EngUnloadImage
- add an ASSERT

svn path=/trunk/; revision=55970
2012-03-03 20:00:51 +00:00
Kamil Hornicek 40a8a3c833 [TRANSLATION]
Dll/cpl UTF-8 conversion patch by Elton Chung.
See issue #6333 for more details.

svn path=/trunk/; revision=55969
2012-03-03 19:29:06 +00:00
Johannes Anderwald 487dd93eed [USBCCGP]
- Handle IRP_MN_QUERY_INTERFACE

svn path=/trunk/; revision=55968
2012-03-03 18:37:23 +00:00
Johannes Anderwald cc99088ec9 [LIBUSB]
- Fix infinite loop

svn path=/trunk/; revision=55967
2012-03-03 15:16:43 +00:00
Johannes Anderwald 530db30b69 [USBCCG]
- Remove hacks
- Include alternate interface descriptors in the configuration descriptor

svn path=/trunk/; revision=55966
2012-03-03 15:08:28 +00:00
Johannes Anderwald 13daf0dd8a [USBD]
- Rewrite broken USBD_CreateConfigurationRequestEx
- It did not calculate the required urb size correctly 
- It did not store the correct number of provided interfaces
- Length of each interface information was wrong

svn path=/trunk/; revision=55965
2012-03-03 14:41:12 +00:00
Johannes Anderwald ccdeb596e1 [USBHUB]
- Handle retrieving string descriptors failure

svn path=/trunk/; revision=55964
2012-03-03 11:38:37 +00:00
Cameron Gutman 6a0de53856 - Enable debugging for testbot
svn path=/trunk/; revision=55963
2012-03-02 20:49:53 +00:00
Johannes Anderwald 3436355fe0 [NDK]
- Add missing definitions

svn path=/trunk/; revision=55962
2012-03-02 20:08:51 +00:00
Johannes Anderwald a3a80c53a9 [USBUHCI]
- Load USBUHCI during 1st stage setup

svn path=/trunk/; revision=55961
2012-03-02 18:30:46 +00:00
Johannes Anderwald 9c2012dd56 [USBEHCI]
- Check if allocation of queue heads failed
- Implement removing of completed queue head

svn path=/trunk/; revision=55960
2012-03-02 18:26:08 +00:00
Cameron Gutman ae6b312494 [USBUHCI]
- Enable usbuhci for testing
[USBOHCI]
- Add back getting port count in a loop to work around AMD chipset errata

svn path=/trunk/; revision=55959
2012-03-02 18:02:50 +00:00
Cameron Gutman 29571a7f78 [STORAGE]
- Experimental change to try to increase real hardware compatibility
- Load both atapi and uniata and allow atapi to have priority and uniata will pick up devices that atapi doesn't like
- Fix a bug in uniata enumeration

svn path=/trunk/; revision=55958
2012-03-02 17:19:04 +00:00
Johannes Anderwald c0d2920f33 [USBEHCI]
- Partly implement support for interrupt transfers, WIP, untested

svn path=/trunk/; revision=55957
2012-03-02 14:21:44 +00:00
Dmitry Gorbachev b5f0b7ae64 [Disk_new]
Silence GCC 4.6 array bounds warning/error.

svn path=/trunk/; revision=55956
2012-03-01 21:43:23 +00:00