Lines Matching defs:pWorker

61 HRESULT VBoxExtWorkerCreate(PVBOXEXT_WORKER pWorker);
62 HRESULT VBoxExtWorkerDestroy(PVBOXEXT_WORKER pWorker);
63 HRESULT VBoxExtWorkerSubmitProc(PVBOXEXT_WORKER pWorker, PFNVBOXEXTWORKERCB pfnCb, void *pvCb);
85 PVBOXEXT_WORKER pWorker = (PVBOXEXT_WORKER)pvUser;
93 SetEvent(pWorker->hEvent);
116 SetEvent(pWorker->hEvent);
133 HRESULT VBoxExtWorkerCreate(PVBOXEXT_WORKER pWorker)
135 if(!GetModuleHandleEx(0, VBOXEXT_WINE_MODULE_NAME, &pWorker->hSelf))
142 InitializeCriticalSection(&pWorker->CritSect);
143 pWorker->hEvent = CreateEvent(NULL, /* LPSECURITY_ATTRIBUTES lpEventAttributes */
148 if (pWorker->hEvent)
150 pWorker->hThread = CreateThread(
154 pWorker,
156 &pWorker->idThread);
157 if (pWorker->hThread)
159 DWORD dwResult = WaitForSingleObject(pWorker->hEvent, INFINITE);
170 DeleteCriticalSection(&pWorker->CritSect);
178 FreeLibrary(pWorker->hSelf);
183 HRESULT VBoxExtWorkerDestroy(PVBOXEXT_WORKER pWorker)
185 BOOL bResult = PostThreadMessage(pWorker->idThread, WM_VBOXEXT_INIT_QUIT, 0, 0);
194 dwErr = WaitForSingleObject(pWorker->hThread, INFINITE);
201 CloseHandle(pWorker->hEvent);
202 DeleteCriticalSection(&pWorker->CritSect);
204 FreeLibrary(pWorker->hSelf);
206 CloseHandle(pWorker->hThread);
211 static HRESULT vboxExtWorkerSubmit(VBOXEXT_WORKER *pWorker, UINT Msg, LPARAM lParam, BOOL fSync)
215 /* need to serialize since vboxExtWorkerThread is using one pWorker->hEvent
217 EnterCriticalSection(&pWorker->CritSect);
218 bResult = PostThreadMessage(pWorker->idThread, Msg, 0, lParam);
223 DWORD dwErr = WaitForSingleObject(pWorker->hEvent, INFINITE);
242 LeaveCriticalSection(&pWorker->CritSect);
246 HRESULT VBoxExtWorkerSubmitProcSync(PVBOXEXT_WORKER pWorker, PFNVBOXEXTWORKERCB pfnCb, void *pvCb)
251 return vboxExtWorkerSubmit(pWorker, WM_VBOXEXT_CALLPROC, (LPARAM)&Ctx, TRUE);
261 HRESULT VBoxExtWorkerSubmitProcAsync(PVBOXEXT_WORKER pWorker, PFNVBOXEXTWORKERCB pfnCb, void *pvCb)
274 hr = vboxExtWorkerSubmit(pWorker, WM_VBOXEXT_CALLPROC, (LPARAM)pCallInfo, FALSE);