Go to the source code of this file.
◆ ChewCreate()
Creates and queues a work item.
Definition at line 61 of file workqueue.c.
62{
67
69 {
72 {
75 }
76
77 Item->Worker = Worker;
78 Item->WorkerContext = WorkerContext;
82
84 }
85 else
86 {
88 }
89}
#define ExAllocatePoolWithTag(hernya, size, tag)
VOID NTAPI KeClearEvent(IN PKEVENT Event)
PLIST_ENTRY NTAPI ExInterlockedInsertTailList(IN OUT PLIST_ENTRY ListHead, IN OUT PLIST_ENTRY ListEntry, IN OUT PKSPIN_LOCK Lock)
VOID NTAPI IoQueueWorkItem(IN PIO_WORKITEM IoWorkItem, IN PIO_WORKITEM_ROUTINE WorkerRoutine, IN WORK_QUEUE_TYPE QueueType, IN PVOID Context)
PIO_WORKITEM NTAPI IoAllocateWorkItem(IN PDEVICE_OBJECT DeviceObject)
_In_ WDFCOLLECTION _In_ WDFOBJECT Item
PDEVICE_OBJECT WorkQueueDevice
VOID NTAPI ChewWorkItem(PDEVICE_OBJECT DeviceObject, PVOID ChewItem)
Referenced by CompleteBucket(), LanSubmitReceiveWork(), LoopTransmit(), and ProtocolStatus().
◆ ChewInit()
Initialize CHEW, given a device object (since IoAllocateWorkItem relies on it).
Definition at line 28 of file workqueue.c.
29{
34}
#define KeInitializeEvent(pEvt, foo, foo2)
#define InitializeListHead(ListHead)
#define KeInitializeSpinLock(sl)
_In_ PDEVICE_OBJECT DeviceObject
Referenced by DriverEntry().
◆ ChewShutdown()
Shutdown CHEW, waits for remaining work items.
Definition at line 36 of file workqueue.c.
37{
39}
#define KeWaitForSingleObject(pEvt, foo, a, b, c)
Referenced by TiUnload().