diff --git a/dlls/advapi32/Makefile.in b/dlls/advapi32/Makefile.in index 6b54295fbaf..ff6452a91b1 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 3f32aa3024f..adb6d7e9fca 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 93c164d4c2b..7274d98b08a 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 00000000000..b615699230e --- /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 + +#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; +}