https://git.reactos.org/?p=reactos.git;a=commitdiff;h=7eb6e426263bd972a5e8d…
commit 7eb6e426263bd972a5e8d2ce88781e9a769373fd
Author: Eric Kohl <eric.kohl(a)reactos.org>
AuthorDate: Sat Jun 29 13:38:42 2019 +0200
Commit: Eric Kohl <eric.kohl(a)reactos.org>
CommitDate: Sat Jun 29 13:38:42 2019 +0200
[UMPNPMGR][SETUPAPI] PNP_RegisterNotification() has got 9 parameters.
---
base/services/umpnpmgr/rpcserver.c | 22 ++++++++++++++++------
dll/win32/setupapi/cfgmgr.c | 7 +++++--
sdk/include/reactos/idl/pnp.idl | 8 +++++---
3 files changed, 26 insertions(+), 11 deletions(-)
diff --git a/base/services/umpnpmgr/rpcserver.c b/base/services/umpnpmgr/rpcserver.c
index 9277aa94c9..bda0cdb55c 100644
--- a/base/services/umpnpmgr/rpcserver.c
+++ b/base/services/umpnpmgr/rpcserver.c
@@ -3530,20 +3530,30 @@ DWORD
WINAPI
PNP_RegisterNotification(
handle_t hBinding,
- DWORD dwUnknown2,
- DWORD dwUnknown3,
+ DWORD ulUnknown2,
+ DWORD ulUnknown3,
BYTE *pNotificationFilter,
DWORD ulNotificationFilterSize,
DWORD ulFlags,
- DWORD *pulNotify)
+ DWORD *pulNotify,
+ DWORD ulUnknown8,
+ DWORD *pulUnknown9)
{
#if 0
PNOTIFY_DATA pNotifyData;
#endif
- DPRINT1("PNP_RegisterNotification(%p %lx %lx %p %lu 0x%lx %p)\n",
- hBinding, dwUnknown2, dwUnknown3, pNotificationFilter,
- ulNotificationFilterSize, ulFlags, pulNotify);
+ DPRINT1("PNP_RegisterNotification(%p %lx %lx %p %lu 0x%lx %p %lx %p)\n",
+ hBinding, ulUnknown2, ulUnknown3, pNotificationFilter,
+ ulNotificationFilterSize, ulFlags, pulNotify, ulUnknown8, pulUnknown9);
+
+ if (pNotificationFilter == NULL ||
+ pulNotify == NULL ||
+ pulUnknown9 == NULL)
+ return CR_INVALID_POINTER;
+
+ if (ulFlags & ~0x7)
+ return CR_INVALID_FLAG;
#if 0
pNotifyData = RtlAllocateHeap(GetProcessHeap(), HEAP_ZERO_MEMORY,
sizeof(NOTIFY_DATA));
diff --git a/dll/win32/setupapi/cfgmgr.c b/dll/win32/setupapi/cfgmgr.c
index c0fe4675cb..b5823a99f6 100644
--- a/dll/win32/setupapi/cfgmgr.c
+++ b/dll/win32/setupapi/cfgmgr.c
@@ -593,9 +593,10 @@ CMP_RegisterNotification(
{
RPC_BINDING_HANDLE BindingHandle = NULL;
PNOTIFY_DATA pNotifyData = NULL;
+ DWORD ulUnknown9 = 0;
CONFIGRET ret = CR_SUCCESS;
- TRACE("CMP_RegisterNotification(%p %p %lu %p)\n",
+ FIXME("CMP_RegisterNotification(%p %p %lu %p)\n",
hRecipient, lpvNotificationFilter, ulFlags, phDevNotify);
if ((hRecipient == NULL) ||
@@ -639,7 +640,9 @@ CMP_RegisterNotification(
(BYTE*)lpvNotificationFilter,
((DEV_BROADCAST_HDR*)lpvNotificationFilter)->dbch_size,
ulFlags,
- &pNotifyData->ulNotifyData);
+ &pNotifyData->ulNotifyData,
+ 0,
+ &ulUnknown9);
}
RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
diff --git a/sdk/include/reactos/idl/pnp.idl b/sdk/include/reactos/idl/pnp.idl
index bbcf1c196a..13983a4e18 100644
--- a/sdk/include/reactos/idl/pnp.idl
+++ b/sdk/include/reactos/idl/pnp.idl
@@ -875,12 +875,14 @@ interface pnp
__stdcall
PNP_RegisterNotification(
[in] handle_t hBinding,
- [in] DWORD dwUnknown2,
- [in] DWORD dwUnknown3,
+ [in] DWORD ulUnknown2,
+ [in] DWORD ulUnknown3,
[in, size_is(ulNotificationFilterSize)] BYTE *pNotificationFilter,
[in] DWORD ulNotificationFilterSize,
[in] DWORD ulFlags,
- [out] DWORD *pulNotifyData);
+ [out] DWORD *pulNotifyData,
+ [in] DWORD ulUnknown8,
+ [out] DWORD *pulUnknown9);
/* Function 60 */
DWORD