From: Eric Kohl Date: Sat, 24 Aug 2019 08:02:55 +0000 (+0200) Subject: [NTOSKRNL] Fix indentation. No code changes! X-Git-Tag: 0.4.14-dev~235 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=0b129da05cc6b2c2e0f57821830010cd68dec445;ds=sidebyside [NTOSKRNL] Fix indentation. No code changes! --- diff --git a/ntoskrnl/io/pnpmgr/pnpnotify.c b/ntoskrnl/io/pnpmgr/pnpnotify.c index eedf193e62f..089215071fd 100644 --- a/ntoskrnl/io/pnpmgr/pnpnotify.c +++ b/ntoskrnl/io/pnpmgr/pnpnotify.c @@ -34,196 +34,195 @@ LIST_ENTRY PnpNotifyListHead; VOID IopNotifyPlugPlayNotification( - IN PDEVICE_OBJECT DeviceObject, - IN IO_NOTIFICATION_EVENT_CATEGORY EventCategory, - IN LPCGUID Event, - IN PVOID EventCategoryData1, - IN PVOID EventCategoryData2) + IN PDEVICE_OBJECT DeviceObject, + IN IO_NOTIFICATION_EVENT_CATEGORY EventCategory, + IN LPCGUID Event, + IN PVOID EventCategoryData1, + IN PVOID EventCategoryData2) { - PPNP_NOTIFY_ENTRY ChangeEntry; - PLIST_ENTRY ListEntry; - PVOID NotificationStructure; - BOOLEAN CallCurrentEntry; - UNICODE_STRING GuidString; - NTSTATUS Status; - PDEVICE_OBJECT EntryDeviceObject = NULL; - - ASSERT(DeviceObject); - - KeAcquireGuardedMutex(&PnpNotifyListLock); - if (IsListEmpty(&PnpNotifyListHead)) - { - KeReleaseGuardedMutex(&PnpNotifyListLock); - return; - } - - switch (EventCategory) - { - case EventCategoryDeviceInterfaceChange: - { - PDEVICE_INTERFACE_CHANGE_NOTIFICATION NotificationInfos; - NotificationStructure = NotificationInfos = ExAllocatePoolWithTag( - PagedPool, - sizeof(DEVICE_INTERFACE_CHANGE_NOTIFICATION), - TAG_PNP_NOTIFY); - if (!NotificationInfos) - { - KeReleaseGuardedMutex(&PnpNotifyListLock); - return; - } - NotificationInfos->Version = 1; - NotificationInfos->Size = sizeof(DEVICE_INTERFACE_CHANGE_NOTIFICATION); - RtlCopyMemory(&NotificationInfos->Event, Event, sizeof(GUID)); - RtlCopyMemory(&NotificationInfos->InterfaceClassGuid, EventCategoryData1, sizeof(GUID)); - NotificationInfos->SymbolicLinkName = (PUNICODE_STRING)EventCategoryData2; - Status = RtlStringFromGUID(&NotificationInfos->InterfaceClassGuid, &GuidString); - if (!NT_SUCCESS(Status)) - { - KeReleaseGuardedMutex(&PnpNotifyListLock); - ExFreePoolWithTag(NotificationStructure, TAG_PNP_NOTIFY); - return; - } - break; - } - case EventCategoryHardwareProfileChange: - { - PHWPROFILE_CHANGE_NOTIFICATION NotificationInfos; - NotificationStructure = NotificationInfos = ExAllocatePoolWithTag( - PagedPool, - sizeof(HWPROFILE_CHANGE_NOTIFICATION), - TAG_PNP_NOTIFY); - if (!NotificationInfos) - { - KeReleaseGuardedMutex(&PnpNotifyListLock); - return; - } - NotificationInfos->Version = 1; - NotificationInfos->Size = sizeof(HWPROFILE_CHANGE_NOTIFICATION); - RtlCopyMemory(&NotificationInfos->Event, Event, sizeof(GUID)); - break; - } - case EventCategoryTargetDeviceChange: - { - if (Event != &GUID_PNP_CUSTOM_NOTIFICATION) - { - PTARGET_DEVICE_REMOVAL_NOTIFICATION NotificationInfos; - NotificationStructure = NotificationInfos = ExAllocatePoolWithTag( - PagedPool, - sizeof(TARGET_DEVICE_REMOVAL_NOTIFICATION), - TAG_PNP_NOTIFY); - if (!NotificationInfos) - { - KeReleaseGuardedMutex(&PnpNotifyListLock); - return; - } - NotificationInfos->Version = 1; - NotificationInfos->Size = sizeof(TARGET_DEVICE_REMOVAL_NOTIFICATION); - RtlCopyMemory(&NotificationInfos->Event, Event, sizeof(GUID)); - } - else - { - PTARGET_DEVICE_CUSTOM_NOTIFICATION NotificationInfos; - NotificationStructure = NotificationInfos = ExAllocatePoolWithTag( - PagedPool, - sizeof(TARGET_DEVICE_CUSTOM_NOTIFICATION), - TAG_PNP_NOTIFY); - if (!NotificationInfos) - { - KeReleaseGuardedMutex(&PnpNotifyListLock); - return; - } - RtlCopyMemory(NotificationInfos, EventCategoryData1, sizeof(TARGET_DEVICE_CUSTOM_NOTIFICATION)); - } - break; - } - default: - { - DPRINT1("IopNotifyPlugPlayNotification(): unknown EventCategory 0x%x UNIMPLEMENTED\n", EventCategory); - KeReleaseGuardedMutex(&PnpNotifyListLock); - return; - } - } - - /* Loop through procedures registred in PnpNotifyListHead - * list to find those that meet some criteria. - */ - ListEntry = PnpNotifyListHead.Flink; - while (ListEntry != &PnpNotifyListHead) - { - ChangeEntry = CONTAINING_RECORD(ListEntry, PNP_NOTIFY_ENTRY, PnpNotifyList); - CallCurrentEntry = FALSE; - - if (ChangeEntry->EventCategory != EventCategory) - { - ListEntry = ListEntry->Flink; - continue; - } - - switch (EventCategory) - { - case EventCategoryDeviceInterfaceChange: - { - if (RtlCompareUnicodeString(&ChangeEntry->Guid, &GuidString, FALSE) == 0) - { - CallCurrentEntry = TRUE; - } - break; - } - case EventCategoryHardwareProfileChange: - { - CallCurrentEntry = TRUE; - break; - } - case EventCategoryTargetDeviceChange: - { - Status = IoGetRelatedTargetDevice(ChangeEntry->FileObject, &EntryDeviceObject); - if (NT_SUCCESS(Status)) - { - if (DeviceObject == EntryDeviceObject) - { - if (Event == &GUID_PNP_CUSTOM_NOTIFICATION) - { - ((PTARGET_DEVICE_CUSTOM_NOTIFICATION)NotificationStructure)->FileObject = ChangeEntry->FileObject; - } - else - { - ((PTARGET_DEVICE_REMOVAL_NOTIFICATION)NotificationStructure)->FileObject = ChangeEntry->FileObject; - } - CallCurrentEntry = TRUE; - } - } - break; - } - default: - { - DPRINT1("IopNotifyPlugPlayNotification(): unknown EventCategory 0x%x UNIMPLEMENTED\n", EventCategory); - break; - } - } - - /* Move to the next element now, as callback may unregister itself */ - ListEntry = ListEntry->Flink; - /* FIXME: If ListEntry was the last element and that callback registers - * new notifications, those won't be checked... */ - - if (CallCurrentEntry) - { - /* Call entry into new allocated memory */ - DPRINT("IopNotifyPlugPlayNotification(): found suitable callback %p\n", - ChangeEntry); - - KeReleaseGuardedMutex(&PnpNotifyListLock); - (ChangeEntry->PnpNotificationProc)( - NotificationStructure, - ChangeEntry->Context); - KeAcquireGuardedMutex(&PnpNotifyListLock); - } - - } - KeReleaseGuardedMutex(&PnpNotifyListLock); - ExFreePoolWithTag(NotificationStructure, TAG_PNP_NOTIFY); - if (EventCategory == EventCategoryDeviceInterfaceChange) - RtlFreeUnicodeString(&GuidString); + PPNP_NOTIFY_ENTRY ChangeEntry; + PLIST_ENTRY ListEntry; + PVOID NotificationStructure; + BOOLEAN CallCurrentEntry; + UNICODE_STRING GuidString; + NTSTATUS Status; + PDEVICE_OBJECT EntryDeviceObject = NULL; + + ASSERT(DeviceObject); + + KeAcquireGuardedMutex(&PnpNotifyListLock); + if (IsListEmpty(&PnpNotifyListHead)) + { + KeReleaseGuardedMutex(&PnpNotifyListLock); + return; + } + + switch (EventCategory) + { + case EventCategoryDeviceInterfaceChange: + { + PDEVICE_INTERFACE_CHANGE_NOTIFICATION NotificationInfos; + NotificationStructure = NotificationInfos = ExAllocatePoolWithTag( + PagedPool, + sizeof(DEVICE_INTERFACE_CHANGE_NOTIFICATION), + TAG_PNP_NOTIFY); + if (!NotificationInfos) + { + KeReleaseGuardedMutex(&PnpNotifyListLock); + return; + } + NotificationInfos->Version = 1; + NotificationInfos->Size = sizeof(DEVICE_INTERFACE_CHANGE_NOTIFICATION); + RtlCopyMemory(&NotificationInfos->Event, Event, sizeof(GUID)); + RtlCopyMemory(&NotificationInfos->InterfaceClassGuid, EventCategoryData1, sizeof(GUID)); + NotificationInfos->SymbolicLinkName = (PUNICODE_STRING)EventCategoryData2; + Status = RtlStringFromGUID(&NotificationInfos->InterfaceClassGuid, &GuidString); + if (!NT_SUCCESS(Status)) + { + KeReleaseGuardedMutex(&PnpNotifyListLock); + ExFreePoolWithTag(NotificationStructure, TAG_PNP_NOTIFY); + return; + } + break; + } + case EventCategoryHardwareProfileChange: + { + PHWPROFILE_CHANGE_NOTIFICATION NotificationInfos; + NotificationStructure = NotificationInfos = ExAllocatePoolWithTag( + PagedPool, + sizeof(HWPROFILE_CHANGE_NOTIFICATION), + TAG_PNP_NOTIFY); + if (!NotificationInfos) + { + KeReleaseGuardedMutex(&PnpNotifyListLock); + return; + } + NotificationInfos->Version = 1; + NotificationInfos->Size = sizeof(HWPROFILE_CHANGE_NOTIFICATION); + RtlCopyMemory(&NotificationInfos->Event, Event, sizeof(GUID)); + break; + } + case EventCategoryTargetDeviceChange: + { + if (Event != &GUID_PNP_CUSTOM_NOTIFICATION) + { + PTARGET_DEVICE_REMOVAL_NOTIFICATION NotificationInfos; + NotificationStructure = NotificationInfos = ExAllocatePoolWithTag( + PagedPool, + sizeof(TARGET_DEVICE_REMOVAL_NOTIFICATION), + TAG_PNP_NOTIFY); + if (!NotificationInfos) + { + KeReleaseGuardedMutex(&PnpNotifyListLock); + return; + } + NotificationInfos->Version = 1; + NotificationInfos->Size = sizeof(TARGET_DEVICE_REMOVAL_NOTIFICATION); + RtlCopyMemory(&NotificationInfos->Event, Event, sizeof(GUID)); + } + else + { + PTARGET_DEVICE_CUSTOM_NOTIFICATION NotificationInfos; + NotificationStructure = NotificationInfos = ExAllocatePoolWithTag( + PagedPool, + sizeof(TARGET_DEVICE_CUSTOM_NOTIFICATION), + TAG_PNP_NOTIFY); + if (!NotificationInfos) + { + KeReleaseGuardedMutex(&PnpNotifyListLock); + return; + } + RtlCopyMemory(NotificationInfos, EventCategoryData1, sizeof(TARGET_DEVICE_CUSTOM_NOTIFICATION)); + } + break; + } + default: + { + DPRINT1("IopNotifyPlugPlayNotification(): unknown EventCategory 0x%x UNIMPLEMENTED\n", EventCategory); + KeReleaseGuardedMutex(&PnpNotifyListLock); + return; + } + } + + /* Loop through procedures registred in PnpNotifyListHead + * list to find those that meet some criteria. + */ + ListEntry = PnpNotifyListHead.Flink; + while (ListEntry != &PnpNotifyListHead) + { + ChangeEntry = CONTAINING_RECORD(ListEntry, PNP_NOTIFY_ENTRY, PnpNotifyList); + CallCurrentEntry = FALSE; + + if (ChangeEntry->EventCategory != EventCategory) + { + ListEntry = ListEntry->Flink; + continue; + } + + switch (EventCategory) + { + case EventCategoryDeviceInterfaceChange: + { + if (RtlCompareUnicodeString(&ChangeEntry->Guid, &GuidString, FALSE) == 0) + { + CallCurrentEntry = TRUE; + } + break; + } + case EventCategoryHardwareProfileChange: + { + CallCurrentEntry = TRUE; + break; + } + case EventCategoryTargetDeviceChange: + { + Status = IoGetRelatedTargetDevice(ChangeEntry->FileObject, &EntryDeviceObject); + if (NT_SUCCESS(Status)) + { + if (DeviceObject == EntryDeviceObject) + { + if (Event == &GUID_PNP_CUSTOM_NOTIFICATION) + { + ((PTARGET_DEVICE_CUSTOM_NOTIFICATION)NotificationStructure)->FileObject = ChangeEntry->FileObject; + } + else + { + ((PTARGET_DEVICE_REMOVAL_NOTIFICATION)NotificationStructure)->FileObject = ChangeEntry->FileObject; + } + CallCurrentEntry = TRUE; + } + } + break; + } + default: + { + DPRINT1("IopNotifyPlugPlayNotification(): unknown EventCategory 0x%x UNIMPLEMENTED\n", EventCategory); + break; + } + } + + /* Move to the next element now, as callback may unregister itself */ + ListEntry = ListEntry->Flink; + /* FIXME: If ListEntry was the last element and that callback registers + * new notifications, those won't be checked... */ + + if (CallCurrentEntry) + { + /* Call entry into new allocated memory */ + DPRINT("IopNotifyPlugPlayNotification(): found suitable callback %p\n", + ChangeEntry); + + KeReleaseGuardedMutex(&PnpNotifyListLock); + (ChangeEntry->PnpNotificationProc)(NotificationStructure, + ChangeEntry->Context); + KeAcquireGuardedMutex(&PnpNotifyListLock); + } + + } + KeReleaseGuardedMutex(&PnpNotifyListLock); + ExFreePoolWithTag(NotificationStructure, TAG_PNP_NOTIFY); + if (EventCategory == EventCategoryDeviceInterfaceChange) + RtlFreeUnicodeString(&GuidString); } /* PUBLIC FUNCTIONS **********************************************************/ @@ -280,7 +279,7 @@ IoRegisterPlugPlayNotification(IN IO_NOTIFICATION_EVENT_CATEGORY EventCategory, return STATUS_INSUFFICIENT_RESOURCES; } - if (EventCategory == EventCategoryDeviceInterfaceChange && + if (EventCategory == EventCategoryDeviceInterfaceChange && EventCategoryFlags & PNPNOTIFY_DEVICE_INTERFACE_INCLUDE_EXISTING_INTERFACES) { DEVICE_INTERFACE_CHANGE_NOTIFICATION NotificationInfos;