94 Irp->IoStatus.Information = 0;
136 *CapuredObjectAttributes = *GuidObjectAttributes;
142 *CapturedObjectName = *CapuredObjectAttributes->ObjectName;
145 if (CapturedObjectName->Length != 45 *
sizeof(
WCHAR))
152 CapturedObjectName->Length,
155 CapturedObjectName->Buffer,
156 CapturedObjectName->Length);
160 GuidObjectAttributes->ObjectName = CapturedObjectName;
184 WCHAR LocalObjectNameBuffer[45 + 1];
208 &LocalObjectAttributes,
210 LocalObjectNameBuffer,
214 DPRINT1(
"WmipCaptureGuidObjectAttributes failed: 0x%lx\n",
Status);
234 Result->Handle = GuidObjectHandle;
268 ListEntry = ListEntry->
Flink)
296 Irp->IoStatus.Information = 0;
392 WCHAR LocalObjectNameBuffer[45 + 1];
407 &LocalObjectAttributes,
409 LocalObjectNameBuffer,
413 DPRINT1(
"ProbeAndCaptureGuidObjectAttributes failed: 0x%lx\n",
Status);
429 Result->Handle = GuidObjectHandle;
455 ULONG InputLength, OutputLength;
464 Buffer =
Irp->AssociatedIrp.SystemBuffer;
499 DPRINT1(
"IOCTL 0x228168 is unimplemented, ignoring\n");
564WmipFastIoDeviceControl(
static PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(PIRP Irp)
#define FILE_DEVICE_SECURE_OPEN
_In_z_ PCCHAR ObjectNameBuffer
static VOID Mark(PGUI_CONSOLE_DATA GuiData)
#define NT_SUCCESS(StatCode)
#define UNIMPLEMENTED_DBGBREAK(...)
#define _IRQL_requires_same_
#define RemoveEntryList(Entry)
#define InitializeListHead(ListHead)
#define ExGetPreviousMode
VOID NTAPI ProbeForRead(IN CONST VOID *Address, IN SIZE_T Length, IN ULONG Alignment)
NTSTATUS NTAPI WmipOpenGuidObjectByName(_In_ POBJECT_ATTRIBUTES ObjectAttributes, _In_ ACCESS_MASK DesiredAccess, _In_ KPROCESSOR_MODE AccessMode, _Out_ PHANDLE OutGuidObjectHandle, _Outptr_ PVOID *OutGuidObject)
#define EXCEPTION_EXECUTE_HANDLER
void __cdecl __debugbreak(void)
IoSetCancelRoutine(Irp, CancelRoutine)
#define _Function_class_(x)
__in UCHAR __in POWER_STATE __in_opt PVOID __in PIO_STATUS_BLOCK IoStatus
DRIVER_DISPATCH(nfs41_FsdDispatch)
#define SPECIFIC_RIGHTS_ALL
#define DBG_UNREFERENCED_LOCAL_VARIABLE(L)
_In_ ULONG _In_ ULONG _In_ ULONG Length
NTSTATUS NTAPI IoCreateDevice(IN PDRIVER_OBJECT DriverObject, IN ULONG DeviceExtensionSize, IN PUNICODE_STRING DeviceName, IN DEVICE_TYPE DeviceType, IN ULONG DeviceCharacteristics, IN BOOLEAN Exclusive, OUT PDEVICE_OBJECT *DeviceObject)
NTSTATUS NTAPI IoRegisterShutdownNotification(PDEVICE_OBJECT DeviceObject)
VOID NTAPI IoDeleteDevice(IN PDEVICE_OBJECT DeviceObject)
#define IoCompleteRequest
NTSTATUS NTAPI IoCreateSymbolicLink(IN PUNICODE_STRING SymbolicLinkName, IN PUNICODE_STRING DeviceName)
NTSTATUS NTAPI IoDeleteSymbolicLink(IN PUNICODE_STRING SymbolicLinkName)
VOID NTAPI IoReleaseCancelSpinLock(IN KIRQL Irql)
NTSTATUS NTAPI IoWMIRegistrationControl(IN PDEVICE_OBJECT DeviceObject, IN ULONG Action)
#define STATUS_NOT_IMPLEMENTED
#define FILE_DEVICE_UNKNOWN
#define _SEH2_GetExceptionCode()
#define _SEH2_EXCEPT(...)
#define _SEH2_YIELD(__stmt)
#define IRP_MJ_DEVICE_CONTROL
ULONG SizeOfFastIoDispatch
PFAST_IO_DEVICE_CONTROL FastIoDeviceControl
struct _IO_STACK_LOCATION::@1575::@1576 DeviceIoControl
union _IO_STACK_LOCATION::@1575 Parameters
struct _LIST_ENTRY * Flink
LIST_ENTRY GuidObjectListHead
POBJECT_ATTRIBUTES ObjectAttributes
WMI_GUID_OBJECT_ENTRY GuidObjects[0]
ULONG NumberOfGuidObjects
POBJECT_ATTRIBUTES ObjectAttributes
ACCESS_MASK DesiredAccess
#define RTL_CONSTANT_STRING(s)
#define FIELD_OFFSET(t, f)
#define RtlCopyMemory(Destination, Source, Length)
#define RtlZeroMemory(Destination, Length)
#define CONTAINING_RECORD(address, type, field)
#define STATUS_INVALID_DEVICE_REQUEST
#define STATUS_INVALID_PARAMETER
#define STATUS_UNSUCCESSFUL
_In_ PWDFDEVICE_INIT _In_ PFN_WDF_DEVICE_SHUTDOWN_NOTIFICATION Notification
_In_ PDEVICE_OBJECT DeviceObject
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
_In_ WDFDPC _In_ BOOLEAN Wait
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING RegistryPath
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
_In_ WDFREQUEST _In_ size_t _In_ size_t _In_ ULONG IoControlCode
_In_ WDFREQUEST _In_ size_t OutputBufferLength
_In_ WDFREQUEST _In_ size_t _In_ size_t InputBufferLength
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR OutputBuffer
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR InputBuffer
NTSTATUS NTAPI WmipDockUndockEventCallback(_In_ PVOID NotificationStructure, _Inout_opt_ PVOID Context)
struct _WMIP_RESULT2 WMIP_RESULT2
DRIVER_DISPATCH WmipIoControl
static NTSTATUS WmiSetMark(PWMI_SET_MARK Buffer, ULONG Length)
DRIVER_DISPATCH WmipSystemControl
DRIVER_DISPATCH WmipOpenCloseCleanup
static NTSTATUS WmipCaptureGuidObjectAttributes(_In_ POBJECT_ATTRIBUTES GuidObjectAttributes, _Out_ POBJECT_ATTRIBUTES CapuredObjectAttributes, _Out_ PUNICODE_STRING CapturedObjectName, _Out_ PWSTR ObjectNameBuffer, _In_ KPROCESSOR_MODE AccessMode)
static NTSTATUS WmiTraceEvent(PVOID InputBuffer, KPROCESSOR_MODE PreviousMode)
PDEVICE_OBJECT WmipServiceDeviceObject
FAST_IO_DISPATCH WmipFastIoDispatch
struct _WMI_NOTIFICATION * PWMI_NOTIFICATION
static NTSTATUS WmipRegisterGuids(_In_ PDEVICE_OBJECT DeviceObject, _In_ PVOID Buffer, _In_ ULONG InputLength, _Inout_ PULONG OutputLength)
static NTSTATUS WmipReceiveNotifications(_Inout_ PIRP Irp, _In_ PVOID Buffer, _In_ ULONG InputLength, _Inout_ PULONG OutputLength)
struct _WMIP_RESULT WMIP_RESULT
struct _WMIP_RESULT * PWMIP_RESULT
static VOID WmipInitializeIrpContext(PWMIP_IRP_CONTEXT IrpContext)
struct _WMI_NOTIFICATION WMI_NOTIFICATION
VOID NTAPI WmipClearIrpObjectList(_In_ PIRP Irp)
static NTSTATUS WmiTraceUserMessage(PVOID InputBuffer, ULONG InputBufferLength)
struct _WMI_UNREGISTER_GUID WMI_UNREGISTER_GUID
PDEVICE_OBJECT WmipAdminDeviceObject
struct _WMIP_RESULT2 * PWMIP_RESULT2
struct _WMI_SET_MARK * PWMI_SET_MARK
struct _WMI_OPEN_GUID_FOR_EVENTS * PWMI_OPEN_GUID_FOR_EVENTS
VOID NTAPI WmipNotificationIrpCancel(_In_ PDEVICE_OBJECT DeviceObject, _Inout_ PIRP Irp)
DRIVER_DISPATCH WmipShutdown
static NTSTATUS WmipUnregisterGuids(_In_ PVOID Buffer, _In_ ULONG InputLength, _Inout_ PULONG OutputLength)
struct _WMI_SET_MARK WMI_SET_MARK
struct _WMI_OPEN_GUID_FOR_EVENTS WMI_OPEN_GUID_FOR_EVENTS
struct _WMI_UNREGISTER_GUID * PWMI_UNREGISTER_GUID
static NTSTATUS WmipOpenGuidForEvents(PVOID Buffer, ULONG InputLength, PULONG OutputLength)
struct _WMI_GUID_OBJECT_ENTRY * PWMI_GUID_OBJECT_ENTRY
struct _WMIP_REGISTER_GUIDS * PWMIP_REGISTER_GUIDS
struct _WMIP_REGISTER_GUIDS WMIP_REGISTER_GUIDS
struct _WMI_GUID_OBJECT_ENTRY WMI_GUID_OBJECT_ENTRY
#define IOCTL_WMI_TRACE_EVENT
#define IOCTL_WMI_SET_MARK
#define IOCTL_WMI_REGISTER_GUIDS
#define IOCTL_WMI_TRACE_USER_MESSAGE
#define IOCTL_WMI_UNREGISTER_GUIDS
#define IOCTL_WMI_OPEN_GUID_FOR_EVENTS
#define IOCTL_WMI_RECEIVE_NOTIFICATIONS
struct _WMIP_IRP_CONTEXT * PWMIP_IRP_CONTEXT
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
_In_ PVOID NotificationStructure
#define WMIREG_ACTION_REGISTER
#define IRP_MJ_SYSTEM_CONTROL
_In_ PEPROCESS _In_ KPROCESSOR_MODE AccessMode
#define ObDereferenceObject
_In_ KPROCESSOR_MODE PreviousMode