Author: hpoussin Date: Tue Jan 13 20:08:23 2015 New Revision: 66035
URL: http://svn.reactos.org/svn/reactos?rev=66035&view=rev Log: [FREELDR] PXE: support backward seeking
Modified: trunk/reactos/boot/freeldr/freeldr/fs/pxe.c
Modified: trunk/reactos/boot/freeldr/freeldr/fs/pxe.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/fs/pxe... ============================================================================== --- trunk/reactos/boot/freeldr/freeldr/fs/pxe.c [iso-8859-1] (original) +++ trunk/reactos/boot/freeldr/freeldr/fs/pxe.c [iso-8859-1] Tue Jan 13 20:08:23 2015 @@ -263,8 +263,13 @@ return EINVAL;
if (!_CachedFile && Position->LowPart < _FilePosition) - // We don't support backward seek without caching - return EINVAL; + { + // Close and reopen the file to go to position 0 + if (PxeClose(FileId) != ESUCCESS) + return EIO; + if (PxeOpen(_OpenFileName, OpenReadOnly, &FileId) != ESUCCESS) + return EIO; + }
RtlZeroMemory(&readData, sizeof(readData)); readData.Buffer.segment = ((UINT32)_Packet & 0xf0000) / 16;