123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- #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 WMI_QUERY_REGINFO_CALLBACK) (
- 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 WMI_QUERY_REGINFO_CALLBACK *PWMI_QUERY_REGINFO;
- typedef NTSTATUS
- (NTAPI WMI_FUNCTION_CONTROL_CALLBACK) (
- IN OUT PDEVICE_OBJECT DeviceObject,
- IN OUT PIRP Irp,
- IN ULONG GuidIndex,
- IN WMIENABLEDISABLECONTROL Function,
- IN BOOLEAN Enable);
- typedef WMI_FUNCTION_CONTROL_CALLBACK *PWMI_FUNCTION_CONTROL;
- typedef NTSTATUS
- (NTAPI WMI_QUERY_DATABLOCK_CALLBACK) (
- 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 WMI_QUERY_DATABLOCK_CALLBACK *PWMI_QUERY_DATABLOCK;
- typedef NTSTATUS
- (NTAPI WMI_EXECUTE_METHOD_CALLBACK) (
- 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 WMI_EXECUTE_METHOD_CALLBACK *PWMI_EXECUTE_METHOD;
- typedef NTSTATUS
- (NTAPI WMI_SET_DATABLOCK_CALLBACK) (
- IN OUT PDEVICE_OBJECT DeviceObject,
- IN OUT PIRP Irp,
- IN ULONG GuidIndex,
- IN ULONG InstanceIndex,
- IN ULONG BufferSize,
- IN PUCHAR Buffer);
- typedef WMI_SET_DATABLOCK_CALLBACK *PWMI_SET_DATABLOCK;
- typedef NTSTATUS
- (NTAPI WMI_SET_DATAITEM_CALLBACK) (
- 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 WMI_SET_DATAITEM_CALLBACK *PWMI_SET_DATAITEM;
- 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
|