xref: /reactos/ntoskrnl/wmi/wmip.h (revision 5e891f72)
1 
2 #pragma once
3 
4 extern POBJECT_TYPE WmipGuidObjectType;
5 
6 #define GUID_STRING_LENGTH 36
7 
8 typedef struct _WMIP_IRP_CONTEXT
9 {
10     LIST_ENTRY GuidObjectListHead;
11 } WMIP_IRP_CONTEXT, *PWMIP_IRP_CONTEXT;
12 
13 typedef struct _WMIP_GUID_OBJECT
14 {
15     KEVENT Event;
16     GUID Guid;
17     PIRP Irp;
18     LIST_ENTRY IrpLink;
19 } WMIP_GUID_OBJECT, *PWMIP_GUID_OBJECT;
20 
21 
22 _Function_class_(DRIVER_INITIALIZE)
23 _IRQL_requires_same_
24 NTSTATUS
25 NTAPI
26 WmipDriverEntry(
27     _In_ PDRIVER_OBJECT DriverObject,
28     _In_ PUNICODE_STRING RegistryPath);
29 
30 NTSTATUS
31 NTAPI
32 WmipInitializeGuidObjectType(
33     VOID);
34 
35 NTSTATUS
36 NTAPI
37 WmipOpenGuidObject(
38     _In_ LPCGUID Guid,
39     _In_ ACCESS_MASK DesiredAccess,
40     _In_ KPROCESSOR_MODE AccessMode,
41     _Out_ PHANDLE OutGuidObjectHandle,
42     _Outptr_ PVOID *OutGuidObject);
43 
44 NTSTATUS
45 NTAPI
46 WmipOpenGuidObjectByName(
47     _In_ POBJECT_ATTRIBUTES ObjectAttributes,
48     _In_ ACCESS_MASK DesiredAccess,
49     _In_ KPROCESSOR_MODE AccessMode,
50     _Out_ PHANDLE OutGuidObjectHandle,
51     _Outptr_ PVOID *OutGuidObject);
52 
53 NTSTATUS
54 NTAPI
55 WmipQueryRawSMBiosTables(
56     _Inout_ ULONG *InOutBufferSize,
57     _Out_opt_ PVOID OutBuffer);
58 
59