+++ /dev/null
-#pragma once
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef enum _WMIENABLEDISABLECONTROL {
- WmiEventControl,
- WmiDataBlockControl
-} WMIENABLEDISABLECONTROL, *PWMIENABLEDISABLECONTROL;
-
-typedef enum _SYSCTL_IRP_DISPOSITION {
- IrpProcessed,
- IrpNotCompleted,
- IrpNotWmi,
- IrpForward
-} SYSCTL_IRP_DISPOSITION, *PSYSCTL_IRP_DISPOSITION;
-
-typedef struct _WMIGUIDREGINFO {
- LPCGUID Guid;
- ULONG InstanceCount;
- ULONG Flags;
-} WMIGUIDREGINFO, *PWMIGUIDREGINFO;
-
-typedef NTSTATUS
-(NTAPI *PWMI_QUERY_REGINFO) (
- IN OUT PDEVICE_OBJECT DeviceObject,
- IN OUT PULONG RegFlags,
- IN OUT PUNICODE_STRING InstanceName,
- OUT PUNICODE_STRING *RegistryPath OPTIONAL,
- IN OUT PUNICODE_STRING MofResourceName,
- OUT PDEVICE_OBJECT *Pdo OPTIONAL);
-
-typedef NTSTATUS
-(NTAPI *PWMI_FUNCTION_CONTROL) (
- IN OUT PDEVICE_OBJECT DeviceObject,
- IN OUT PIRP Irp,
- IN ULONG GuidIndex,
- IN WMIENABLEDISABLECONTROL Function,
- IN BOOLEAN Enable);
-
-typedef NTSTATUS
-(NTAPI *PWMI_QUERY_DATABLOCK) (
- IN OUT PDEVICE_OBJECT DeviceObject,
- IN OUT PIRP Irp,
- IN ULONG GuidIndex,
- IN ULONG InstanceIndex,
- IN ULONG InstanceCount,
- OUT PULONG InstanceLengthArray OPTIONAL,
- IN ULONG BufferAvail,
- OUT PUCHAR Buffer OPTIONAL);
-
-typedef NTSTATUS
-(NTAPI *PWMI_EXECUTE_METHOD) (
- IN OUT PDEVICE_OBJECT DeviceObject,
- IN OUT PIRP Irp,
- IN ULONG GuidIndex,
- IN ULONG InstanceIndex,
- IN ULONG MethodId,
- IN ULONG InBufferSize,
- IN ULONG OutBufferSize,
- IN OUT PUCHAR Buffer);
-
-typedef NTSTATUS
-(NTAPI *PWMI_SET_DATABLOCK) (
- IN OUT PDEVICE_OBJECT DeviceObject,
- IN OUT PIRP Irp,
- IN ULONG GuidIndex,
- IN ULONG InstanceIndex,
- IN ULONG BufferSize,
- IN PUCHAR Buffer);
-
-typedef NTSTATUS
-(NTAPI *PWMI_SET_DATAITEM) (
- IN OUT PDEVICE_OBJECT DeviceObject,
- IN OUT PIRP Irp,
- IN ULONG GuidIndex,
- IN ULONG InstanceIndex,
- IN ULONG DataItemId,
- IN ULONG BufferSize,
- IN PUCHAR Buffer);
-
-typedef struct _WMILIB_CONTEXT {
- ULONG GuidCount;
- PWMIGUIDREGINFO GuidList;
- PWMI_QUERY_REGINFO QueryWmiRegInfo;
- PWMI_QUERY_DATABLOCK QueryWmiDataBlock;
- PWMI_SET_DATABLOCK SetWmiDataBlock;
- PWMI_SET_DATAITEM SetWmiDataItem;
- PWMI_EXECUTE_METHOD ExecuteWmiMethod;
- PWMI_FUNCTION_CONTROL WmiFunctionControl;
-} WMILIB_CONTEXT, *PWMILIB_CONTEXT;
-
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
-
-NTSTATUS
-NTAPI
-WmiCompleteRequest(
- IN PDEVICE_OBJECT DeviceObject,
- IN OUT PIRP Irp,
- IN NTSTATUS Status,
- IN ULONG BufferUsed,
- IN CCHAR PriorityBoost);
-
-NTSTATUS
-NTAPI
-WmiSystemControl(
- IN PWMILIB_CONTEXT WmiLibInfo,
- IN PDEVICE_OBJECT DeviceObject,
- IN OUT PIRP Irp,
- OUT PSYSCTL_IRP_DISPOSITION IrpDisposition);
-
-NTSTATUS
-NTAPI
-WmiFireEvent(
- IN PDEVICE_OBJECT DeviceObject,
- IN LPCGUID Guid,
- IN ULONG InstanceIndex,
- IN ULONG EventDataSize,
- IN PVOID EventData);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
-
-#ifdef __cplusplus
-}
-#endif