typedef struct _CLIENT_IO_RETURN_DATA { DWORD ByteCount; } CLIENT_IO_RETURN_DATA, *PCLIENT_IO_RETURN_DATA; typedef struct _CLIENT_IO_I_AM_DONE { DWORD TotalTicks; DWORD TotalIterations; DWORD TotalBytesTransferred; } CLIENT_IO_I_AM_DONE, *PCLIENT_IO_I_AM_DONE; #define CLIENT_IO_MT_RETURN_DATA 1 #define CLIENT_IO_MT_I_AM_DONE 2 typedef struct _CLIENT_IO_BUFFER { DWORD MessageType; union { CLIENT_IO_RETURN_DATA ReturnData; CLIENT_IO_I_AM_DONE IAmDone; } u; } CLIENT_IO_BUFFER, *PCLIENT_IO_BUFFER; #define CLIENT_OUTBOUND_BUFFER_MAX 1024