- switch(dwMoveMethod)
- {
- case FILE_CURRENT:
- NtQueryInformationFile(hFile,
- &IoStatusBlock,
- &FilePosition,
- sizeof(FILE_POSITION_INFORMATION),
- FilePositionInformation);
- FilePosition.CurrentByteOffset.QuadPart += liDistanceToMove.QuadPart;
- break;
- case FILE_END:
- NtQueryInformationFile(hFile,
- &IoStatusBlock,
- &FileStandard,
- sizeof(FILE_STANDARD_INFORMATION),
- FileStandardInformation);
- FilePosition.CurrentByteOffset.QuadPart =
- FileStandard.EndOfFile.QuadPart + liDistanceToMove.QuadPart;
- break;
- case FILE_BEGIN:
- FilePosition.CurrentByteOffset.QuadPart = liDistanceToMove.QuadPart;
- break;
- default:
- SetLastError(ERROR_INVALID_PARAMETER);
- return FALSE;
- }
+ switch (dwMoveMethod)
+ {
+ case FILE_CURRENT:
+ {
+ Status = NtQueryInformationFile(hFile, &IoStatusBlock,
+ &FilePosition,
+ sizeof(FILE_POSITION_INFORMATION),
+ FilePositionInformation);
+ if (!NT_SUCCESS(Status))
+ {
+ BaseSetLastNTError(Status);
+ return FALSE;
+ }
+
+ FilePosition.CurrentByteOffset.QuadPart += liDistanceToMove.QuadPart;
+ break;
+ }