Lines Matching defs:pQueue
831 static VOID vboxNetFltWinJobWorkerThreadProc(PVBOXNETFLT_JOB_QUEUE pQueue)
837 (PVOID)&pQueue->KillEvent,
838 (PVOID)&pQueue->NotifyEvent,
854 PLIST_ENTRY pJobEntry = ExInterlockedRemoveHeadList(&pQueue->Jobs, &pQueue->Lock);
882 static VOID vboxNetFltWinJobEnqueueJob(PVBOXNETFLT_JOB_QUEUE pQueue, PVBOXNETFLT_JOB pJob, bool bEnqueueHead)
886 ExInterlockedInsertHeadList(&pQueue->Jobs, &pJob->ListEntry, &pQueue->Lock);
890 ExInterlockedInsertTailList(&pQueue->Jobs, &pJob->ListEntry, &pQueue->Lock);
893 KeSetEvent(&pQueue->NotifyEvent, 1, FALSE);
910 static VOID vboxNetFltWinJobSynchExec(PVBOXNETFLT_JOB_QUEUE pQueue, PFNVBOXNETFLT_JOB_ROUTINE pfnRoutine, PVOID pContext)
918 vboxNetFltWinJobEnqueueJob(pQueue, &Job, false);
964 static NTSTATUS vboxNetFltWinJobInitQueue(PVBOXNETFLT_JOB_QUEUE pQueue)
970 NdisZeroMemory(pQueue, sizeof(VBOXNETFLT_JOB_QUEUE));
972 KeInitializeEvent(&pQueue->KillEvent, NotificationEvent, FALSE);
974 KeInitializeEvent(&pQueue->NotifyEvent, SynchronizationEvent, FALSE);
976 InitializeListHead(&pQueue->Jobs);
978 fStatus = vboxNetFltWinQuCreateSystemThread(&pQueue->pThread, (PKSTART_ROUTINE)vboxNetFltWinJobWorkerThreadProc, pQueue);
981 pQueue->pThread = NULL;
985 Assert(pQueue->pThread);
995 static void vboxNetFltWinJobFiniQueue(PVBOXNETFLT_JOB_QUEUE pQueue)
999 if (pQueue->pThread)
1001 KeSetEvent(&pQueue->KillEvent, 0, FALSE);
1003 KeWaitForSingleObject(pQueue->pThread, Executive,