Author: cgutman
Date: Sun Oct 24 10:28:15 2010
New Revision: 49255
URL: http://svn.reactos.org/svn/reactos?rev=49255&view=rev
Log:
[HAL]
- HalpEnableInterruptHandler: Set the IDT_LATCHED flag if the caller requested a latched interrupt
Modified:
trunk/reactos/hal/halx86/generic/usage.c
Modified: trunk/reactos/hal/halx86/generic/usage.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/hal/halx86/generic/usage.c…
==============================================================================
--- trunk/reactos/hal/halx86/generic/usage.c [iso-8859-1] (original)
+++ trunk/reactos/hal/halx86/generic/usage.c [iso-8859-1] Sun Oct 24 10:28:15 2010
@@ -509,6 +509,9 @@
IN PVOID Handler,
IN KINTERRUPT_MODE Mode)
{
+ /* Set the IDT_LATCHED flag for latched interrupts */
+ if (Mode == Latched) Flags |= IDT_LATCHED;
+
/* Register the vector */
HalpRegisterVector(Flags, BusVector, SystemVector, Irql);
Author: cgutman
Date: Sun Oct 24 09:05:17 2010
New Revision: 49252
URL: http://svn.reactos.org/svn/reactos?rev=49252&view=rev
Log:
[NTOSKRNL]
- Fix a critical bug in the conflict detection code
- Don't unconditionally skip conflict detection for shared resources, instead it should be done on a descriptor-by-descriptor basis (if both descriptors are shared)
- This check wasn't removed when I initially wrote this code and added the proper check below
Modified:
trunk/reactos/ntoskrnl/io/pnpmgr/pnpres.c
Modified: trunk/reactos/ntoskrnl/io/pnpmgr/pnpres.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/io/pnpmgr/pnpres.…
==============================================================================
--- trunk/reactos/ntoskrnl/io/pnpmgr/pnpres.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/io/pnpmgr/pnpres.c [iso-8859-1] Sun Oct 24 09:05:17 2010
@@ -329,9 +329,6 @@
{
ULONG i, ii;
BOOLEAN Result = FALSE;
-
- if (ResDesc->ShareDisposition == CmResourceShareShared)
- return FALSE;
for (i = 0; i < ResourceList->Count; i++)
{
Author: jimtabor
Date: Sun Oct 24 04:36:45 2010
New Revision: 49250
URL: http://svn.reactos.org/svn/reactos?rev=49250&view=rev
Log:
[Win32k]
- Fix an exception when set condition * first always is used then moving the mouse. There seems to be an initialization issue (The Init Bug) and not setting a desktop.
Modified:
trunk/reactos/subsystems/win32/win32k/ntuser/hook.c
Modified: trunk/reactos/subsystems/win32/win32k/ntuser/hook.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/nt…
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/ntuser/hook.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/win32k/ntuser/hook.c [iso-8859-1] Sun Oct 24 04:36:45 2010
@@ -873,8 +873,7 @@
ASSERT(WH_MINHOOK <= HookId && HookId <= WH_MAXHOOK);
- pti = GetW32ThreadInfo(); // Need to call this!
-
+ pti = PsGetCurrentThreadWin32Thread();
if (!pti || !pti->pDeskInfo)
goto Exit; // Must have a desktop running for hooks.
Author: cgutman
Date: Sun Oct 24 02:51:48 2010
New Revision: 49249
URL: http://svn.reactos.org/svn/reactos?rev=49249&view=rev
Log:
[NTOSKRNL]
- Partially implement IoAssignResources so that it creates a non-conflicting resource list from the requirements but it doesn't claim the resources for the device in the registry
- Partially implement IoReportResourceUsage so that it checks the resource list for conflicts but doesn't claim the resources in the registry
- Please test this revision with a variety of hardware and drivers because it activates several code paths in the PnP manager
- If this causes problems, look for "Denying an attempt to claim resources currently in use by another device!" in the debug log and report the bug to me
Modified:
trunk/reactos/ntoskrnl/io/iomgr/iorsrce.c
Modified: trunk/reactos/ntoskrnl/io/iomgr/iorsrce.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/io/iomgr/iorsrce.…
==============================================================================
--- trunk/reactos/ntoskrnl/io/iomgr/iorsrce.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/io/iomgr/iorsrce.c [iso-8859-1] Sun Oct 24 02:51:48 2010
@@ -841,7 +841,7 @@
}
/*
- * @unimplemented
+ * @halfplemented
*/
NTSTATUS NTAPI
IoReportResourceUsage(PUNICODE_STRING DriverClassName,
@@ -876,13 +876,48 @@
* a conflict is detected with another driver.
*/
{
- UNIMPLEMENTED;
- *ConflictDetected = FALSE;
- return STATUS_SUCCESS;
+ NTSTATUS Status;
+ PCM_RESOURCE_LIST ResourceList;
+
+ DPRINT1("IoReportResourceUsage is halfplemented!\n");
+
+ if (!DriverList && !DeviceList)
+ return STATUS_INVALID_PARAMETER;
+
+ if (DeviceList)
+ ResourceList = DeviceList;
+ else
+ ResourceList = DriverList;
+
+ Status = IopDetectResourceConflict(ResourceList, FALSE, NULL);
+ if (Status == STATUS_CONFLICTING_ADDRESSES)
+ {
+ *ConflictDetected = TRUE;
+
+ if (!OverrideConflict)
+ {
+ DPRINT1("Denying an attempt to claim resources currently in use by another device!\n");
+ return STATUS_CONFLICTING_ADDRESSES;
+ }
+ else
+ {
+ DPRINT1("Proceeding with conflicting resources\n");
+ }
+ }
+ else if (!NT_SUCCESS(Status))
+ {
+ return Status;
+ }
+
+ /* TODO: Claim resources in registry */
+
+ *ConflictDetected = FALSE;
+
+ return STATUS_SUCCESS;
}
/*
- * @unimplemented
+ * @halfplemented
*/
NTSTATUS NTAPI
IoAssignResources(PUNICODE_STRING RegistryPath,
@@ -892,8 +927,23 @@
PIO_RESOURCE_REQUIREMENTS_LIST RequestedResources,
PCM_RESOURCE_LIST* AllocatedResources)
{
- UNIMPLEMENTED;
- return(STATUS_NOT_IMPLEMENTED);
+ NTSTATUS Status;
+
+ DPRINT1("IoAssignResources is halfplemented!\n");
+
+ Status = IopCreateResourceListFromRequirements(RequestedResources,
+ AllocatedResources);
+ if (!NT_SUCCESS(Status))
+ {
+ if (Status == STATUS_CONFLICTING_ADDRESSES)
+ DPRINT1("Denying an attempt to claim resources currently in use by another device!\n");
+
+ return Status;
+ }
+
+ /* TODO: Claim resources in registry */
+
+ return STATUS_SUCCESS;
}
/*
Author: tkreuzer
Date: Sat Oct 23 22:34:47 2010
New Revision: 49247
URL: http://svn.reactos.org/svn/reactos?rev=49247&view=rev
Log:
Fix a comment
Modified:
trunk/reactos/subsystems/win32/win32k/ntuser/msgqueue.c
Modified: trunk/reactos/subsystems/win32/win32k/ntuser/msgqueue.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/nt…
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/ntuser/msgqueue.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/win32k/ntuser/msgqueue.c [iso-8859-1] Sat Oct 23 22:34:47 2010
@@ -1003,9 +1003,7 @@
KeSetEvent(Message->CompletionEvent, IO_NO_INCREMENT, FALSE);
}
- /* Call the callback if the message wa
-
- s sent with SendMessageCallback */
+ /* Call the callback if the message was sent with SendMessageCallback */
if (Message->CompletionCallback != NULL)
{
co_IntCallSentMessageCallback(Message->CompletionCallback,