Reactos
at master 46 lines 1.3 kB view raw
1/* 2 * COPYRIGHT: See COPYING in the top level directory 3 * PROJECT: ReactOS kernel 4 * FILE: lib/rossym/zwfile.c 5 * PURPOSE: File I/O using native functions 6 * 7 * PROGRAMMERS: Ge van Geldorp (gvg@reactos.com) 8 */ 9 10#include <wdm.h> 11#include <reactos/rossym.h> 12#include "rossympriv.h" 13 14BOOLEAN 15RosSymZwReadFile(PVOID FileContext, PVOID Buffer, ULONG Size) 16{ 17 NTSTATUS Status; 18 IO_STATUS_BLOCK IoStatusBlock; 19 20 Status = ZwReadFile(*((HANDLE *) FileContext), 21 NULL, NULL, NULL, 22 &IoStatusBlock, 23 Buffer, 24 Size, 25 NULL, NULL); 26 27 return NT_SUCCESS(Status) && IoStatusBlock.Information == Size; 28} 29 30BOOLEAN 31RosSymZwSeekFile(PVOID FileContext, ULONG_PTR Position) 32{ 33 NTSTATUS Status; 34 IO_STATUS_BLOCK IoStatusBlock; 35 FILE_POSITION_INFORMATION NewPosition; 36 37 NewPosition.CurrentByteOffset.u.HighPart = 0; 38 NewPosition.CurrentByteOffset.u.LowPart = Position; 39 Status = ZwSetInformationFile(*((HANDLE *) FileContext), 40 &IoStatusBlock, 41 (PVOID) &NewPosition, 42 sizeof(FILE_POSITION_INFORMATION), 43 FilePositionInformation); 44 45 return NT_SUCCESS(Status); 46}