views:

48

answers:

1

Have a 1MB pipe:

if (0 == CreatePipe(&hRead,&hWrite,0,1024*1024))
{
printf("CreatePipe failed\n");
return success;
}   

Sending 4000 bytes at a time (bytesReq = 4000)

while ((bytesReq = (FileSize - offset)) != 0)
{


//Send data to Decoder.cpp thread, converting to human readable CSV
        if ( (0 == WriteFile(hWrite,
                               readBuff,
                               bytesReq,
                               &bytesWritten,
                               0) ) || 
                               (bytesWritten != bytesReq) )
        {
             printf("WriteFile failed error = %d\n",GetLastError());
             break;
        } 

// Would like to update a status box with the amount of data in the pipe.
I would like to know if and how often it is getting full....



}  

4 bytes at a time being read in an other thread, on other end of pipe.

+1  A: 

Before reading the 4 bytes you can read the available bytes by using PeekNamedPipe

schoetbi
@schoetbi: Not sure this tells me the current capacity of the pipe: "if the buffer size is zero, the buffer is allocated as needed"
Tommy
Sorry I got the wrong function. I ll correct that.
schoetbi