* Sync up to trunk head (r65120).
[reactos.git] / ntoskrnl / po / events.c
index efbcc10..4e01ca1 100644 (file)
@@ -64,9 +64,6 @@ PopGetSysButtonCompletion(
        PSYS_BUTTON_CONTEXT SysButtonContext = Context;
        ULONG SysButton;
 
-       if (Irp->PendingReturned)
-               IoMarkIrpPending(Irp);
-
        /* The DeviceObject can be NULL, so use the one we stored */
        DeviceObject = SysButtonContext->DeviceObject;
 
@@ -87,7 +84,6 @@ PopGetSysButtonCompletion(
             
             ZwShutdownSystem(ShutdownNoReboot);
         }
-            
        }
 
        /* Allocate a new workitem to send the next IOCTL_GET_SYS_BUTTON_EVENT */
@@ -166,8 +162,6 @@ PopAddRemoveSysCapsCallback(IN PVOID NotificationStructure,
        BOOLEAN Arrival;
        ULONG Caps;
        NTSTATUS Status;
-       UNICODE_STRING DeviceName;
-       UNICODE_STRING DeviceNamePrefix = RTL_CONSTANT_STRING(L"\\??\\");
 
        DPRINT("PopAddRemoveSysCapsCallback(%p %p)\n",
                NotificationStructure, Context);
@@ -177,9 +171,9 @@ PopAddRemoveSysCapsCallback(IN PVOID NotificationStructure,
                return STATUS_REVISION_MISMATCH;
        if (Notification->Size != sizeof(DEVICE_INTERFACE_CHANGE_NOTIFICATION))
                return STATUS_INVALID_PARAMETER;
-       if (RtlCompareMemory(&Notification->Event, &GUID_DEVICE_INTERFACE_ARRIVAL, sizeof(GUID) == sizeof(GUID)))
+       if (RtlCompareMemory(&Notification->Event, &GUID_DEVICE_INTERFACE_ARRIVAL, sizeof(GUID)) == sizeof(GUID))
                Arrival = TRUE;
-       else if (RtlCompareMemory(&Notification->Event, &GUID_DEVICE_INTERFACE_REMOVAL, sizeof(GUID) == sizeof(GUID)))
+       else if (RtlCompareMemory(&Notification->Event, &GUID_DEVICE_INTERFACE_REMOVAL, sizeof(GUID)) == sizeof(GUID))
                Arrival = FALSE;
        else
                return STATUS_INVALID_PARAMETER;
@@ -188,20 +182,10 @@ PopAddRemoveSysCapsCallback(IN PVOID NotificationStructure,
        {
                DPRINT("Arrival of %wZ\n", Notification->SymbolicLinkName);
 
-               DeviceName.Length = 0;
-               DeviceName.MaximumLength = Notification->SymbolicLinkName->MaximumLength + DeviceNamePrefix.MaximumLength;
-               DeviceName.Buffer = ExAllocatePool(PagedPool, DeviceName.MaximumLength);
-               if (!DeviceName.Buffer) return STATUS_INSUFFICIENT_RESOURCES;
-
-               RtlCopyUnicodeString(&DeviceName, &DeviceNamePrefix);
-               RtlAppendUnicodeStringToString(&DeviceName, Notification->SymbolicLinkName);
-
-               DPRINT("Opening handle to %wZ\n", &DeviceName);
-
                /* Open the device */
                InitializeObjectAttributes(
                        &ObjectAttributes,
-                       &DeviceName,
+                       Notification->SymbolicLinkName,
                        OBJ_KERNEL_HANDLE,
                        NULL,
                        NULL);
@@ -214,19 +198,19 @@ PopAddRemoveSysCapsCallback(IN PVOID NotificationStructure,
                        0);
                if (!NT_SUCCESS(Status))
                {
-                       DPRINT("ZwOpenFile() failed with status 0x%08lx\n", Status);
+                       DPRINT1("ZwOpenFile() failed with status 0x%08lx\n", Status);
                        return Status;
                }
                Status = ObReferenceObjectByHandle(
                        FileHandle,
                        FILE_READ_DATA,
                        IoFileObjectType,
-                       ExGetPreviousMode(),
+                       KernelMode,
                        (PVOID*)&FileObject,
                        NULL);
                if (!NT_SUCCESS(Status))
                {
-                       DPRINT("ObReferenceObjectByHandle() failed with status 0x%08lx\n", Status);
+                       DPRINT1("ObReferenceObjectByHandle() failed with status 0x%08lx\n", Status);
                        ZwClose(FileHandle);
                        return Status;
                }
@@ -247,7 +231,7 @@ PopAddRemoveSysCapsCallback(IN PVOID NotificationStructure,
                        &IoStatusBlock);
                if (!Irp)
                {
-                       DPRINT("IoBuildDeviceIoControlRequest() failed\n");
+                       DPRINT1("IoBuildDeviceIoControlRequest() failed\n");
                        ZwClose(FileHandle);
                        return STATUS_INSUFFICIENT_RESOURCES;
                }
@@ -260,24 +244,24 @@ PopAddRemoveSysCapsCallback(IN PVOID NotificationStructure,
                }
                if (!NT_SUCCESS(Status))
                {
-                       DPRINT("Sending IOCTL_GET_SYS_BUTTON_CAPS failed with status 0x%08x\n", Status);
+                       DPRINT1("Sending IOCTL_GET_SYS_BUTTON_CAPS failed with status 0x%08x\n", Status);
                        ZwClose(FileHandle);
                        return STATUS_INSUFFICIENT_RESOURCES;
                }
 
                /* FIXME: What do do with the capabilities? */
                {
-                       DPRINT1("Device capabilities: 0x%x (", Caps);
-                       if (Caps & SYS_BUTTON_POWER) DbgPrint(" POWER");
-                       if (Caps & SYS_BUTTON_SLEEP) DbgPrint(" SLEEP");
-                       if (Caps & SYS_BUTTON_LID) DbgPrint(" LID");
-                       DbgPrint(" )\n");
+                       DPRINT("Device capabilities: 0x%x (", Caps);
+                       if (Caps & SYS_BUTTON_POWER) DPRINT(" POWER");
+                       if (Caps & SYS_BUTTON_SLEEP) DPRINT(" SLEEP");
+                       if (Caps & SYS_BUTTON_LID) DPRINT(" LID");
+                       DPRINT(" )\n");
                }
 
                SysButtonContext = ExAllocatePool(NonPagedPool, sizeof(SYS_BUTTON_CONTEXT));
                if (!SysButtonContext)
                {
-                       DPRINT("ExAllocatePool() failed\n");
+                       DPRINT1("ExAllocatePool() failed\n");
                        ZwClose(FileHandle);
                        return STATUS_INSUFFICIENT_RESOURCES;
                }
@@ -287,7 +271,7 @@ PopAddRemoveSysCapsCallback(IN PVOID NotificationStructure,
                SysButtonContext->DeviceObject = DeviceObject;
                if (!SysButtonContext->WorkItem)
                {
-                       DPRINT("IoAllocateWorkItem() failed\n");
+                       DPRINT1("IoAllocateWorkItem() failed\n");
                        ZwClose(FileHandle);
                        ExFreePool(SysButtonContext);
                        return STATUS_INSUFFICIENT_RESOURCES;