Fix 32bit SetFilePointer

This commit is contained in:
Dniel97
2025-12-21 18:31:02 +01:00
parent 252465b23f
commit 1e31f76d3e
+2 -2
View File
@@ -825,12 +825,12 @@ static DWORD WINAPI iohook_SetFilePointer(
irp.seek_origin = dwMoveMethod; irp.seek_origin = dwMoveMethod;
/* This is a clumsy API. In 32-bit mode lDistanceToMove is a signed 32-bit /* This is a clumsy API. In 32-bit mode lDistanceToMove is a signed 32-bit
int, but in 64-bit mode it is a 32-bit UNsigned int. Care must be taken int, but in 64-bit mode it is a 32-bit unsigned int. Care must be taken
with sign-extension vs zero-extension here. */ with sign-extension vs zero-extension here. */
if (lpDistanceToMoveHigh != NULL) { if (lpDistanceToMoveHigh != NULL) {
irp.seek_offset = ((( int64_t) *lpDistanceToMoveHigh) << 32) | irp.seek_offset = ((( int64_t) *lpDistanceToMoveHigh) << 32) |
((uint64_t) lDistanceToMove ) ; ((uint32_t) lDistanceToMove ) ;
} else { } else {
irp.seek_offset = ( int64_t) lDistanceToMove; irp.seek_offset = ( int64_t) lDistanceToMove;
} }