22#define MOFRESOURCENAME L"MofResourceName"
24#define WMI_FREEBT_DRIVER_INFORMATION 0
26DEFINE_GUID (FREEBT_WMI_STD_DATA_GUID, 0x871B1A60, 0xD3EA, 0x4f2f, 0x81, 0x7b, 0x46, 0x5e, 0x44, 0x86, 0x7b, 0xf5);
31 &FREEBT_WMI_STD_DATA_GUID, 1, 0
49 DeviceExtension->WmiLibInfo.ExecuteWmiMethod =
NULL;
50 DeviceExtension->WmiLibInfo.WmiFunctionControl =
NULL;
80 if (
Removed == deviceExtension->DeviceState)
84 Irp->IoStatus.Status = ntStatus;
85 Irp->IoStatus.Information = 0;
208 *
Pdo = deviceExtension->PhysicalDeviceObject;
271 WCHAR modelName[] =
L"Aishverya\0\0";
279 modelNameLen = (
wcslen(modelName) + 1) *
sizeof(
WCHAR);
304 *InstanceLengthArray =
size ;
514 return "IRP_MN_CHANGE_SINGLE_INSTANCE\n";
517 return "IRP_MN_CHANGE_SINGLE_ITEM\n";
520 return "IRP_MN_DISABLE_COLLECTION\n";
523 return "IRP_MN_DISABLE_EVENTS\n";
526 return "IRP_MN_ENABLE_COLLECTION\n";
529 return "IRP_MN_ENABLE_EVENTS\n";
532 return "IRP_MN_EXECUTE_METHOD\n";
535 return "IRP_MN_QUERY_ALL_DATA\n";
538 return "IRP_MN_QUERY_SINGLE_INSTANCE\n";
541 return "IRP_MN_REGINFO\n";
544 return "IRP_MN_?????\n";
static PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(PIRP Irp)
_In_ LPGUID _In_ ULONG InstanceIndex
_In_ PIRP _In_ ULONG GuidIndex
CLIPBOARD_GLOBALS Globals
struct _BEEP_DEVICE_EXTENSION * PDEVICE_EXTENSION
LONG NTAPI FreeBT_IoDecrement(IN OUT PDEVICE_EXTENSION DeviceExtension)
LONG NTAPI FreeBT_IoIncrement(IN OUT PDEVICE_EXTENSION DeviceExtension)
#define FreeBT_DbgPrint(level, _x_)
#define WMI_FREEBT_DRIVER_INFORMATION
NTSTATUS NTAPI FreeBT_SetWmiDataItem(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN ULONG GuidIndex, IN ULONG InstanceIndex, IN ULONG DataItemId, IN ULONG BufferSize, IN PUCHAR Buffer)
PCHAR NTAPI WMIMinorFunctionString(UCHAR MinorFunction)
NTSTATUS NTAPI FreeBT_WmiRegistration(IN OUT PDEVICE_EXTENSION DeviceExtension)
NTSTATUS NTAPI FreeBT_QueryWmiRegInfo(IN PDEVICE_OBJECT DeviceObject, OUT ULONG *RegFlags, OUT PUNICODE_STRING InstanceName, OUT PUNICODE_STRING *RegistryPath, OUT PUNICODE_STRING MofResourceName, OUT PDEVICE_OBJECT *Pdo)
NTSTATUS NTAPI FreeBT_WmiDeRegistration(IN OUT PDEVICE_EXTENSION DeviceExtension)
NTSTATUS NTAPI FreeBT_QueryWmiDataBlock(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN ULONG GuidIndex, IN ULONG InstanceIndex, IN ULONG InstanceCount, IN OUT PULONG InstanceLengthArray, IN ULONG OutBufferSize, OUT PUCHAR Buffer)
WMIGUIDREGINFO FreeBTWmiGuidList[1]
NTSTATUS NTAPI FreeBT_DispatchSysCtrl(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
NTSTATUS NTAPI FreeBT_SetWmiDataBlock(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN ULONG GuidIndex, IN ULONG InstanceIndex, IN ULONG BufferSize, IN PUCHAR Buffer)
_Must_inspect_result_ _Inout_ PFLT_VOLUME _In_opt_ PCUNICODE_STRING InstanceName
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
#define IoSkipCurrentIrpStackLocation(Irp)
#define IoCompleteRequest
NTSTATUS NTAPI IoWMIRegistrationControl(IN PDEVICE_OBJECT DeviceObject, IN ULONG Action)
#define STATUS_DELETE_PENDING
#define STATUS_WMI_GUID_NOT_FOUND
#define STATUS_WMI_READ_ONLY
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
#define STATUS_BUFFER_TOO_SMALL
#define STATUS_INFO_LENGTH_MISMATCH
_In_ PDEVICE_OBJECT DeviceObject
_Must_inspect_result_ _In_ WDFDEVICE _In_ PCUNICODE_STRING MofResourceName
_In_ UCHAR _In_ UCHAR MinorFunction
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING RegistryPath
_In_ WDFMEMORY _Out_opt_ size_t * BufferSize
WDF_EXTERN_C_START typedef _Must_inspect_result_ _In_ WDFDRIVER _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ PDEVICE_OBJECT _In_opt_ PDEVICE_OBJECT _In_opt_ PDEVICE_OBJECT Pdo
NTSTATUS NTAPI WmiSystemControl(IN PWMILIB_CONTEXT WmiLibInfo, IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, OUT PSYSCTL_IRP_DISPOSITION IrpDisposition)
NTSTATUS NTAPI WmiCompleteRequest(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN NTSTATUS Status, IN ULONG BufferUsed, IN CCHAR PriorityBoost)
enum _SYSCTL_IRP_DISPOSITION SYSCTL_IRP_DISPOSITION
#define WMIREG_FLAG_INSTANCE_PDO
#define IRP_MN_EXECUTE_METHOD
#define IRP_MN_DISABLE_COLLECTION
#define IRP_MN_CHANGE_SINGLE_ITEM
#define WMIREG_ACTION_REGISTER
#define IRP_MN_QUERY_ALL_DATA
#define WMIREG_ACTION_DEREGISTER
#define IRP_MN_DISABLE_EVENTS
#define IRP_MN_ENABLE_EVENTS
#define IRP_MN_ENABLE_COLLECTION
#define IRP_MN_CHANGE_SINGLE_INSTANCE
#define IRP_MN_QUERY_SINGLE_INSTANCE