mirror of
https://github.com/reactos/reactos.git
synced 2024-09-28 05:26:58 +00:00
correct some bugs in WriteFile function
svn path=/trunk/; revision=166
This commit is contained in:
parent
455be0fece
commit
dd705acbd0
|
@ -88,22 +88,31 @@ WINBOOL STDCALL WriteFile(HANDLE hFile,
|
|||
LPOVERLAPPED lpOverLapped)
|
||||
{
|
||||
|
||||
LARGE_INTEGER Offset;
|
||||
PLARGE_INTEGER Offset;
|
||||
LARGE_INTEGER ByteOffset;
|
||||
HANDLE hEvent = NULL;
|
||||
NTSTATUS errCode;
|
||||
|
||||
if (lpOverLapped != NULL )
|
||||
PIO_STATUS_BLOCK IoStatusBlock;
|
||||
IO_STATUS_BLOCK IIosb;
|
||||
if ( lpOverLapped != NULL )
|
||||
{
|
||||
SET_LARGE_INTEGER_LOW_PART(Offset, lpOverLapped->Offset);
|
||||
SET_LARGE_INTEGER_HIGH_PART(Offset, lpOverLapped->OffsetHigh);
|
||||
SET_LARGE_INTEGER_LOW_PART(ByteOffset, lpOverLapped->Offset);
|
||||
SET_LARGE_INTEGER_HIGH_PART(ByteOffset, lpOverLapped->OffsetHigh);
|
||||
Offset = &ByteOffset;
|
||||
lpOverLapped->Internal = STATUS_PENDING;
|
||||
hEvent= lpOverLapped->hEvent;
|
||||
hEvent = lpOverLapped->hEvent;
|
||||
IoStatusBlock = (PIO_STATUS_BLOCK)lpOverLapped;
|
||||
}
|
||||
else
|
||||
{
|
||||
IoStatusBlock = &IIosb;
|
||||
Offset = NULL;
|
||||
}
|
||||
errCode = NtWriteFile(hFile,hEvent,NULL,NULL,
|
||||
(PIO_STATUS_BLOCK)lpOverLapped,
|
||||
(PVOID)lpBuffer,
|
||||
nNumberOfBytesToWrite,
|
||||
&Offset,
|
||||
Offset,
|
||||
NULL);
|
||||
if (!NT_SUCCESS(errCode))
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue