[2/2] advapi32: Add stubs for some advapi32 wmi functions. (v4)

Sebastian Lackner sebastian at fds-team.de
Thu Jun 30 17:22:35 CDT 2016


From: Austin English <austin.english at snhu.edu>

Signed-off-by: Austin English <austinenglish at gmail.com>
Signed-off-by: Sebastian Lackner <sebastian at fds-team.de>
---

Changes in v4:
* Fix compile error (wrong parameters for WmiNotificationRegistration*)
* Fix spec file for WmiNotificationRegistration* and WmiOpenBlock
* Use debugstr_guid to trace GUID values
* Add missing trace for "id" variable in WmiSetSingleItem* functions
* Consistently use the same FIXME format
* Break some very long lines
* Fix a whitespace issue

 dlls/advapi32/Makefile.in   |    3 
 dlls/advapi32/advapi32.spec |   28 +++---
 dlls/advapi32/eventlog.c    |    9 --
 dlls/advapi32/wmi.c         |  181 ++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 197 insertions(+), 24 deletions(-)

diff --git a/dlls/advapi32/Makefile.in b/dlls/advapi32/Makefile.in
index 6b54295..ff6452a 100644
--- a/dlls/advapi32/Makefile.in
+++ b/dlls/advapi32/Makefile.in
@@ -18,7 +18,8 @@ C_SRCS = \
 	lsa.c \
 	registry.c \
 	security.c \
-	service.c
+	service.c \
+	wmi.c
 
 IDL_SRCS = svcctl.idl
 
diff --git a/dlls/advapi32/advapi32.spec b/dlls/advapi32/advapi32.spec
index 3f32aa3..adb6d7e 100644
--- a/dlls/advapi32/advapi32.spec
+++ b/dlls/advapi32/advapi32.spec
@@ -795,35 +795,35 @@
 # @ stub WmiDevInstToInstanceNameA
 # @ stub WmiDevInstToInstanceNameW
 # @ stub WmiEnumerateGuids
-# @ stub WmiExecuteMethodA
-# @ stub WmiExecuteMethodW
+@ stdcall WmiExecuteMethodA(long str long long ptr ptr ptr)
+@ stdcall WmiExecuteMethodW(long wstr long long ptr ptr ptr)
 # @ stub WmiFileHandleToInstanceNameA
 # @ stub WmiFileHandleToInstanceNameW
-# @ stub WmiFreeBuffer
+@ stdcall WmiFreeBuffer(ptr)
 # @ stub WmiGetFirstTraceOffset
 # @ stub WmiGetNextEvent
 # @ stub WmiGetTraceHeader
-# @ stub WmiMofEnumerateResourcesA
-# @ stub WmiMofEnumerateResourcesW
-# @ stub WmiNotificationRegistrationA
-# @ stub WmiNotificationRegistrationW
+@ stdcall WmiMofEnumerateResourcesA(long ptr ptr)
+@ stdcall WmiMofEnumerateResourcesW(long ptr ptr)
+@ stdcall WmiNotificationRegistrationA(ptr long ptr long long)
+@ stdcall WmiNotificationRegistrationW(ptr long ptr long long)
 @ stdcall WmiOpenBlock(ptr long ptr)
 # @ stub WmiOpenTraceWithCursor
 # @ stub WmiParseTraceEvent
-# @ stub WmiQueryAllDataA
+@ stdcall WmiQueryAllDataA(long ptr ptr)
 # @ stub WmiQueryAllDataMultipleA
 # @ stub WmiQueryAllDataMultipleW
-# @ stub WmiQueryAllDataW
-# @ stub WmiQueryGuidInformation
+@ stdcall WmiQueryAllDataW(long ptr ptr)
+@ stdcall WmiQueryGuidInformation(long ptr)
 # @ stub WmiQuerySingleInstanceA
 # @ stub WmiQuerySingleInstanceMultipleA
 # @ stub WmiQuerySingleInstanceMultipleW
 @ stub WmiQuerySingleInstanceW
 # @ stub WmiReceiveNotificationsA
 # @ stub WmiReceiveNotificationsW
-# @ stub WmiSetSingleInstanceA
-@ stub WmiSetSingleInstanceW
-# @ stub WmiSetSingleItemA
-# @ stub WmiSetSingleItemW
+@ stdcall WmiSetSingleInstanceA(long str long long ptr)
+@ stdcall WmiSetSingleInstanceW(long wstr long long ptr)
+@ stdcall WmiSetSingleItemA(long str long long long ptr)
+@ stdcall WmiSetSingleItemW(long wstr long long long ptr)
 # @ stub Wow64Win32ApiEntry
 @ stdcall WriteEncryptedFileRaw(ptr ptr ptr)
diff --git a/dlls/advapi32/eventlog.c b/dlls/advapi32/eventlog.c
index 93c164d..7274d98 100644
--- a/dlls/advapi32/eventlog.c
+++ b/dlls/advapi32/eventlog.c
@@ -964,12 +964,3 @@ ULONG WINAPI EnumerateTraceGuids(PTRACE_GUID_PROPERTIES *propertiesarray,
     FIXME("%p %d %p: stub\n", propertiesarray, arraycount, guidcount);
     return ERROR_INVALID_PARAMETER;
 }
-
-/******************************************************************************
- * WmiOpenBlock [ADVAPI32.@]
- */
-NTSTATUS WINAPI WmiOpenBlock(GUID *guid, ULONG access, PVOID *datablock)
-{
-    FIXME("%s %d %p: stub\n", debugstr_guid(guid), access, datablock);
-    return ERROR_SUCCESS;
-}
diff --git a/dlls/advapi32/wmi.c b/dlls/advapi32/wmi.c
new file mode 100644
index 0000000..b615699
--- /dev/null
+++ b/dlls/advapi32/wmi.c
@@ -0,0 +1,181 @@
+/*
+ * Win32 advapi/wmi functions
+ *
+ * Copyright 2016 Austin English
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+#include "winerror.h"
+#include "winternl.h"
+#include "wmistr.h"
+
+#define _WMI_SOURCE_
+#include "wmium.h"
+
+#include "wine/unicode.h"
+#include "wine/debug.h"
+
+#include "advapi32_misc.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(wmi);
+
+/******************************************************************************
+ * WmiExecuteMethodA [ADVAPI32.@]
+ */
+ULONG WMIAPI WmiExecuteMethodA(WMIHANDLE handle, const char *name, ULONG method, ULONG inputsize,
+                               void *inputbuffer, ULONG *outputsize, void *outputbuffer)
+{
+    FIXME(" %p %s %u %u %p %p %p: stub\n", handle, debugstr_a(name), method, inputsize, inputbuffer,
+                                           outputsize, outputbuffer);
+    return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+/******************************************************************************
+ * WmiExecuteMethodW [ADVAPI32.@]
+ */
+ULONG WMIAPI WmiExecuteMethodW(WMIHANDLE handle, const WCHAR *name, ULONG method, ULONG inputsize,
+                               void *inputbuffer, ULONG *outputsize, void *outputbuffer)
+{
+    FIXME("%p %s %u %u %p %p %p: stub\n", handle, debugstr_w(name), method, inputsize, inputbuffer,
+                                          outputsize, outputbuffer);
+    return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+/******************************************************************************
+ * WmiFreeBuffer [ADVAPI32.@]
+ */
+void WMIAPI WmiFreeBuffer(void *buffer)
+{
+    FIXME("%p: stub\n", buffer);
+}
+
+/******************************************************************************
+ * WmiMofEnumerateResourcesA [ADVAPI32.@]
+ */
+ULONG WMIAPI WmiMofEnumerateResourcesA(MOFHANDLE handle, ULONG *count, MOFRESOURCEINFOA **resource)
+{
+    FIXME("%p %p %p: stub\n", handle, count, resource);
+    return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+/******************************************************************************
+ * WmiMofEnumerateResourcesW [ADVAPI32.@]
+ */
+ULONG WMIAPI WmiMofEnumerateResourcesW(MOFHANDLE handle, ULONG *count, MOFRESOURCEINFOW **resource)
+{
+    FIXME("%p %p %p: stub\n", handle, count, resource);
+    return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+/******************************************************************************
+ * WmiNotificationRegistrationA [ADVAPI32.@]
+ */
+ULONG WMIAPI WmiNotificationRegistrationA(GUID *guid, BOOLEAN enable, void *info,
+                                          ULONG_PTR context, ULONG flags)
+{
+    FIXME("%s %u %p 0x%lx 0x%08x: stub\n", debugstr_guid(guid), enable, info, context, flags);
+    return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+/******************************************************************************
+ * WmiNotificationRegistrationW [ADVAPI32.@]
+ */
+ULONG WMIAPI WmiNotificationRegistrationW(GUID *guid, BOOLEAN enable, void *info,
+                                          ULONG_PTR context, ULONG flags)
+{
+    FIXME("%s %u %p 0x%lx 0x%08x: stub\n", debugstr_guid(guid), enable, info, context, flags);
+    return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+/******************************************************************************
+ * WmiOpenBlock [ADVAPI32.@]
+ */
+ULONG WINAPI WmiOpenBlock(GUID *guid, ULONG access, WMIHANDLE *handle)
+{
+    FIXME("%s %u %p: stub\n", debugstr_guid(guid), access, handle);
+    return ERROR_SUCCESS;
+}
+
+/******************************************************************************
+ * WmiQueryAllDataA [ADVAPI32.@]
+ */
+ULONG WMIAPI WmiQueryAllDataA(WMIHANDLE handle, ULONG *size, void *buffer)
+{
+    FIXME("%p %p %p: stub\n", handle, size, buffer);
+    return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+/******************************************************************************
+ * WmiQueryAllDataW [ADVAPI32.@]
+ */
+ULONG WMIAPI WmiQueryAllDataW(WMIHANDLE handle, ULONG *size, void *buffer)
+{
+    FIXME("%p %p %p: stub\n", handle, size, buffer);
+    return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+/******************************************************************************
+ * WmiQueryGuidInformation [ADVAPI32.@]
+ */
+ULONG WMIAPI WmiQueryGuidInformation(WMIHANDLE handle, WMIGUIDINFORMATION *info)
+{
+    FIXME("%p %p: stub\n", handle, info);
+    return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+/******************************************************************************
+ * WmiSetSingleInstanceA [ADVAPI32.@]
+ */
+ULONG WMIAPI WmiSetSingleInstanceA(WMIHANDLE handle, const char *name, ULONG reserved,
+                                   ULONG size, void *buffer)
+{
+    FIXME("%p %s %u %u %p: stub\n", handle, debugstr_a(name), reserved, size, buffer);
+    return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+/******************************************************************************
+ * WmiSetSingleInstanceW [ADVAPI32.@]
+ */
+ULONG WMIAPI WmiSetSingleInstanceW(WMIHANDLE handle, const WCHAR *name, ULONG reserved,
+                                   ULONG size, void *buffer)
+{
+    FIXME("%p %s %u %u %p: stub\n", handle, debugstr_w(name), reserved, size, buffer);
+    return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+/******************************************************************************
+ * WmiSetSingleItemA [ADVAPI32.@]
+ */
+ULONG WMIAPI WmiSetSingleItemA(WMIHANDLE handle, const char *name, ULONG id, ULONG reserved,
+                               ULONG size, void *buffer)
+{
+    FIXME("%p %s %u %u %u %p: stub\n", handle, debugstr_a(name), id, reserved, size, buffer);
+    return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+/******************************************************************************
+ * WmiSetSingleItemW [ADVAPI32.@]
+ */
+ULONG WMIAPI WmiSetSingleItemW(WMIHANDLE handle, const WCHAR *name, ULONG id, ULONG reserved,
+                               ULONG size, void *buffer)
+{
+    FIXME("%p %s %u %u %u %p: stub\n", handle, debugstr_w(name), id, reserved, size, buffer);
+    return ERROR_CALL_NOT_IMPLEMENTED;
+}
-- 
2.8.0



More information about the wine-patches mailing list