diff options
Diffstat (limited to 'network/trans/WFPSampler/lib/HelperFunctions_ThreadsAndEvents.h')
| -rw-r--r-- | network/trans/WFPSampler/lib/HelperFunctions_ThreadsAndEvents.h | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/network/trans/WFPSampler/lib/HelperFunctions_ThreadsAndEvents.h b/network/trans/WFPSampler/lib/HelperFunctions_ThreadsAndEvents.h new file mode 100644 index 00000000..cca27328 --- /dev/null +++ b/network/trans/WFPSampler/lib/HelperFunctions_ThreadsAndEvents.h @@ -0,0 +1,63 @@ +//////////////////////////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2012 Microsoft Corporation. All Rights Reserved. +// +// Module Name: +// HelperFunctions_ThreadsAndEvents.cpp +// +// Abstract: +// This module contains prototypes for functions which simplify threads and eventing. +// +// Exported Functions: +// +// Internal Functions: +// +// Author: +// Dusty Harper (DHarper) +// +// Revision History: +// +// [ Month ][Day] [Year] - [Revision]-[ Comments ] +// May 01, 2010 - 1.0 - Creation +// +//////////////////////////////////////////////////////////////////////////////////////////////////// + +#ifndef HELPERFUNCTIONS_THREADS_AND_EVENTS_H +#define HELPERFUNCTIONS_THREADS_AND_EVENTS_H + +typedef struct THREAD_DATA_ +{ + LPTHREAD_START_ROUTINE threadStartRoutine; + UINT32 threadId; + HANDLE thread; + HANDLE threadStartEvent; + HANDLE threadStopEvent; + HANDLE threadContinueEvent; +}THREAD_DATA, *PTHREAD_DATA; + +VOID HlprEventReset(_In_opt_ HANDLE event); + +VOID HlprEventSet(_In_opt_ HANDLE event); + +_Success_(return == NO_ERROR) +UINT32 HlprThreadStart(_Inout_ THREAD_DATA* pThreadData, + _In_opt_ VOID* pData = 0); + +_Success_(return == NO_ERROR) +UINT32 HlprThreadStop(_Inout_ THREAD_DATA* pThreadData); +_At_(*ppThreadData, _Pre_ _Notnull_) +_When_(return != NO_ERROR, _At_(*ppThreadData, _Post_ _Notnull_)) +_When_(return == NO_ERROR, _At_(*ppThreadData, _Post_ _Null_)) +_Success_(return == NO_ERROR && *ppThreadData == 0) +UINT32 HlprThreadStop(_Inout_ THREAD_DATA** ppThreadData); + +VOID HlprThreadCleanup(_Inout_opt_ THREAD_DATA* pThreadData); + +_Success_(return == NO_ERROR) +UINT32 HlprThreadWaitForCompletion(_Inout_opt_ THREAD_DATA* pThreadData); + +_Success_(return == NO_ERROR) +UINT32 HlprThreadWaitForEvent(_In_ HANDLE eventHandle, + _In_ THREAD_DATA* pThreadData); + +#endif /// HELPERFUNCTIONS_THREADS_AND_EVENTS_H
\ No newline at end of file |
