Lines Matching refs:pSession

46 HRESULT vboxDispCmSessionTerm(PVBOXDISPCM_SESSION pSession)
49 Assert(RTListIsEmpty(&pSession->CtxList));
51 BOOL bRc = CloseHandle(pSession->hEvent);
55 DeleteCriticalSection(&pSession->CritSect);
63 HRESULT vboxDispCmSessionInit(PVBOXDISPCM_SESSION pSession)
73 pSession->hEvent = hEvent;
74 InitializeCriticalSection(&pSession->CritSect);
75 RTListInit(&pSession->CtxList);
76 pSession->bQueryMp = false;
84 void vboxDispCmSessionCtxAdd(PVBOXDISPCM_SESSION pSession, PVBOXWDDMDISP_CONTEXT pContext)
86 EnterCriticalSection(&pSession->CritSect);
87 RTListAppend(&pSession->CtxList, &pContext->ListNode);
88 LeaveCriticalSection(&pSession->CritSect);
91 void vboxDispCmSessionCtxRemoveLocked(PVBOXDISPCM_SESSION pSession, PVBOXWDDMDISP_CONTEXT pContext)
96 void vboxDispCmSessionCtxRemove(PVBOXDISPCM_SESSION pSession, PVBOXWDDMDISP_CONTEXT pContext)
98 EnterCriticalSection(&pSession->CritSect);
99 vboxDispCmSessionCtxRemoveLocked(pSession, pContext);
100 LeaveCriticalSection(&pSession->CritSect);
192 HRESULT vboxDispCmSessionCtxDestroy(PVBOXDISPCM_SESSION pSession, PVBOXWDDMDISP_DEVICE pDevice, PVBOXWDDMDISP_CONTEXT pContext)
194 EnterCriticalSection(&pSession->CritSect);
203 vboxDispCmSessionCtxRemoveLocked(pSession, pContext);
205 LeaveCriticalSection(&pSession->CritSect);
214 static HRESULT vboxDispCmSessionCmdQueryData(PVBOXDISPCM_SESSION pSession, PVBOXDISPIFESCAPE_GETVBOXVIDEOCMCMD pCmd, uint32_t cbCmd)
228 EnterCriticalSection(&pSession->CritSect);
230 RTListForEach(&pSession->CtxList, pCurCtx, VBOXWDDMDISP_CONTEXT, ListNode)
247 LeaveCriticalSection(&pSession->CritSect);
262 LeaveCriticalSection(&pSession->CritSect);
269 HRESULT vboxDispCmCmdSessionInterruptWait(PVBOXDISPCM_SESSION pSession)
271 SetEvent(pSession->hEvent);
275 HRESULT vboxDispCmSessionCmdGet(PVBOXDISPCM_SESSION pSession, PVBOXDISPIFESCAPE_GETVBOXVIDEOCMCMD pCmd, uint32_t cbCmd, DWORD dwMilliseconds)
284 if (pSession->bQueryMp)
286 HRESULT hr = vboxDispCmSessionCmdQueryData(pSession, pCmd, cbCmd);
293 pSession->bQueryMp = false;
296 DWORD dwResult = WaitForSingleObject(pSession->hEvent, dwMilliseconds);
301 pSession->bQueryMp = true;
306 Assert(!pSession->bQueryMp);
332 PVBOXDISPCM_SESSION pSession = &g_pVBoxCmMgr.Session;
334 EnterCriticalSection(&pSession->CritSect);
336 PVBOXWDDMDISP_CONTEXT pContext = RTListGetFirst(&pSession->CtxList, VBOXWDDMDISP_CONTEXT, ListNode);
344 LeaveCriticalSection(&pSession->CritSect);