1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| VOID CALLBACK lpc(
DWORD dwErrorCode,
DWORD dwNumberOfBytesTransfered,
LPOVERLAPPED lpOverlapped
)
{
delete lpOverlapped;
}
void WFO (HANDLE hf,char *buf,int size)
{
LPOVERLAPPED ovl=new OVERLAPPED;
ovl->hEvent=0;
//ovl->Internal=0xffffffff;
//ovl->InternalHigh=ovl->Internal;
ovl->Offset=256;
ovl->OffsetHigh=0;
ovl->Pointer=NULL;
ovl->hEvent=CreateEvent(
NULL,
true,
false,NULL);
SetLastError(0);
int r=WriteFileEx(hf,buf,size,ovl,lpc);
int err=GetLastError();
r=r;
}
char buffer[25600000];
int _tmain(int argc, _TCHAR* argv[])
{
HANDLE file = CreateFile("c:\\ess.bin", GENERIC_WRITE|GENERIC_WRITE,
FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, CREATE_ALWAYS,
FILE_FLAG_OVERLAPPED|FILE_FLAG_NO_BUFFERING, NULL);
for (int j=0;j<1;j++)
{
for (int i = 0 ;i<25600000;i++)buffer[i]=j+1;
WFO(file,buffer,25600000);
}
Sleep(2000);
CloseHandle(file);
return 0;
} |
Partager