https://git.reactos.org/?p=reactos.git;a=commitdiff;h=77af26531558a8f4e00a7…
commit 77af26531558a8f4e00a73cea1c0cb744b6c89d5
Author: Adam Słaboń <asaillen(a)protonmail.com>
AuthorDate: Sun Mar 3 00:10:30 2024 +0100
Commit: Hermès BÉLUSCA - MAÏTO <hermes.belusca-maito(a)reactos.org>
CommitDate: Mon Oct 7 11:16:03 2024 +0200
[NTOS:PNP] IoReportTargetDeviceChange: Correct the check for system PnP
notifications
Now IoReportTargetDeviceChange will process the custom notifications (rather than
processing only those that it shouldn't).
---
ntoskrnl/io/pnpmgr/pnpreport.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/ntoskrnl/io/pnpmgr/pnpreport.c b/ntoskrnl/io/pnpmgr/pnpreport.c
index 735760f8c4f..ea23aa13304 100644
--- a/ntoskrnl/io/pnpmgr/pnpreport.c
+++ b/ntoskrnl/io/pnpmgr/pnpreport.c
@@ -464,9 +464,9 @@ IoReportTargetDeviceChange(IN PDEVICE_OBJECT PhysicalDeviceObject,
ASSERT(notifyStruct->FileObject == NULL);
/* Do not handle system PnP events */
- if ((RtlCompareMemory(&(notifyStruct->Event),
&(GUID_TARGET_DEVICE_QUERY_REMOVE), sizeof(GUID)) != sizeof(GUID)) ||
- (RtlCompareMemory(&(notifyStruct->Event),
&(GUID_TARGET_DEVICE_REMOVE_CANCELLED), sizeof(GUID)) != sizeof(GUID)) ||
- (RtlCompareMemory(&(notifyStruct->Event),
&(GUID_TARGET_DEVICE_REMOVE_COMPLETE), sizeof(GUID)) != sizeof(GUID)))
+ if (IsEqualGUID(&(notifyStruct->Event), &GUID_TARGET_DEVICE_QUERY_REMOVE)
||
+ IsEqualGUID(&(notifyStruct->Event),
&GUID_TARGET_DEVICE_REMOVE_CANCELLED) ||
+ IsEqualGUID(&(notifyStruct->Event),
&GUID_TARGET_DEVICE_REMOVE_COMPLETE))
{
return STATUS_INVALID_DEVICE_REQUEST;
}
@@ -515,9 +515,9 @@ IoReportTargetDeviceChangeAsynchronous(IN PDEVICE_OBJECT
PhysicalDeviceObject,
ASSERT(notifyStruct->FileObject == NULL);
/* Do not handle system PnP events */
- if ((RtlCompareMemory(&(notifyStruct->Event),
&(GUID_TARGET_DEVICE_QUERY_REMOVE), sizeof(GUID)) != sizeof(GUID)) ||
- (RtlCompareMemory(&(notifyStruct->Event),
&(GUID_TARGET_DEVICE_REMOVE_CANCELLED), sizeof(GUID)) != sizeof(GUID)) ||
- (RtlCompareMemory(&(notifyStruct->Event),
&(GUID_TARGET_DEVICE_REMOVE_COMPLETE), sizeof(GUID)) != sizeof(GUID)))
+ if (IsEqualGUID(&(notifyStruct->Event), &GUID_TARGET_DEVICE_QUERY_REMOVE)
||
+ IsEqualGUID(&(notifyStruct->Event),
&GUID_TARGET_DEVICE_REMOVE_CANCELLED) ||
+ IsEqualGUID(&(notifyStruct->Event),
&GUID_TARGET_DEVICE_REMOVE_COMPLETE))
{
return STATUS_INVALID_DEVICE_REQUEST;
}