Fix PNP_QueryArbitratorFreeData() and PNP_QueryArbitratorFreeSize() prototypes.
[reactos.git] / reactos / base / services / umpnpmgr / umpnpmgr.c
index 2352efe..64d8b45 100644 (file)
@@ -94,20 +94,37 @@ static DWORD WINAPI
 RpcServerThread(LPVOID lpParameter)
 {
     RPC_STATUS Status;
+    BOOLEAN RegisteredProtSeq = FALSE;
 
     UNREFERENCED_PARAMETER(lpParameter);
 
     DPRINT("RpcServerThread() called\n");
 
+#if 0
+    /* XP-compatible protocol sequence/endpoint */
     Status = RpcServerUseProtseqEpW(L"ncacn_np",
                                     20,
-                                    L"\\pipe\\umpnpmgr",
+                                    L"\\pipe\\ntsvcs",
                                     NULL);  // Security descriptor
-    if (Status != RPC_S_OK)
-    {
+    if (Status == RPC_S_OK)
+        RegisteredProtSeq = TRUE;
+    else
+        DPRINT1("RpcServerUseProtseqEpW() failed (Status %lx)\n", Status);
+#endif
+
+    /* Vista-compatible protocol sequence/endpoint */
+    Status = RpcServerUseProtseqEpW(L"ncacn_np",
+                                    20,
+                                    L"\\pipe\\plugplay",
+                                    NULL);  // Security descriptor
+    if (Status == RPC_S_OK)
+        RegisteredProtSeq = TRUE;
+    else
         DPRINT1("RpcServerUseProtseqEpW() failed (Status %lx)\n", Status);
+
+    /* Make sure there's a usable endpoint */
+    if (RegisteredProtSeq == FALSE)
         return 0;
-    }
 
     Status = RpcServerRegisterIf(pnp_v1_0_s_ifspec,
                                  NULL,
@@ -1838,7 +1855,12 @@ DWORD PNP_SetHwProf(
 
 /* Function 56 */
 DWORD PNP_QueryArbitratorFreeData(
-    handle_t hBinding)
+    handle_t hBinding,
+    BYTE *pData,
+    DWORD DataLen,
+    LPWSTR pDeviceID,
+    RESOURCEID ResourceID,
+    DWORD ulFlags)
 {
     UNIMPLEMENTED;
     return CR_CALL_NOT_IMPLEMENTED;
@@ -1847,7 +1869,11 @@ DWORD PNP_QueryArbitratorFreeData(
 
 /* Function 57 */
 DWORD PNP_QueryArbitratorFreeSize(
-    handle_t hBinding)
+    handle_t hBinding,
+    DWORD *pulSize,
+    LPWSTR pDeviceID,
+    RESOURCEID ResourceID,
+    DWORD ulFlags)
 {
     UNIMPLEMENTED;
     return CR_CALL_NOT_IMPLEMENTED;