Lines Matching refs:pSession

98     Assert(pContext->pSession);
99 if (!pContext->pSession)
173 static void vboxVideoCmCmdPostByHdr(PVBOXVIDEOCM_SESSION pSession, PVBOXVIDEOCM_CMD_DR pHdr, uint32_t cbSize)
186 KeAcquireSpinLock(&pSession->SynchLock, &OldIrql);
188 InsertHeadList(&pSession->CommandsList, &pHdr->QueueList);
189 if (pSession->bEventNeeded)
191 pSession->bEventNeeded = false;
195 KeReleaseSpinLock(&pSession->SynchLock, OldIrql);
198 KeSetEvent(pSession->pUmEvent, 0, FALSE);
220 vboxVideoCmCmdPostByHdr(pHdr->pContext->pSession, pHdr, cbSize);
225 PVBOXVIDEOCM_SESSION pSession = pContext->pSession;
230 KeAcquireSpinLock(&pSession->SynchLock, &OldIrql);
232 pCurEntry = pSession->CommandsList.Blink;
235 if (pCurEntry != &pSession->CommandsList)
265 KeReleaseSpinLock(&pSession->SynchLock, OldIrql);
273 pContext->pSession = NULL;
277 static void vboxVideoCmSessionCtxAddLocked(PVBOXVIDEOCM_SESSION pSession, PVBOXVIDEOCM_CTX pContext)
279 InsertHeadList(&pSession->ContextList, &pContext->SessionEntry);
280 pContext->pSession = pSession;
283 void vboxVideoCmSessionCtxAdd(PVBOXVIDEOCM_SESSION pSession, PVBOXVIDEOCM_CTX pContext)
287 KeAcquireSpinLock(&pSession->SynchLock, &OldIrql);
289 vboxVideoCmSessionCtxAddLocked(pSession, pContext);
291 KeReleaseSpinLock(&pSession->SynchLock, OldIrql);
294 void vboxVideoCmSessionSignalEvent(PVBOXVIDEOCM_SESSION pSession)
297 if (pSession->pUmEvent)
298 KeSetEvent(pSession->pUmEvent, 0, FALSE);
301 static void vboxVideoCmSessionDestroyLocked(PVBOXVIDEOCM_SESSION pSession)
305 KeSetEvent(pSession->pUmEvent, 0, FALSE);
306 ObDereferenceObject(pSession->pUmEvent);
307 Assert(IsListEmpty(&pSession->ContextList));
308 Assert(IsListEmpty(&pSession->CommandsList));
309 Assert(IsListEmpty(&pSession->PpCommandsList));
310 RemoveEntryList(&pSession->QueueEntry);
311 vboxWddmMemFree(pSession);
352 bool vboxVideoCmSessionCtxRemoveLocked(PVBOXVIDEOCM_SESSION pSession, PVBOXVIDEOCM_CTX pContext)
362 KeAcquireSpinLock(&pSession->SynchLock, &OldIrql);
364 pContext->pSession = NULL;
366 bDestroy = !!(IsListEmpty(&pSession->ContextList));
370 vboxVideoLeDetach(&pSession->CommandsList, &RemainedList);
371 vboxVideoLeDetach(&pSession->PpCommandsList, &RemainedPpList);
375 vboxVideoCmSessionCtxDetachCmdsLocked(&pSession->CommandsList, pContext, &RemainedList);
376 vboxVideoCmSessionCtxDetachCmdsLocked(&pSession->PpCommandsList, pContext, &RemainedPpList);
379 KeReleaseSpinLock(&pSession->SynchLock, OldIrql);
392 vboxVideoCmSessionDestroyLocked(pSession);
402 PVBOXVIDEOCM_SESSION pSession = (PVBOXVIDEOCM_SESSION)vboxWddmMemAllocZero(sizeof (VBOXVIDEOCM_SESSION));
403 Assert(pSession);
404 if (pSession)
406 InitializeListHead(&pSession->ContextList);
407 InitializeListHead(&pSession->CommandsList);
408 InitializeListHead(&pSession->PpCommandsList);
409 pSession->pUmEvent = pUmEvent;
411 KeInitializeSpinLock(&pSession->SynchLock);
412 pSession->bEventNeeded = true;
413 vboxVideoCmSessionCtxAddLocked(pSession, pContext);
414 InsertHeadList(&pMgr->SessionList, &pSession->QueueEntry);
415 *ppSession = pSession;
417 // vboxWddmMemFree(pSession);
442 PVBOXVIDEOCM_SESSION pSession = NULL;
445 pSession = VBOXCMENTRY_2_SESSION(pEntry);
446 if (pSession->pUmEvent == pUmEvent)
457 Status = vboxVideoCmSessionCreateLocked(pMgr, &pSession, pUmEvent, pContext);
462 /* Status = */vboxVideoCmSessionCtxAdd(pSession, pContext);
480 PVBOXVIDEOCM_SESSION pSession = pContext->pSession;
481 if (!pSession)
487 vboxVideoCmSessionCtxRemoveLocked(pSession, pContext);
510 PVBOXVIDEOCM_SESSION pSession = NULL;
517 pSession = VBOXCMENTRY_2_SESSION(pEntry);
518 vboxVideoCmSessionSignalEvent(pSession);
528 PVBOXVIDEOCM_SESSION pSession = pContext->pSession;
542 KeAcquireSpinLock(&pSession->SynchLock, &OldIrql);
543 InsertTailList(&pSession->PpCommandsList, &pHdr->QueueList);
544 KeReleaseSpinLock(&pSession->SynchLock, OldIrql);
562 PVBOXVIDEOCM_SESSION pSession = pContext->pSession;
579 KeAcquireSpinLock(&pSession->SynchLock, &OldIrql);
581 vboxVideoCmSessionCtxDetachCmdsLocked(&pSession->PpCommandsList, pContext, &DetachedPpList);
587 if (!IsListEmpty(&pSession->CommandsList))
590 pHdr = VBOXCMENTRY_2_CMD(pSession->CommandsList.Blink);
610 pSession->bEventNeeded = true;
617 if (pCurEntry != &pSession->CommandsList)
634 KeReleaseSpinLock(&pSession->SynchLock, OldIrql);
677 PVBOXVIDEOCM_SESSION pSession = NULL;
680 pSession = VBOXCMENTRY_2_SESSION(pEntry);
682 KeAcquireSpinLock(&pSession->SynchLock, &OldIrql);
684 if (pSession->bEventNeeded)
687 KeReleaseSpinLock(&pSession->SynchLock, OldIrql);
690 KeReleaseSpinLock(&pSession->SynchLock, OldIrql);