[PSDK]
[reactos.git] / include / ddk / wmlib.h
1
2 #ifndef _WMILIB_
3 #define _WMILIB_
4
5 #ifdef __cplusplus
6 extern "C" {
7 #endif
8
9 typedef struct _WMIGUIDREGINFO {
10 LPCGUID Guid;
11 ULONG InstanceCount;
12 ULONG Flags;
13 } WMIGUIDREGINFO, *PWMIGUIDREGINFO;
14
15 typedef
16 NTSTATUS
17 (NTAPI WMI_QUERY_REGINFO_CALLBACK)(
18 IN OUT PDEVICE_OBJECT DeviceObject,
19 IN OUT PULONG RegFlags,
20 IN OUT PUNICODE_STRING InstanceName,
21 IN OUT PUNICODE_STRING *RegistryPath OPTIONAL,
22 IN OUT PUNICODE_STRING MofResourceName,
23 OUT PDEVICE_OBJECT *Pdo OPTIONAL);
24
25 typedef WMI_QUERY_REGINFO_CALLBACK *PWMI_QUERY_REGINFO;
26
27 typedef
28 NTSTATUS
29 (NTAPI WMI_QUERY_DATABLOCK_CALLBACK)(
30 IN OUT PDEVICE_OBJECT DeviceObject,
31 IN OUT PIRP Irp,
32 IN OUT ULONG GuidIndex,
33 IN ULONG InstanceIndex,
34 IN ULONG InstanceCount,
35 OUT PULONG InstanceLengthArray OPTIONAL,
36 IN ULONG BufferAvail,
37 OUT PUCHAR Buffer OPTIONAL);
38
39 typedef WMI_QUERY_DATABLOCK_CALLBACK *PWMI_QUERY_DATABLOCK;
40
41 typedef
42 NTSTATUS
43 (NTAPI WMI_SET_DATABLOCK_CALLBACK)(
44 IN OUT PDEVICE_OBJECT DeviceObject,
45 IN OUT PIRP Irp,
46 IN ULONG GuidIndex,
47 IN ULONG InstanceIndex,
48 IN ULONG BufferSize,
49 IN PUCHAR Buffer);
50
51 typedef WMI_SET_DATABLOCK_CALLBACK *PWMI_SET_DATABLOCK;
52
53 typedef
54 NTSTATUS
55 (NTAPI WMI_SET_DATAITEM_CALLBACK)(
56 IN OUT PDEVICE_OBJECT DeviceObject,
57 IN OUT PIRP Irp,
58 IN ULONG GuidIndex,
59 IN ULONG InstanceIndex,
60 IN ULONG DataItemId,
61 IN ULONG BufferSize,
62 IN PUCHAR Buffer);
63
64 typedef WMI_SET_DATAITEM_CALLBACK *PWMI_SET_DATAITEM;
65
66 typedef
67 NTSTATUS
68 (NTAPI WMI_EXECUTE_METHOD_CALLBACK)(
69 IN OUT PDEVICE_OBJECT DeviceObject,
70 IN OUT PIRP Irp,
71 IN ULONG GuidIndex,
72 IN ULONG InstanceIndex,
73 IN ULONG MethodId,
74 IN ULONG InBufferSize,
75 IN ULONG OutBufferSize,
76 IN OUT PUCHAR Buffer);
77
78 typedef WMI_EXECUTE_METHOD_CALLBACK *PWMI_EXECUTE_METHOD;
79
80 typedef
81 NTSTATUS
82 (NTAPI WMI_FUNCTION_CONTROL_CALLBACK)(
83 IN OUT PDEVICE_OBJECT DeviceObject,
84 IN OUT PIRP Irp,
85 IN ULONG GuidIndex,
86 IN WMIENABLEDISABLECONTROL Function,
87 IN BOOLEAN Enable);
88
89 typedef WMI_FUNCTION_CONTROL_CALLBACK *PWMI_FUNCTION_CONTROL;
90
91 typedef struct _WMILIB_CONTEXT {
92 ULONG GuidCount;
93 PWMIGUIDREGINFO GuidList;
94 PWMI_QUERY_REGINFO QueryWmiRegInfo;
95 PWMI_QUERY_DATABLOCK QueryWmiDataBlock;
96 PWMI_SET_DATABLOCK SetWmiDataBlock;
97 PWMI_SET_DATAITEM SetWmiDataItem;
98 PWMI_EXECUTE_METHOD ExecuteWmiMethod;
99 PWMI_FUNCTION_CONTROL WmiFunctionControl;
100 } WMILIB_CONTEXT, *PWMILIB_CONTEXT;
101
102 #ifdef __cplusplus
103 }
104 #endif
105
106 #endif /* !_WMILIB_ */
107