- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- Add stubs for CM_Set_Class_Registry_PropertyA/W.
- Add support for missing properties to CM_Set_DevNode_Registry_Property_ExA/W.
svn path=/trunk/; revision=51996
* Improve reactos.cab creation a bit: create it using a custom command instead of a custom target.. marking it as output this way ensures a proper cleanup with make clean and co.
svn path=/trunk/; revision=51987
- Get screen saver running. Need more work on WinLogon register issues and problems.
- Miscellaneous changes and cleanups.
svn path=/trunk/; revision=51971
- Load other driver sections from txtsetup.sif
- Enable a debug print
[TXTSETUP]
- Add PnP entries for storage devices
[PCIIDE/PCIIDEX]
- Add to bootcd
- Both usetup's PnP manager and the user-mode PnP manager now recognize PCI IDE channels
svn path=/trunk/; revision=51969
- PCIIDE should be installed for each PCI IDE controller and UNIATA should be installed for each IDE channel
- Remove an extra comma in the compatible adapters entries
svn path=/trunk/; revision=51968
- Don't report raw device support to allow the IDE channel driver (uniata) to take over control of the enumerated devices
- Ideally the PnP manager should deal with a driver collision like this but it doesn't currently
svn path=/trunk/; revision=51967
- Add a special case in IopLoadServiceModule for 1st stage setup when we have no service entries so we can still load drivers
- Fixes an old regression with 1st stage PnP which now can load drivers again
svn path=/trunk/; revision=51966
- Determine whether the device is really installed by reading the ClassGUID key instead of looking at the device flags
- Add a debug print for device installation (shouldn't be too spammy except and will be helpful for hotplugging)
[USETUP]
- Reenable the 1st stage PnP manager
svn path=/trunk/; revision=51963
- Implement a simple property sheet provider for serial ports. The property sheet does not show yet because the dialog resource is not found because a call to FindResourceW fails.
svn path=/trunk/; revision=51960
- SetupDiGetClassDevPropertySheetsW: Improve the way property sheet pages are added to a property sheet. This change enables us to retrieve the number of property sheet pages provided by a property sheet provider without leaking property sheets.
svn path=/trunk/; revision=51959
- Disable the 1st stage user-mode PnP manager because it is creating incomplete registry keys which is confusing the real user-mode PnP manager and preventing devices installed in 1st stage from appearing in device manager
- Fixes displaying PCI bus controllers in device manager
- I need to discuss with Herve what should be done with this code
svn path=/trunk/; revision=51947