Chuyu-Team / YY-Thunks

Fix DecodePointer, EncodePointer,RegDeleteKeyEx etc. APIs not found in Windows XP RTM.
MIT License
497 stars 102 forks source link

XP下BaseSetLastNTError转换STATUS_TIMEOUT会报错 #10

Closed sonyps5201314 closed 3 years ago

sonyps5201314 commented 3 years ago

我改了一下,改成 DWORD lStatus = Status == STATUS_TIMEOUT ? WAIT_TIMEOUT : pRtlNtStatusToDosError ? pRtlNtStatusToDosError(Status) : Status; 下面这样了,你可以再斟酌下。

mingkuang-Chuyu commented 3 years ago

STATUS_TIMEOUT 他会转换为 ERROR_TIMEOUT(1460) 不是 WAIT_TIMEOUT(258)

mingkuang-Chuyu commented 3 years ago

你这边的代码为什么要使用 WAIT_TIMEOUT(258)?

mingkuang-Chuyu commented 3 years ago

v1.0.3-Beta4修复

KohChia commented 1 month ago

这就不能算bug,STATUS_TIMEOUT不属于错误代码。因为微软自己的代码一般也是!NT_SUCCESSS(Status)时才调用这个转换。

mingkuang-Chuyu commented 4 weeks ago

这就不能算bug,STATUS_TIMEOUT不属于错误代码。因为微软自己的代码一般也是!NT_SUCCESSS(Status)时才调用这个转换。

SRW等有等待的函数会触发这个错误代码的转换。所以这个是问题。