[PATCH] first wmi support

Marcus Meissner marcus at jet.franken.de
Wed Jan 16 08:03:03 CST 2008


Hi,

WMI support with however most stuff just forwarded to
advapi32.

Ciao, Marcus
---
 Makefile.in          |    2 ++
 configure            |    3 +++
 configure.ac         |    1 +
 dlls/Makefile.in     |    1 +
 dlls/wmi/Makefile.in |   13 +++++++++++++
 dlls/wmi/wmi.spec    |   45 +++++++++++++++++++++++++++++++++++++++++++++
 dlls/wmi/wmi_main.c  |   38 ++++++++++++++++++++++++++++++++++++++
 7 files changed, 103 insertions(+), 0 deletions(-)
 create mode 100644 dlls/wmi/Makefile.in
 create mode 100644 dlls/wmi/wmi.spec
 create mode 100644 dlls/wmi/wmi_main.c

diff --git a/Makefile.in b/Makefile.in
index f22b6a0..d561c2a 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -461,6 +461,7 @@ ALL_MAKEFILES = \
 	dlls/wintrust/Makefile \
 	dlls/wintrust/tests/Makefile \
 	dlls/wldap32/Makefile \
+	dlls/wmi/Makefile \
 	dlls/wnaspi32/Makefile \
 	dlls/wow32/Makefile \
 	dlls/ws2_32/Makefile \
@@ -848,6 +849,7 @@ dlls/wintab32/Makefile: dlls/wintab32/Makefile.in dlls/Makedll.rules
 dlls/wintrust/Makefile: dlls/wintrust/Makefile.in dlls/Makedll.rules
 dlls/wintrust/tests/Makefile: dlls/wintrust/tests/Makefile.in dlls/Maketest.rules
 dlls/wldap32/Makefile: dlls/wldap32/Makefile.in dlls/Makedll.rules
+dlls/wmi/Makefile: dlls/wmi/Makefile.in dlls/Makedll.rules
 dlls/wnaspi32/Makefile: dlls/wnaspi32/Makefile.in dlls/Makedll.rules
 dlls/wow32/Makefile: dlls/wow32/Makefile.in dlls/Makedll.rules
 dlls/ws2_32/Makefile: dlls/ws2_32/Makefile.in dlls/Makedll.rules
diff --git a/configure b/configure
index 940ad51..a42a271 100755
--- a/configure
+++ b/configure
@@ -21713,6 +21713,8 @@ ac_config_files="$ac_config_files dlls/wintrust/tests/Makefile"
 
 ac_config_files="$ac_config_files dlls/wldap32/Makefile"
 
+ac_config_files="$ac_config_files dlls/wmi/Makefile"
+
 ac_config_files="$ac_config_files dlls/wnaspi32/Makefile"
 
 ac_config_files="$ac_config_files dlls/wow32/Makefile"
@@ -22720,6 +22722,7 @@ do
     "dlls/wintrust/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/wintrust/Makefile" ;;
     "dlls/wintrust/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/wintrust/tests/Makefile" ;;
     "dlls/wldap32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/wldap32/Makefile" ;;
+    "dlls/wmi/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/wmi/Makefile" ;;
     "dlls/wnaspi32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/wnaspi32/Makefile" ;;
     "dlls/wow32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/wow32/Makefile" ;;
     "dlls/ws2_32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/ws2_32/Makefile" ;;
diff --git a/configure.ac b/configure.ac
index 328dfc8..8fb2daf 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1958,6 +1958,7 @@ AC_CONFIG_FILES([dlls/wintab32/Makefile])
 AC_CONFIG_FILES([dlls/wintrust/Makefile])
 AC_CONFIG_FILES([dlls/wintrust/tests/Makefile])
 AC_CONFIG_FILES([dlls/wldap32/Makefile])
+AC_CONFIG_FILES([dlls/wmi/Makefile])
 AC_CONFIG_FILES([dlls/wnaspi32/Makefile])
 AC_CONFIG_FILES([dlls/wow32/Makefile])
 AC_CONFIG_FILES([dlls/ws2_32/Makefile])
diff --git a/dlls/Makefile.in b/dlls/Makefile.in
index 452a444..60de3a6 100644
--- a/dlls/Makefile.in
+++ b/dlls/Makefile.in
@@ -237,6 +237,7 @@ BASEDIRS = \
 	wintab32 \
 	wintrust \
 	wldap32 \
+	wmi \
 	wnaspi32 \
 	wow32 \
 	ws2_32 \
diff --git a/dlls/wmi/Makefile.in b/dlls/wmi/Makefile.in
new file mode 100644
index 0000000..9b5bbf6
--- /dev/null
+++ b/dlls/wmi/Makefile.in
@@ -0,0 +1,13 @@
+TOPSRCDIR = @top_srcdir@
+TOPOBJDIR = ../..
+SRCDIR    = @srcdir@
+VPATH     = @srcdir@
+MODULE    = wmi.dll
+IMPORTS   = advapi32 kernel32
+EXTRALIBS = 
+
+C_SRCS = wmi_main.c
+
+ at MAKE_DLL_RULES@
+
+ at DEPENDENCIES@  # everything below this line is overwritten by make depend
diff --git a/dlls/wmi/wmi.spec b/dlls/wmi/wmi.spec
new file mode 100644
index 0000000..c6ae3cc
--- /dev/null
+++ b/dlls/wmi/wmi.spec
@@ -0,0 +1,45 @@
+@ stdcall CloseTrace(long) advapi32.CloseTrace
+@ stdcall ControlTraceA(long long ptr long) advapi32.ControlTraceA
+@ stdcall ControlTraceW(long long ptr long) advapi32.ControlTraceW
+@ stdcall CreateTraceInstanceId(long ptr) advapi32.CreateTraceInstanceId
+@ stdcall EnableTrace(long long long ptr long) advapi32.EnableTrace
+@ stdcall GetTraceEnableFlags(long) advapi32.GetTraceEnableFlags
+@ stdcall GetTraceEnableLevel(long) advapi32.GetTraceEnableLevel
+@ stdcall GetTraceLoggerHandle(ptr) advapi32.GetTraceLoggerHandle
+@ stdcall OpenTraceA(ptr) advapi32.OpenTraceA
+@ stdcall OpenTraceW(ptr) advapi32.OpenTraceW
+@ stdcall ProcessTrace(ptr long ptr ptr) advapi32.ProcessTrace
+@ stdcall QueryAllTracesA(ptr long ptr) advapi32.QueryAllTracesA
+@ stdcall QueryAllTracesW(ptr long ptr) advapi32.QueryAllTracesW
+@ stdcall RegisterTraceGuidsA(ptr ptr ptr long ptr ptr ptr ptr) advapi32.RegisterTraceGuidsA
+@ stdcall RegisterTraceGuidsW(ptr ptr ptr long ptr ptr ptr ptr) advapi32.RegisterTraceGuidsW
+@ stdcall RemoveTraceCallback(ptr) advapi32.RemoveTraceCallback
+@ stdcall SetTraceCallback(ptr ptr) advapi32.SetTraceCallback
+@ stdcall StartTraceA(ptr ptr ptr) advapi32.StartTraceA
+@ stdcall StartTraceW(ptr ptr ptr) advapi32.StartTraceW
+@ stdcall TraceEvent(long ptr) advapi32.TraceEvent
+@ stdcall TraceEventInstance(long ptr ptr ptr) advapi32.TraceEventInstance
+@ stdcall UnregisterTraceGuids(long) advapi32.UnregisterTraceGuids
+@ stdcall WmiCloseBlock() advapi32.WmiCloseBlock
+@ stdcall WmiDevInstToInstanceNameA() advapi32.WmiDevInstToInstanceNameA
+@ stdcall WmiDevInstToInstanceNameW() advapi32.WmiDevInstToInstanceNameW
+@ stdcall WmiEnumerateGuids() advapi32.WmiEnumerateGuids
+@ stdcall WmiExecuteMethodA() advapi32.WmiExecuteMethodA
+@ stdcall WmiExecuteMethodW() advapi32.WmiExecuteMethodW
+@ stdcall WmiFileHandleToInstanceNameA() advapi32.WmiFileHandleToInstanceNameA
+@ stdcall WmiFileHandleToInstanceNameW() advapi32.WmiFileHandleToInstanceNameW
+@ stdcall WmiFreeBuffer() advapi32.WmiFreeBuffer
+@ stdcall WmiMofEnumerateResourcesA() advapi32.WmiMofEnumerateResourcesA
+@ stdcall WmiMofEnumerateResourcesW() advapi32.WmiMofEnumerateResourcesW
+@ stdcall WmiNotificationRegistrationA() advapi32.WmiNotificationRegistrationA
+@ stdcall WmiNotificationRegistrationW() advapi32.WmiNotificationRegistrationW
+@ stdcall WmiOpenBlock() advapi32.WmiOpenBlock
+@ stdcall WmiQueryAllDataA() advapi32.WmiQueryAllDataA
+@ stdcall WmiQueryAllDataW() advapi32.WmiQueryAllDataW
+@ stdcall WmiQueryGuidInformation() advapi32.WmiQueryGuidInformation
+@ stdcall WmiQuerySingleInstanceA() advapi32.WmiQuerySingleInstanceA
+@ stdcall WmiQuerySingleInstanceW() advapi32.WmiQuerySingleInstanceW
+@ stdcall WmiSetSingleInstanceA() advapi32.WmiSetSingleInstanceA
+@ stdcall WmiSetSingleInstanceW() advapi32.WmiSetSingleInstanceW
+@ stdcall WmiSetSingleItemA() advapi32.WmiSetSingleItemA
+@ stdcall WmiSetSingleItemW() advapi32.WmiSetSingleItemW
diff --git a/dlls/wmi/wmi_main.c b/dlls/wmi/wmi_main.c
new file mode 100644
index 0000000..f3c5325
--- /dev/null
+++ b/dlls/wmi/wmi_main.c
@@ -0,0 +1,38 @@
+/* 
+ * WMI
+ * 
+ * Copyright 2007 Marcus Meissner
+ *
+ * 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 "config.h"
+
+#include <windef.h>
+#include <wine/debug.h>
+#include <winbase.h>
+#include <winnt.h>
+
+WINE_DEFAULT_DEBUG_CHANNEL(wmi);
+
+BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpvReserved)
+{
+	TRACE("(0x%p, %d, %p)\n",hInstDLL,fdwReason,lpvReserved);
+
+	if (fdwReason == DLL_WINE_PREATTACH) return FALSE;	/* prefer native version */
+	if (fdwReason == DLL_PROCESS_ATTACH)
+		DisableThreadLibraryCalls(hInstDLL);
+	return TRUE;
+}
-- 
1.5.2.4



More information about the wine-patches mailing list