Updated the Win32 MSVC demo files.
diff --git a/Demo/WIN32-MSVC/FreeRTOSConfig.h b/Demo/WIN32-MSVC/FreeRTOSConfig.h
index 3d657bf..a83b8ab 100644
--- a/Demo/WIN32-MSVC/FreeRTOSConfig.h
+++ b/Demo/WIN32-MSVC/FreeRTOSConfig.h
@@ -64,10 +64,11 @@
  * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE

  * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.

  *----------------------------------------------------------*/

+

 #define configUSE_PREEMPTION			1

 #define configUSE_IDLE_HOOK				1

 #define configUSE_TICK_HOOK				0

-#define configTICK_RATE_HZ				( ( portTickType ) 50 )

+#define configTICK_RATE_HZ				( 50 ) /* In this non-real time simulated environment the tick frequency has to be at least a multiple of the Win32 tick frequency, and therefore very slow. */

 #define configMINIMAL_STACK_SIZE		( ( unsigned portSHORT ) 50 ) /* In this simulated case, the stack only has to hold one small structure as the real stack is part of the win32 thread. */

 #define configTOTAL_HEAP_SIZE			( ( size_t ) 0 ) /* This parameter has no effect when heap_3.c is included in the project. */

 #define configMAX_TASK_NAME_LEN			( 12 )

@@ -105,4 +106,47 @@
 #define INCLUDE_xTaskGetSchedulerState		1

 

 

+/* When switching threads, Windows does not always seem to run the selected

+thread immediately.  This function can be called to check if the thread

+that is currently running is the thread that is responsible for executing

+the task selected by the real time scheduler.  If not then a yield is performed

+which will try and force the running thread to block on a semaphore, and hence

+allow the thread that should be running to take over.  The trace macros are a

+convenient way of lacing the code with these checking calls. */

+void vPortCheckCorrectThreadIsRunning( void );

+

+#define	traceBLOCKING_ON_QUEUE_RECEIVE(pxQueue)			vPortCheckCorrectThreadIsRunning();(void)pxQueue

+#define	traceBLOCKING_ON_QUEUE_SEND(pxQueue)			vPortCheckCorrectThreadIsRunning();(void)pxQueue

+#define	traceGIVE_MUTEX_RECURSIVE(pxMutex)				vPortCheckCorrectThreadIsRunning();(void)pxMutex

+#define	traceQUEUE_CREATE(pxNewQueue)					vPortCheckCorrectThreadIsRunning();(void)pxNewQueue

+#define	traceQUEUE_CREATE_FAILED()						vPortCheckCorrectThreadIsRunning()

+#define	traceCREATE_MUTEX(pxNewMutex)					vPortCheckCorrectThreadIsRunning();(void)pxNewMutex

+#define	traceCREATE_MUTEX_FAILED()						vPortCheckCorrectThreadIsRunning()

+#define	traceGIVE_MUTEX_RECURSIVE(pxMutex)				vPortCheckCorrectThreadIsRunning();(void)pxMutex

+#define	traceGIVE_MUTEX_RECURSIVE_FAILED(pxMutex)		vPortCheckCorrectThreadIsRunning();(void)pxMutex

+#define	traceTAKE_MUTEX_RECURSIVE(pxMutex)				vPortCheckCorrectThreadIsRunning();(void)pxMutex

+#define traceTAKE_MUTEX_RECURSIVE_FAILED(pxMutex)		vPortCheckCorrectThreadIsRunning();(void)pxMutex

+#define	traceCREATE_COUNTING_SEMAPHORE()				vPortCheckCorrectThreadIsRunning()

+#define	traceCREATE_COUNTING_SEMAPHORE_FAILED()			vPortCheckCorrectThreadIsRunning()

+#define	traceQUEUE_SEND(pxQueue)						vPortCheckCorrectThreadIsRunning();(void)pxQueue

+#define	traceQUEUE_SEND_FAILED(pxQueue)					vPortCheckCorrectThreadIsRunning();(void)pxQueue

+#define	traceQUEUE_RECEIVE(pxQueue)						vPortCheckCorrectThreadIsRunning();(void)pxQueue

+#define	traceQUEUE_RECEIVE_FAILED(pxQueue)				vPortCheckCorrectThreadIsRunning();(void)pxQueue

+#define	traceQUEUE_PEEK(pxQueue)						vPortCheckCorrectThreadIsRunning();(void)pxQueue

+#define	traceQUEUE_SEND_FROM_ISR(pxQueue)				vPortCheckCorrectThreadIsRunning();(void)pxQueue

+#define	traceQUEUE_SEND_FROM_ISR_FAILED(pxQueue)		vPortCheckCorrectThreadIsRunning();(void)pxQueue

+#define	traceQUEUE_RECEIVE_FROM_ISR(pxQueue)			vPortCheckCorrectThreadIsRunning();(void)pxQueue

+#define	traceQUEUE_RECEIVE_FROM_ISR_FAILED(pxQueue)		vPortCheckCorrectThreadIsRunning();(void)pxQueue

+#define	traceQUEUE_DELETE(pxQueue)						vPortCheckCorrectThreadIsRunning();(void)pxQueue

+#define	traceTASK_CREATE(pxTask)						vPortCheckCorrectThreadIsRunning();(void)pxTask

+#define	traceTASK_CREATE_FAILED(pxNewTCB)				vPortCheckCorrectThreadIsRunning();(void)pxNewTCB

+#define	traceTASK_DELETE(pxTask)						vPortCheckCorrectThreadIsRunning();(void)pxTask

+#define	traceTASK_DELAY_UNTIL()							vPortCheckCorrectThreadIsRunning()

+#define	traceTASK_DELAY()								vPortCheckCorrectThreadIsRunning()

+#define	traceTASK_PRIORITY_SET(pxTask,uxNewPriority)	vPortCheckCorrectThreadIsRunning();(void)pxTask;(void)uxNewPriority

+#define	traceTASK_SUSPEND(pxTask)						vPortCheckCorrectThreadIsRunning();(void)pxTask

+#define	traceTASK_RESUME(pxTask)						vPortCheckCorrectThreadIsRunning();(void)pxTask

+#define	traceTASK_RESUME_FROM_ISR(pxTask)				vPortCheckCorrectThreadIsRunning();(void)pxTask

+

+

 #endif /* FREERTOS_CONFIG_H */