//Test program demonstrating the issue: #include #include int main( int argc, char *argv[] ) { char Buffer[10]; DWORD BytesRead = 1; BOOL bRet = ReadFile( INVALID_HANDLE_VALUE, Buffer, sizeof(Buffer), &BytesRead, NULL ); if ( bRet ) printf( "Error: ReadFile returns TRUE \n" ); if ( BytesRead != 0 ) printf( "Error: BytesRead != 0 (0x%lx) \n", BytesRead ); else printf( "ReadFile : Test Succeeded\n" ); //--- DWORD BytesWritten = 1; bRet = WriteFile( INVALID_HANDLE_VALUE, Buffer, sizeof(Buffer), &BytesWritten, NULL ); if ( bRet ) printf( "Error: WriteFile returns TRUE \n" ); if ( BytesWritten != 0 ) printf( "Error: BytesWritten != 0 (0x%lx) \n", BytesWritten ); else printf( "WriteFile: Test Succeeded\n" ); return 0; } //--- //Output on reactos-bootcd-0.4.16-dev-2602-gcbfc755-x86-msvc-win-dbg is: //Error: BytesRead != 0 (0x22fed8) //Error: BytesWritten != 0 (0x22fef4)