2 * Copyright (C) 2016 Austin English
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
23 #define WMIAPI __stdcall
25 #define WMIAPI DECLSPEC_HIDDEN __stdcall
32 typedef PVOID WMIHANDLE
, *PWMIHANDLE
, MOFHANDLE
, *PMOFHANDLE
;
34 #define MOFCI_RESERVED0 0x00000001
35 #define MOFCI_RESERVED1 0x00000002
36 #define MOFCI_RESERVED2 0x00000004
43 UCHAR
*ResourceBuffer
;
44 } MOFRESOURCEINFOA
, *PMOFRESOURCEINFOA
;
51 UCHAR
*ResourceBuffer
;
52 } MOFRESOURCEINFOW
, *PMOFRESOURCEINFOW
;
54 DECL_WINELIB_TYPE_AW(MOFRESOURCEINFO
)
55 DECL_WINELIB_TYPE_AW(PMOFRESOURCEINFO
)
61 #define NOTIFICATION_TRACE_FLAG 0x00010000
62 #define NOTIFICATION_CALLBACK_DIRECT 0x00000004
63 #define NOTIFICATION_CHECK_ACCESS 0x00000008
65 typedef void (WINAPI
*NOTIFICATIONCALLBACK
)(WNODE_HEADER
*, UINT_PTR
);
67 typedef struct _WMIGUIDINFORMATION
72 } WMIGUIDINFORMATION
, *PWMIGUIDINFORMATION
;
74 DEFINE_GUID(GUID_REGISTRATION_CHANGE_NOTIFICATION
, 0xb48d49a1, 0xe777, 0x11d0, 0xa5, 0xc, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0x10);
75 DEFINE_GUID(GUID_MOF_RESOURCE_ADDED_NOTIFICATION
, 0xb48d49a2, 0xe777, 0x11d0, 0xa5, 0xc, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0x10);
76 DEFINE_GUID(GUID_MOF_RESOURCE_REMOVED_NOTIFICATION
, 0xb48d49a3, 0xe777, 0x11d0, 0xa5, 0xc, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0x10);
78 ULONG WMIAPI
WmiCloseBlock(WMIHANDLE
);
79 ULONG WMIAPI
WmiDevInstToInstanceNameA(char *, ULONG
, char *, ULONG
);
80 ULONG WMIAPI
WmiDevInstToInstanceNameW(WCHAR
*, ULONG
, WCHAR
*, ULONG
);
81 #define WmiDevInstToInstanceName WINELIB_NAME_AW(WmiDevInstToInstanceName)
82 ULONG WMIAPI
WmiEnumerateGuids(GUID
*, ULONG
*);
83 ULONG WMIAPI
WmiExecuteMethodA(WMIHANDLE
, const char *, ULONG
, ULONG
, void *, ULONG
*, void *);
84 ULONG WMIAPI
WmiExecuteMethodW(WMIHANDLE
, const WCHAR
*, ULONG
, ULONG
, void *, ULONG
*, void *);
85 #define WmiExecuteMethod WINELIB_NAME_AW(WmiExecuteMethod)
86 ULONG WMIAPI
WmiFileHandleToInstanceNameA(WMIHANDLE
, HANDLE
, ULONG
*, char *);
87 ULONG WMIAPI
WmiFileHandleToInstanceNameW(WMIHANDLE
, HANDLE
, ULONG
*, WCHAR
*);
88 #define WmiFileHandleToInstanceName WINELIB_NAME_AW(WmiFileHandleToInstanceName)
89 void WMIAPI
WmiFreeBuffer(void *);
90 #define WmiInsertTimestamp(WnodeHeader) GetSystemTimeAsFileTime((FILETIME *)&((WNODE_HEADER *)WnodeHeader)->TimeStamp)
91 ULONG WMIAPI
WmiMofEnumerateResourcesA(MOFHANDLE
, ULONG
*, MOFRESOURCEINFOA
**);
92 ULONG WMIAPI
WmiMofEnumerateResourcesW(MOFHANDLE
, ULONG
*, MOFRESOURCEINFOW
**);
93 #define WmiMofEnumerateResources WINELIB_NAME_AW(WmiMofEnumerateResources)
94 ULONG WMIAPI
WmiNotificationRegistrationA(GUID
*, BOOLEAN
, void *, ULONG_PTR
, ULONG
);
95 ULONG WMIAPI
WmiNotificationRegistrationW(GUID
*, BOOLEAN
, void *, ULONG_PTR
, ULONG
);
96 #define WmiNotificationRegistration WINELIB_NAME_AW(WmiNotificationRegistration)
97 ULONG WMIAPI
WmiOpenBlock(GUID
*, ULONG
, WMIHANDLE
*);
98 ULONG WMIAPI
WmiQueryAllDataA(WMIHANDLE
, ULONG
*, void *);
99 ULONG WMIAPI
WmiQueryAllDataW(WMIHANDLE
, ULONG
*, void *);
100 #define WmiQueryAllData WINELIB_NAME_AW(WmiQueryAllData)
101 ULONG WMIAPI
WmiQueryGuidInformation(WMIHANDLE
, WMIGUIDINFORMATION
*);
102 ULONG WMIAPI
WmiQuerySingleInstanceA(WMIHANDLE
, const char *, ULONG
*, void *);
103 ULONG WMIAPI
WmiQuerySingleInstanceW(WMIHANDLE
, const WCHAR
*, ULONG
*, void *);
104 #define WmiQuerySingleInstance WINELIB_NAME_AW(WmiQuerySingleInstance)
105 ULONG WMIAPI
WmiSetSingleInstanceA(WMIHANDLE
, const char *, ULONG
, ULONG
, void *);
106 ULONG WMIAPI
WmiSetSingleInstanceW(WMIHANDLE
, const WCHAR
*, ULONG
, ULONG
, void *);
107 #define WmiSetSingleInstance WINELIB_NAME_AW(WmiSetSingleInstance)
108 ULONG WMIAPI
WmiSetSingleItemA(WMIHANDLE
, const char *, ULONG
, ULONG
, ULONG
, void *);
109 ULONG WMIAPI
WmiSetSingleItemW(WMIHANDLE
, const WCHAR
*, ULONG
, ULONG
, ULONG
, void *);
110 #define WmiSetSingleItem WINELIB_NAME_AW(WmiSetSingleItem)