Go to the source code of this file.
◆ ChewCreate()
Creates and queues a work item.
Definition at line 65 of file workqueue.c.
81 Item->Worker = Worker;
82 Item->WorkerContext = WorkerContext;
PLIST_ENTRY NTAPI ExInterlockedInsertTailList(IN OUT PLIST_ENTRY ListHead, IN OUT PLIST_ENTRY ListEntry, IN OUT PKSPIN_LOCK Lock)
PIO_WORKITEM NTAPI IoAllocateWorkItem(IN PDEVICE_OBJECT DeviceObject)
PDEVICE_OBJECT WorkQueueDevice
#define ExAllocatePoolWithTag(hernya, size, tag)
VOID NTAPI ChewWorkItem(PDEVICE_OBJECT DeviceObject, PVOID ChewItem)
VOID NTAPI IoQueueWorkItem(IN PIO_WORKITEM IoWorkItem, IN PIO_WORKITEM_ROUTINE WorkerRoutine, IN WORK_QUEUE_TYPE QueueType, IN PVOID Context)
_In_ WDFCOLLECTION _In_ WDFOBJECT Item
VOID NTAPI KeClearEvent(IN PKEVENT Event)
Referenced by CompleteBucket(), LanSubmitReceiveWork(), LoopTransmit(), and ProtocolStatus().
◆ ChewInit()
Initialize CHEW, given a device object (since IoAllocateWorkItem relies on it).
Definition at line 32 of file workqueue.c.
_In_ PDEVICE_OBJECT DeviceObject
FORCEINLINE VOID KeInitializeSpinLock(_Out_ PKSPIN_LOCK SpinLock)
PDEVICE_OBJECT WorkQueueDevice
#define KeInitializeEvent(pEvt, foo, foo2)
#define InitializeListHead(ListHead)
Referenced by DriverEntry().
◆ ChewShutdown()
Shutdown CHEW, waits for remaining work items.
Definition at line 40 of file workqueue.c.
NTSTATUS NTAPI KeWaitForSingleObject(IN PVOID Object, IN KWAIT_REASON WaitReason, IN KPROCESSOR_MODE WaitMode, IN BOOLEAN Alertable, IN PLARGE_INTEGER Timeout OPTIONAL)
Referenced by TiUnload().