Commit graph

46488 commits

Author SHA1 Message Date
Gabriel Ilardi
ddd9f2dc77 - Fix boot.
svn path=/trunk/; revision=52074
2011-06-03 10:58:26 +00:00
Pierre Schweitzer
a0aead83b1 [NTOSKRNL]
Fixes to r52065:
- Acquire resources within a critical region
- Simplified IoEnumerateRegisteredFiltersList and made its behaviour match the one described in MSDN: http://msdn.microsoft.com/en-us/library/ff548348%28v=vs.85%29.aspx
This was brought to you by Alex Ionescu.

svn path=/trunk/; revision=52073
2011-06-03 08:43:05 +00:00
Cameron Gutman
92cd09edde - Fix build
svn path=/trunk/; revision=52070
2011-06-03 00:31:14 +00:00
Jérôme Gardou
ce5b55635c [WSOCK32]
remove useless def file
rbuild : use spec file
cmake : do not use two def files, it's... pointless.

svn path=/trunk/; revision=52069
2011-06-03 00:29:36 +00:00
Cameron Gutman
45491b7e75 [FDC]
- Remove old fdc code

svn path=/trunk/; revision=52068
2011-06-03 00:20:01 +00:00
Cameron Gutman
2706c9b8b3 [NTOSKRNL]
- Fix a bug in device removal which resulted in an IRP_MN_CANCEL_REMOVE_DEVICE request not being sent if the initial IRP_MN_QUERY_REMOVE_DEVICE failed

svn path=/trunk/; revision=52066
2011-06-02 18:23:30 +00:00
Pierre Schweitzer
69764dd21a [NTOSKRNL]
- renamed Io volumes global to match Windows names (in case of debug)
- renamed IopDereferenceVpb() to IopDereferenceVpbAndFree(), IopReferenceVpbForVerify() to IopReferenceVerifyVpb(), IopInitializeVpbForMount() to IopMountInitializeVpb(), IopLoadFileSystem() to IopLoadFileSystemDriver()
- implemented IopDecrementDeviceObjectHandleCount(), IopInterlockedIncrementUlong(), IopInterlockedDecrementUlong(), IopNotifyAlreadyRegisteredFileSystems() and IoEnumerateRegisteredFiltersList()
- halfplemented IopDecrementDeviceObjectRef()
- implemented check for already registrered notification in IoRegisterFsRegistrationChange()
- implemented sending notifications for already registered drivers to registrant in IoRegisterFsRegistrationChange()
- implemented VPB freeing in IopDereferenceVpbAndFree()
- acquire Io volumes lists once and forever for system shutdown, instead of keeping acquiring and releasing
- reference device object in IopShutdownBaseFileSystems() before sending it the shutdown IRP. To ensure to keep it valid till the end
- added a FS driver registration operations counter
- use this counter to handle failed mounts
- fixed: release locks before calling driver for mounting and reacquire them after
- fixed check for boot partition failure (and associated bugcheck): check we are in boot phase 0 or 1
- simplified lock process by using only one lock (ie removed mutex). Also use only critical region where needed
- fixed: ensure that locks are properly released when quitting a function
- fixed wrong return in IopCreateVpb()
- minor fixes around

svn path=/trunk/; revision=52065
2011-06-02 17:43:44 +00:00
Rafal Harabien
33a2b85a57 [NTOSKRNL]
- Reset KdbNumberOfRowsPrinted and KdbNumberOfColsPrinted before reading new command in kernel debugger so if previous command printed nearly full page, new command won't show "Press q to abort" message before processing

svn path=/trunk/; revision=52064
2011-06-02 15:59:57 +00:00
Eric Kohl
12f49ac10e [SETUPAPI]
Add missing properties for SetupDiGetDeviceRegistryProperty and SetupDiSetDeviceRegistryProperty.

svn path=/trunk/; revision=52062
2011-06-02 14:42:15 +00:00
Jérôme Gardou
37d0db0c59 [CMAKE]
"According to gcc doc, if header.h is precompiled, the output should be named "header.h.gch" and not anything else."
Knowing it was the first step before actually doing it :-/

svn path=/trunk/; revision=52061
2011-06-02 12:55:09 +00:00
Jérôme Gardou
cf2494a35b revert unwanted change
svn path=/trunk/; revision=52060
2011-06-02 12:29:11 +00:00
Jérôme Gardou
43ff81bdb0 [CMAKE]
no need to call target_link_libraries if there is nothing to link

svn path=/trunk/; revision=52059
2011-06-02 12:20:30 +00:00
Jérôme Gardou
989c121257 [CMAKE]
fix pch support, with proper dependancies.
  Use cmake built-in functions instead of doing weird "magic" with tabs and spaces.
  According to gcc doc, if header.h is precompiled, the output should be named "header.h.gch" and not anything else.

svn path=/trunk/; revision=52058
2011-06-02 12:18:22 +00:00
Amine Khaldi
f835168ac7 [CMAKE]
* I left setting CMAKE_AR out of the condition. Fix this.

svn path=/trunk/; revision=52056
2011-06-02 10:54:56 +00:00
Cameron Gutman
36bc23ba03 [FDC]
- Implement fdc.sys (still needs work but fairly complete)
[TXTSETUP.SIF]
- Load fdc.sys for floppy controllers
[FDC.INF]
- Install fdc.sys for floppy controllers

svn path=/trunk/; revision=52055
2011-06-02 06:24:25 +00:00
Cameron Gutman
3ad1745d96 [NTOSKRNL]
- Comment out sending remove to devices before driver installation because there are still some bugs causing crashes

svn path=/trunk/; revision=52054
2011-06-02 06:07:08 +00:00
Amine Khaldi
316a7467b0 [CMAKE]
Merge r52051 and r52052 from cmake branch:
* Improve static libs creation in *nix. Dedicated to arty.
* Add a missing dependency.

svn path=/trunk/; revision=52053
2011-06-01 22:18:48 +00:00
Timo Kreuzer
295bc5ef26 [NTOSKRNL]
Merge r52027 from cmake branch:
* Several improvements to debug symbols handling.
* A new (killer/awesome/...etc) feature has been introduced to kdbg: argument values support. Now backtraces contain not only usermode and kernelmode addresses translated, but also the argument values passed to the functions along the trace.
* Brought to you by the Arty.
* works only with cmake builds

svn path=/trunk/; revision=52050
2011-06-01 20:36:40 +00:00
Jérôme Gardou
2489556d2b [CMAKE]
- clean up wine directx build file.
Wine removed COM from wind3d

svn path=/trunk/; revision=52049
2011-06-01 19:45:03 +00:00
Cameron Gutman
f31e1602a7 [UMPNPMGR]
- Handle more GUIDs

svn path=/trunk/; revision=52048
2011-06-01 19:44:03 +00:00
Timo Kreuzer
7c988c53c5 [CMD]
replace FILE IO with Memory IO functions for batch files
Patch by HansH (hans at atbas dot org)

See issue #5807 for more details.

svn path=/trunk/; revision=52047
2011-06-01 19:33:20 +00:00
Cameron Gutman
73f8eda071 [NTOSKRNL]
- Massive rework of device removal
- IRP_MN_QUERY_REMOVE_DEVICE is sent to all devices that will be removed in response to a removal/ejection
- If any of the IRP_MN_QUERY_REMOVE_DEVICE requests fail, all devices which received a IRP_MN_QUERY_REMOVE_DEVICE will receive IRP_MN_CANCEL_REMOVE_DEVICE
- If everything approves the remove request, IRP_MN_REMOVE_DEVICE will be sent to children, ejection and/or removal relations, and finally the device itself
- Handle removal relations for all devices not just 1st level devices
- Remove child devices before removing the parent
- Move GUID_DEVICE_REMOVE_PENDING and GUID_DEVICE_REMOVAL_VETOED notifications to IopQueryRemoveDevice
- Implement IopCancelRemoveDevice which sends IRP_MN_CANCEL_REMOVE_DEVICE to the driver stack and sends GUID_TARGET_DEVICE_REMOVE_CANCELLED to any drivers waiting on target device change
- Use the IopRemoveDevice function to remove devices instead of calling IopQueryRemoveDevice and IopSendRemoveDevice manually so removal and/or ejection relations and children are processed
- IRPs and PnP notifications sent upon device removal (surprise and safe) should now be compatible with XP/Vista/7

svn path=/trunk/; revision=52046
2011-06-01 19:32:12 +00:00
Rafal Harabien
77760f12f6 [APITESTS]
- Add more Rectangle function tests
- Improve ScrollDC tests

svn path=/trunk/; revision=52045
2011-06-01 18:20:51 +00:00
Rafal Harabien
d159b215ee [NTOSKRNL]
- Bugcheck if ExFreePoolWithTag is called with wrong tag

svn path=/trunk/; revision=52044
2011-06-01 18:16:52 +00:00
Rafal Harabien
2861515d78 [NTOSKRNL]
- Use tags when allocation and freeing memory and define them in tag.h
- Fix some wrongly used tags when freeing
- Our new memory manager doesn't check tags when ExFreePoolWithTag is used. It will be fixed after testing

svn path=/trunk/; revision=52043
2011-06-01 13:39:36 +00:00
Rafal Harabien
c2e7b8b976 [NTOSKRNL]
- Acquire spinlock when accessing SymbolFileListHead

svn path=/trunk/; revision=52041
2011-06-01 13:16:49 +00:00
Timo Kreuzer
29a7aa1288 [CRT]
in _flsbuf, always reset _cnt to 0 and don't allocate/use a buffer when _IONBUF is set. Fixes a regression in msvcrt_winetest file.

See issue #5829 for more details.

svn path=/trunk/; revision=52040
2011-06-01 12:08:02 +00:00
Johannes Anderwald
80f8e1b66c [NTOS]
- Fix bug in PnpRegSzToString. The caller expects the result length to be the length of the string in bytes, not the string length
- Introduced in rev 46690

svn path=/trunk/; revision=52037
2011-06-01 09:59:54 +00:00
Cameron Gutman
9048ea9dcf [NTOSKRNL]
- Remove the device node when the device object is destroyed to prevent PnP manager from crashing when manipulating device nodes with device objects that no longer exist
- Move removal notifications into IopRemoveDevice and call it from IopPrepareDeviceForRemoval and IoRequestDeviceEject to manage all of the removal relations for each device removed

svn path=/trunk/; revision=52034
2011-06-01 06:22:54 +00:00
Cameron Gutman
47328a7510 [NTOSKRNL]
- Fix a bug in device removal and ejection which caused the request to fail when EjectionRelations or RemovalRelations was not handled by a driver in the stack

svn path=/trunk/; revision=52033
2011-06-01 01:06:35 +00:00
Rafal Harabien
f1ad369297 [INF]
- Really add disk.inf. Forgotten in r51978

svn path=/trunk/; revision=52032
2011-05-31 23:19:07 +00:00
Cameron Gutman
b22890ae01 [NTOSKRNL]
- Remove an extra semicolon
- Dedicated to encoded

svn path=/trunk/; revision=52031
2011-05-31 23:04:59 +00:00
Rafal Harabien
eac5ee241d [CMAKE]
- sys-stubs.S depends now on w32ksvc.h. Unfortunately CMake isn't smart enough to find it automatically

svn path=/trunk/; revision=52030
2011-05-31 21:05:03 +00:00
Cameron Gutman
80d7517cde [NTOSKRNL]
- Implement IopRemoveDevice and IopStopDevice
- Do a graceful remove before installing new drivers (like Windows does)
- Debug log warnings abound (don't be alarmed ;)) because drivers aren't used to receiving IRP_MN_QUERY_REMOVE_DEVICE, IRP_MN_REMOVE_DEVICE and IRP_MN_QUERY_PNP_DEVICE_STATE from our (formly) crippled PnP manager

svn path=/trunk/; revision=52029
2011-05-31 19:34:08 +00:00
Cameron Gutman
3d472cf72f [PCIIDEX]
- Handle IRP_MN_QUERY_REMOVE_DEVICE
- Handle IRP_MN_QUERY_PNP_DEVICE_STATE to report that we are not disableable to the PnP manager so we don't get removed during driver installation

svn path=/trunk/; revision=52028
2011-05-31 19:29:22 +00:00
Cameron Gutman
200cdb6daf [NTOSKRNL]
- Set the DNF_DISABLED flag if a driver returns with the HardwareDisabled flag set to true (but only BEFORE starting the device)
- Don't try to start a device with the DNF_DISABLED flag set
- Send IRP_MN_QUERY_CAPABILITIES (again) and IRP_MN_QUERY_PNP_DEVICE_STATE after the device has started
- Write the UINumber and Capabilities registry entries in IopQueryDeviceCapabilities so they will be updated after every IRP_MN_QUERY_CAPABILITIES is sent
- Set the DNUF_DONT_SHOW_IN_UI flag in response to the NoDisplayInUI flag set in DEVICE_CAPABILITIES or PNP_DEVICE_DONT_DISPLAY_IN_UI set after sending IRP_MN_QUERY_PNP_DEVICE_STATE
- Set DNUF_NBOT_DISABLEABLE if PNP_DEVICE_NOT_DISABLEABLE is set after sending IRP_MN_QUERY_PNP_DEVICE_STATE
- Remove duplicate code
- Fix sending GUID_DEVICE_ARRIVAL (patch by Eric Kohl)
- IRPs sent to PnP devices on enumeration and start are now completely compatible with Windows XP/2003/Vista

svn path=/trunk/; revision=52026
2011-05-31 18:11:40 +00:00
Cameron Gutman
d6680bc1fa [I8042PRT]
- Don't ASSERT(FALSE) when receiving an unknown PNP IRP

svn path=/trunk/; revision=52025
2011-05-31 18:02:49 +00:00
Timo Kreuzer
aebc59bf83 fix build
svn path=/trunk/; revision=52024
2011-05-31 17:50:55 +00:00
Timo Kreuzer
94ce2dcf66 [CRT]
Rewrite _splitpath.
See issue #6244 for more details.

svn path=/trunk/; revision=52023
2011-05-31 17:29:49 +00:00
Timo Kreuzer
3e584471ab [MSVCRT_APITEST]
Add tests for splitpath

svn path=/trunk/; revision=52022
2011-05-31 17:26:30 +00:00
Cameron Gutman
48c9bead3d [NTOSKRNL]
- Implement IoTranslateBusAddress

svn path=/trunk/; revision=52019
2011-05-30 22:27:28 +00:00
Rafal Harabien
57bc8f07bf [USER32]
- Use DISPLAY_DEVICEW instead of assuming DISPLAY_DEVICE is in unicode

svn path=/trunk/; revision=52016
2011-05-30 21:34:10 +00:00
Rafal Harabien
8dbd3c5e73 [NTOSKRNL]
- Declare function without arguments with VOID keyword
- Improve rbuild file

svn path=/trunk/; revision=52015
2011-05-30 21:26:33 +00:00
Cameron Gutman
e26e8e7106 [AFD]
- Launch a new listen IRP right after the current one completes instead of waiting until the current pending connection is accepted
- Reduces the chance of AFD missing two connection requests that are issued very close together and increases network performance by allowing our connection queue to do its job

svn path=/trunk/; revision=52013
2011-05-30 17:27:53 +00:00
Kamil Hornicek
4e0877c6fb [WINED3D|DDRAW|D3D8|D3D9]
Sync to Wine 1.3.21

svn path=/trunk/; revision=52009
2011-05-30 15:27:19 +00:00
Rafal Harabien
6486187cdb [ROSTESTS]
- Declare functions with 0 arguments using VOID keyword. In C it matters
- Add imagehlp winetest to CMake build

svn path=/trunk/; revision=52006
2011-05-30 11:40:58 +00:00
Cameron Gutman
6c70b6dcd9 [NTOSKRNL]
- Implement sending GUID_TARGET_DEVICE_QUERY_REMOVE and GUID_TARGET_DEVICE_REMOVE_COMPLETE notifications
- Fix sending EventCategoryTargetDeviceChange notifications
- Remove some incorrect checks (IRP_MN_START_DEVICE CAN be called for a device that is already "started")
- Check the final status of the IRP_MN_START_DEVICE request sent after resource rebalancing and send IRP_MN_REMOVE_DEVICE if it fails

svn path=/trunk/; revision=52003
2011-05-30 04:15:27 +00:00
Roel Messiant
9abb0c1c3b [NTOSKRNL]
- Simplify remove lock tracking block list handling.
- Correct check for unlimited locking time being allowed.
- Eliminate use-after-free after removing a tracking block.

svn path=/trunk/; revision=52002
2011-05-29 22:29:10 +00:00
Olaf Siejka
66b0ee485c Converting POLISH localisation strings to UTF-8. Part 3/4:
- dll/win32 and dll/shellext converted
- currently, only shell32 is left, due to incoming change to new version, and kernel32 - need to research how it should be done.
Tested on rbuild/cmake

svn path=/trunk/; revision=52000
2011-05-29 21:43:37 +00:00
Cameron Gutman
944ccbbe33 [NTOSKRNL]
- Fix a reference leak which prevented driver objects passed to IoRegisterPlugPlayNotification from being able to unload after the notification was unregistered
- Fix a non-paged pool leak

svn path=/trunk/; revision=51997
2011-05-29 16:44:34 +00:00