mirror of
https://github.com/reactos/reactos.git
synced 2024-11-27 13:33:32 +08:00
48 lines
1.3 KiB
C
48 lines
1.3 KiB
C
/*
|
|
* COPYRIGHT: See COPYING in the top level directory
|
|
* PROJECT: ReactOS kernel
|
|
* FILE: lib/rossym/zwfile.c
|
|
* PURPOSE: File I/O using native functions
|
|
*
|
|
* PROGRAMMERS: Ge van Geldorp (gvg@reactos.com)
|
|
*/
|
|
|
|
#define NTOSAPI
|
|
#include <wdm.h>
|
|
#include <reactos/rossym.h>
|
|
#include "rossympriv.h"
|
|
|
|
BOOLEAN
|
|
RosSymZwReadFile(PVOID FileContext, PVOID Buffer, ULONG Size)
|
|
{
|
|
NTSTATUS Status;
|
|
IO_STATUS_BLOCK IoStatusBlock;
|
|
|
|
Status = ZwReadFile(*((HANDLE *) FileContext),
|
|
NULL, NULL, NULL,
|
|
&IoStatusBlock,
|
|
Buffer,
|
|
Size,
|
|
NULL, NULL);
|
|
|
|
return NT_SUCCESS(Status) && IoStatusBlock.Information == Size;
|
|
}
|
|
|
|
BOOLEAN
|
|
RosSymZwSeekFile(PVOID FileContext, ULONG_PTR Position)
|
|
{
|
|
NTSTATUS Status;
|
|
IO_STATUS_BLOCK IoStatusBlock;
|
|
FILE_POSITION_INFORMATION NewPosition;
|
|
|
|
NewPosition.CurrentByteOffset.u.HighPart = 0;
|
|
NewPosition.CurrentByteOffset.u.LowPart = Position;
|
|
Status = ZwSetInformationFile(*((HANDLE *) FileContext),
|
|
&IoStatusBlock,
|
|
(PVOID) &NewPosition,
|
|
sizeof(FILE_POSITION_INFORMATION),
|
|
FilePositionInformation);
|
|
|
|
return NT_SUCCESS(Status);
|
|
}
|