请高手帮我看看我这些函数是不是有问题
创建线程:CIOS_task_t* CIOS_thread_create(void (*entry_point)(void*),void *arg,int stack_size,int prio,char*name)
{
     Thread  file;
     CIOS_task_t  TID;
     file = CreateThread(NULL,stack_size,(LPTHREAD_START_ROUTINE)entry_point,NULL,0,&TID);
     if( file == INVALID_HANDLE_VALUE )
     {
            printf("failed to create thread\n");
            return 0;
     }  
     SetThreadPriority(file,prio);  
     return TID;
}
使线程等待一段时间void CIOS_thread_wakeafter(unsigned int ms)
{
  int error_code;
      Thread file;
      Sleep(ms);   // sleep time in milliseconds
}
创建一个信号量CIOS_semaphore_t CIOS_semaphore_create(unsigned int initial_value)
{
       semaphore_t semaphore;
       char *lpName = "semaphore";      semaphore =  CreateSemaphore(NULL,initial_value, 100,lpName);
       这里是不是要openSemaphore?
      return semaphore;
}结束信号量void CIOS_semaphore_delete(CIOS_semaphore_t semaphoreID)
{
       CloseHandle(semaphoreID);
}
释放信号量
 
void CIOS_semaphore_send(CIOS_semaphore_t semaphoreID)
{
      ReleaseSemaphore(  semaphoreID,  1, NULL);
}等待信号量
  
int CIOS_semaphore_wait(CIOS_semaphore_t semaphoreID)
{
      int error_code;
      error_code = MsgWaitForMultipleObjects(1,&semaphoreID,   FALSE,   INFINITE,  QS_ALLEVENTS   );   
      if(error_code == WAIT_TIMEOUT)
               return 0;
      else 
                return 1;
}
等待信号量(有时间控制)
  
int CIOS_semaphore_Twait(CIOS_semaphore_t semaphoreID, unsigned int ms)
{
      int error_code;
      error_code = MsgWaitForMultipleObjects(1,&semaphoreID,   FALSE,   ms,   QS_ALLEVENTS   );   
      if(error_code == WAIT_TIMEOUT)
               return 0;
      else 
                return 1;
}
我一共有6个进程,进程与进程之间是用缓冲进行通信,我现在用一个进程往一个进程发数据,为什么有的时候收到,有的时候没收到,是不是我写的东西有问题?