84#include "MxWorkItem.h"
155 return NTSTATUS_FROM_WIN32(
err);
239 if (
Item->DefaultThreadpoolEnv) {
240 WaitForThreadpoolWaitCallbacks(
Item->WaitBlock,
248 CloseThreadpoolWait(
Item->WaitBlock);
__inline MdWorkItem GetWorkItem()
__inline VOID Enqueue(__in PMX_WORKITEM_ROUTINE Callback, __in PVOID Context)
static __inline VOID _Free(__in MdWorkItem Item)
_Must_inspect_result_ __inline NTSTATUS Allocate(__in MdDeviceObject DeviceObject, __in_opt PVOID ThreadPoolEnv=NULL)
static VOID CALLBACK _WorkerThunk(_Inout_ PTP_CALLBACK_INSTANCE Instance, _Inout_opt_ PVOID Parameter, _Inout_ PTP_WAIT Wait, _In_ TP_WAIT_RESULT WaitResult)
#define HeapFree(x, y, z)
IO_WORKITEM_ROUTINE * PMX_WORKITEM_ROUTINE
IO_WORKITEM_ROUTINE MX_WORKITEM_ROUTINE
VOID MX_WORKITEM_ROUTINE(__in MdDeviceObject DeviceObject, __in_opt PVOID Context)
MX_WORKITEM_ROUTINE * PMX_WORKITEM_ROUTINE
#define _Must_inspect_result_
__inline ~MxAutoWorkItem()
MdDeviceObject DeviceObject
BOOLEAN DefaultThreadpoolEnv
PMX_WORKITEM_ROUTINE Callback
PDEVICE_OBJECT DeviceObject
BOOL WINAPI DECLSPEC_HOTPATCH SetEvent(IN HANDLE hEvent)
#define STATUS_INSUFFICIENT_RESOURCES
_In_ WDFCOLLECTION _In_ WDFOBJECT Item
_In_ PDEVICE_OBJECT DeviceObject
_In_ WDFINTERRUPT _In_ PFN_WDF_INTERRUPT_SYNCHRONIZE Callback
DWORD WINAPI GetLastError(void)