FD2INT implementation as of today (2023-07-18) has potential issue.
- It was written for 32-bit Windows and POSIX
- For 32-bit Windows, casting with (unsigned int) works (it means, no conversion of the value)
- For 64-bit Windows, casting with (unsigned int) means conversion of lower 32-bit.
- This works mostly, for the case of 32-bit value of HANDLE
- When HANDLE is within the range of 32-bit, it's OK
- But, it may fail to represent INVALID FD (0xffffffffffffffff), the converted value is 0xffffffff