[NTOS]: Using IsBadRead/CodePtr, it's possible for user-mode code to generate cases where we *think* this is an ARM3-managed piece of VA, which will always have a VAD (Since we only manage the PEB/TEB), but actually it's a bogus VA-looking address that is actually invalid. We didn't consider this case. We now implement the same code Windows normally would also handle, when the VA is bogus, and accept that no VAD might be found, so MM_NOACCESS is returned and thus an access violation sent to the caller. In the case of the IsBad...Ptr, this function would then return TRUE, as the caller expects.
svn path=/trunk/; revision=48759
- Part support for resource change with PciComputeNewCurrentSettings... full support for PciSetResources, PciUpdateHardware, PcipUpdateHardare
- IRP_MN_START_DEVICE for PDO (PciPdoIrpStartDevice) implement
- PciNextPartialDescriptor, PciDebugPrintCmResList, PciDebugPrintPartialResource helpers implement
- Now full PDO support almost done, PCIX driver ready for test
- Thanks to cgoodman assert fix
- PnP forever recursion in enumerate, must fix to finish
- Goodbye sir_richard, nice to have you
svn path=/trunk/; revision=48748
- Daniel Zimmermann: Fix POPF bugs in VDM mode, namely truncation of the stackpointer to 16 bit and setting proper flags in the trapframe eflags register. This fixes problems with videocards calling int 0x10 VESA BIOS extension.
See issue #5608 for more details.
svn path=/trunk/; revision=48745
- Add missing call to HalInitPnpDriver during I/O manager initialization. The HAL PnP driver was never getting initialized.
- Add HAL callback for HalInitPnpDriver. It's going to be needed in future for eVb's PCI driver to fully work (interrupt translation, among other things).
svn path=/trunk/; revision=48740
- Modify IopCreateDriver to accept the PLDR_DATA_TABLE_ENTRY instead of the DllBase and SizeOfImage from this structure.
- Set the DriverObject->DriverSection before calling the DriverEntry routine.
- If the DriverEntry routine fails then set the DriverObject->DriverSection back to NULL so that IopDeleteDriver doesnt attempt to unload the ModuleObject, after it was already unloaded by the caller.
svn path=/trunk/; revision=48738
- Fix a code typo which led to a security issue when the XOR algorithm for the system cookie might actually yield zero. Now it's going to loop as long as the cookie is 0, attempting to generate a non-zero one.
svn path=/trunk/; revision=48737
- Fix a strange bug where we were only setting SharedUserData->TestRetInstruction conditionally only if lookup failed - it should be set on success. Also, bail out if the lookups failed.
svn path=/trunk/; revision=48735
- Fix incorrect POOL_TYPE allocation in IoInvalidateDeviceRelations. This function can be called at DISPATCH_LEVEL, which requires NonPagedPool POOL_TYPE.
svn path=/trunk/; revision=48734
- Giannis Adamopoulos: Only dereference a class if it's valid, should fix Heroes 3 crash.
See issue #5606 for more details.
svn path=/trunk/; revision=48732
- Rename KINTERRUPT_DISPATCH_CODES to DISPATCH_LENGTH, as it is in PSDK.
- Enhance NMI debug support.
- Change some comments to standard ReactOS commenting style.
svn path=/trunk/; revision=48730
- Fix release build, part 2. Further improvement to gDebugChannels would be to convert them to a DECLARE_DEBUG_CHANNEL-alike macro.
svn path=/trunk/; revision=48729
[CPORTLIB]: Implement Windows' Cp (ComPort) library. See Notes in C file. Not yet used. Based on MS Whitepaper: Building Hardware and Firmware to Complement Microsoft Windows Headless Operation.
svn path=/trunk/; revision=48727
- When an IRP is freed in a Completion routine the return Status is STATUS_MORE_PROCESSING_REQUIRED to let IoCompleteRequest know not to do anything further with the IRP.
svn path=/trunk/; revision=48724
Allocate a drive layout buffer that is large enough to keep a primary partition table (4 partition entries) plus 26 logical drives (2 partition entries each). Total 56 partition entries. This should be enough for everybody until we support GPT partition tables. ;-)
See issue #5270 for more details.
svn path=/trunk/; revision=48722
- SEH-protect all code that writes to PreviousState as it cannot be captured.
- Add a missing ObDereferenceObject and SeReleaseLuidAndAttributesArray.
svn path=/trunk/; revision=48721
- Add function for dumping the Device and Configuration Descriptors.
- Implement WaitForUsbDeviceArrivalNotification, used to send a URB transaction to the Status Change Endpoint of the RootHubs pdo. The RootHubs pdo will queue this request until a new usb device connects.
- Call above function at the end of UsbhubFdoQueryBusRelations, which will be called by the pnp manager after the hub driver creates a new child device.
- Change the URB to be allocated from the pool at IRP_MN_START_DEVICE.
- Call QueryRootHub with the RootHub Pdo and not the hub drivers DeviceObject.
- Implement selecting a configuration for the RootHub.
svn path=/trunk/; revision=48719
[GDI32]: Reformat GetSystemPaletteEntries away from grotesque 5-space identation (who does that?).
[GDI32]: Optimize GetSystemPaletteEntries by not zeroing over fields that get overwritten anyway.
[GDI32]: Simplify loop control, remove not-needed local variable in GetSystemPaletteEntries.
svn path=/trunk/; revision=48716
- Check for invalid parameter combinations.
- Count privileges that will be changed before changing them.
- Return required buffer size.
- Fail if the provided buffer is too small.
See issue #5497 for more details.
svn path=/trunk/; revision=48710