Skip to content

Commit afc4850

Browse files
SekaiArendelleArendelle
andauthored
More Win32/NT symbols (#1183)
* which been used in fast_io::thread (unpatched) * Bugfix of generating manglings Co-authored-by: Arendelle <[email protected]>
1 parent 251b992 commit afc4850

File tree

10 files changed

+91
-21
lines changed

10 files changed

+91
-21
lines changed

examples/0039.gen_win32_mangling/prebuild.cc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@ inline auto gen_apis(
120120
main_body.append(u8"nullptr);\n");
121121
break;
122122
case argtype::va_args:
123+
main_body.erase_index(main_body.size() - 1);
123124
main_body.append(u8");\n");
124125
break;
125126
default:

include/fast_io_dsal/impl/tuple.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ constexpr auto forward_as_tuple(Args&&... args)
185185
#pragma clang diagnostic push
186186
#pragma clang diagnostic ignored "-Wmissing-braces"
187187
#endif
188-
return ::fast_io::containers::tuple<Args&&...>(::std::forward<Args>(args)...);
188+
return ::fast_io::containers::tuple<Args&&...>{::std::forward<Args>(args)...};
189189
#if defined(__clang__)
190190
#pragma clang diagnostic pop
191191
#endif

include/fast_io_hosted/platforms/nt/nt_api.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#pragma once
22

3-
// Don't forget to rerun codegen/win32mangling
3+
// Don't forget to rerun examples/0039.gen_win32_mangling
44

55
namespace fast_io::win32::nt
66
{
@@ -139,5 +139,9 @@ FAST_IO_DLLIMPORT void FAST_IO_WINSTDCALL RtlReleasePrivilege(void *) noexcept F
139139
FAST_IO_DLLIMPORT ::std::uint_least32_t FAST_IO_WINSTDCALL RtlQueryEnvironmentVariable_U(void *, ::fast_io::win32::nt::unicode_string *, ::fast_io::win32::nt::unicode_string *) noexcept FAST_IO_WINSTDCALL_RENAME(RtlQueryEnvironmentVariable_U, 12);
140140
FAST_IO_DLLIMPORT ::std::uint_least32_t FAST_IO_WINSTDCALL NtSetInformationVirtualMemory(void *, ::fast_io::win32::nt::virtual_memory_information_class, ::std::size_t, ::fast_io::win32::nt::memory_range_entry *, void *, ::std::uint_least32_t) noexcept FAST_IO_WINSTDCALL_RENAME(NtSetInformationVirtualMemory, 24);
141141
FAST_IO_DLLIMPORT ::std::uint_least32_t FAST_IO_WINSTDCALL ZwSetInformationVirtualMemory(void *, ::fast_io::win32::nt::virtual_memory_information_class, ::std::size_t, ::fast_io::win32::nt::memory_range_entry *, void *, ::std::uint_least32_t) noexcept FAST_IO_WINSTDCALL_RENAME(ZwSetInformationVirtualMemory, 24);
142+
FAST_IO_DLLIMPORT ::std::uint_least32_t FAST_IO_WINSTDCALL NtDelayExecution(bool, ::std::int_least64_t) noexcept FAST_IO_WINSTDCALL_RENAME(ZwSetInformationVirtualMemory, 8);
143+
FAST_IO_DLLIMPORT ::std::uint_least32_t FAST_IO_WINSTDCALL ZwDelayExecution(bool, ::std::int_least64_t) noexcept FAST_IO_WINSTDCALL_RENAME(ZwSetInformationVirtualMemory, 8);
144+
FAST_IO_DLLIMPORT ::std::uint_least32_t FAST_IO_WINSTDCALL NtSetTimerResolution(::std::uint_least32_t, bool, ::std::uint_least32_t *) noexcept FAST_IO_WINSTDCALL_RENAME(NtSetTimerResolution, 12);
145+
FAST_IO_DLLIMPORT ::std::uint_least32_t FAST_IO_WINSTDCALL ZwSetTimerResolution(::std::uint_least32_t, bool, ::std::uint_least32_t *) noexcept FAST_IO_WINSTDCALL_RENAME(NtSetTimerResolution, 12);
142146

143147
} // namespace fast_io::win32::nt

include/fast_io_hosted/platforms/nt/nt_definitions.h

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -381,6 +381,18 @@ struct process_basic_information
381381
void *InheritedFromUniqueProcessId;
382382
};
383383

384+
struct client_id; // defined in nt_preliminary_definition.h
385+
386+
struct thread_basic_information
387+
{
388+
::std::uint_least32_t ExitStatus;
389+
void *TebBaseAddress;
390+
::fast_io::win32::nt::client_id ClientId;
391+
::std::uint_least32_t AffinityMask;
392+
::std::int_least32_t Priority;
393+
::std::int_least32_t BasePriority;
394+
};
395+
384396
struct curdir
385397
{
386398
unicode_string DosPath;
@@ -397,8 +409,6 @@ struct rtl_drive_letter_curdir
397409

398410
inline constexpr ::std::size_t rtl_max_drive_letters{32};
399411

400-
struct client_id; // defined in nt_preliminary_definition.h
401-
402412
enum class section_information_class
403413
{
404414
SectionBasicInformation,
@@ -1343,7 +1353,7 @@ enum class privileges : ::std::uint_least64_t
13431353

13441354
struct memory_range_entry
13451355
{
1346-
void* VirtualAddress;
1356+
void *VirtualAddress;
13471357
::std::size_t NumberOfBytes;
13481358
};
13491359

include/fast_io_hosted/platforms/nt/nt_zw.h

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -701,4 +701,33 @@ inline ::std::uint_least32_t nt_set_information_virtual_memory(Args... args) noe
701701
return ::fast_io::win32::nt::NtSetInformationVirtualMemory(args...);
702702
}
703703
}
704+
705+
template <bool zw, typename... Args>
706+
requires(sizeof...(Args) == 2)
707+
inline ::std::uint_least32_t nt_delay_execution(Args... args) noexcept
708+
{
709+
if constexpr (zw)
710+
{
711+
return ::fast_io::win32::nt::ZwDelayExecution(args...);
712+
}
713+
else
714+
{
715+
return ::fast_io::win32::nt::NtDelayExecution(args...);
716+
}
717+
}
718+
719+
template <bool zw, typename... Args>
720+
requires(sizeof...(Args) == 3)
721+
inline ::std::uint_least32_t nt_set_timer_resolution(Args... args) noexcept
722+
{
723+
if constexpr (zw)
724+
{
725+
return ::fast_io::win32::nt::ZwSetTimerResolution(args...);
726+
}
727+
else
728+
{
729+
return ::fast_io::win32::nt::NtSetTimerResolution(args...);
730+
}
731+
}
732+
704733
} // namespace fast_io::win32::nt

include/fast_io_hosted/platforms/win32/apis.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#pragma once
22

3-
// Don't forget to rerun codegen/win32mangling
3+
// Don't forget to rerun examples/0039.gen_win32_mangling
44

55
namespace fast_io::win32
66
{
@@ -168,5 +168,7 @@ FAST_IO_DLLIMPORT char16_t **FAST_IO_WINSTDCALL CommandLineToArgvW(char16_t cons
168168
FAST_IO_DLLIMPORT void *FAST_IO_WINSTDCALL LocalFree(void *) noexcept FAST_IO_WINSTDCALL_RENAME(LocalFree, 4);
169169
FAST_IO_DLLIMPORT int FAST_IO_WINSTDCALL PrefetchVirtualMemory(void *, ::std::size_t, ::fast_io::win32::win32_memory_range_entry *, ::std::uint_least32_t) noexcept FAST_IO_WINSTDCALL_RENAME(PrefetchVirtualMemory, 16);
170170
FAST_IO_DLLIMPORT int FAST_IO_WINSTDCALL SetConsoleTextAttribute(void *, ::std::int_least32_t) noexcept FAST_IO_WINSTDCALL_RENAME(SetConsoleTextAttribute, 8);
171+
FAST_IO_DLLIMPORT ::std::uint_least32_t FAST_IO_WINSTDCALL GetCurrentThreadId() noexcept FAST_IO_WINSTDCALL_RENAME(GetCurrentThreadId, 0);
172+
FAST_IO_DLLIMPORT void FAST_IO_WINSTDCALL Sleep(::std::uint_least32_t) noexcept FAST_IO_WINSTDCALL_RENAME(Sleep, 4);
171173

172174
} // namespace fast_io::win32

include/fast_io_hosted/platforms/win32/msvc_linker_32.h

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#pragma once
1+
#pragma once
22
// This file have been generated by example/0039.win32mangling, therefore, do NOT edit this file directely!
33
// clang-format off
44
// WIN32
@@ -15,7 +15,7 @@
1515
#pragma comment(linker,"/alternatename:__imp_?SetEndOfFile@win32@fast_io@@YAHPAX@Z=__imp_SetEndOfFile")
1616
#pragma comment(linker,"/alternatename:__imp_?UnmapViewOfFile@win32@fast_io@@YAHPBX@Z=__imp_UnmapViewOfFile")
1717
#pragma comment(linker,"/alternatename:__imp_?WriteFile@win32@fast_io@@YAHPAXPBXIPAIPAUoverlapped@12@@Z=__imp_WriteFile")
18-
#pragma comment(linker,"/alternatename:__imp_?ReadFile@win32@fast_io@@YAHPAX0IPAIPAUoverlapped@12@@Z")
18+
#pragma comment(linker,"/alternatename:__imp_?ReadFile@win32@fast_io@@YAHPAX0IPAIPAUoverlapped@12@@Z=__imp_ReadFile")
1919
#pragma comment(linker,"/alternatename:__imp_?SetFilePointer@win32@fast_io@@YAIPAXHPAHI@Z=__imp_SetFilePointer")
2020
#pragma comment(linker,"/alternatename:__imp_?SetFilePointerEx@win32@fast_io@@YAHPAX_JPA_JI@Z=__imp_SetFilePointerEx")
2121
#pragma comment(linker,"/alternatename:__imp_?DuplicateHandle@win32@fast_io@@YAHPAX00PAPAXIHI@Z=__imp_DuplicateHandle")
@@ -71,7 +71,7 @@
7171
#pragma comment(linker,"/alternatename:__imp_?LeaveCriticalSection@win32@fast_io@@YAXPAX@Z=__imp_LeaveCriticalSection")
7272
#pragma comment(linker,"/alternatename:__imp_?DeleteCriticalSection@win32@fast_io@@YAXPAX@Z=__imp_DeleteCriticalSection")
7373
#pragma comment(linker,"/alternatename:__imp_?WSADuplicateSocketA@win32@fast_io@@YAHPAXIPAUwsaprotocol_infoa@12@@Z=__imp_WSADuplicateSocketA")
74-
#pragma comment(linker,"/alternatename:__imp_?WSADuplicateSocketW@win32@fast_io@@YAXPAXIPAUwsaprotocol_infow@12@@Z=__imp_WSADuplicateSocketW")
74+
#pragma comment(linker,"/alternatename:__imp_?WSADuplicateSocketW@win32@fast_io@@YAHPAXIPAUwsaprotocol_infow@12@@Z=__imp_WSADuplicateSocketW")
7575
#pragma comment(linker,"/alternatename:__imp_?WSACleanup@win32@fast_io@@YAHXZ=__imp_WSACleanup")
7676
#pragma comment(linker,"/alternatename:__imp_?WSAStartup@win32@fast_io@@YAHIPAUwsadata@12@@Z=__imp_WSAStartup")
7777
#pragma comment(linker,"/alternatename:__imp_?WSAGetLastError@win32@fast_io@@YAHXZ=__imp_WSAGetLastError")
@@ -92,7 +92,7 @@
9292
#pragma comment(linker,"/alternatename:__imp_?WSARecvFrom@win32@fast_io@@YAHIPAUwsabuf@12@IPAI1PAXPAHPAUoverlapped@12@P6AXII4I@_E@Z=__imp_WSARecvFrom")
9393
#pragma comment(linker,"/alternatename:__imp_?connect@win32@fast_io@@YAHIPBXH@Z=__imp_connect")
9494
#pragma comment(linker,"/alternatename:__imp_?WSAConnect@win32@fast_io@@YAHIPBXHPAUwsabuf@12@1PAUqualityofservice@12@2@Z=__imp_WSAConnect")
95-
#pragma comment(linker,"/alternatename:__imp_?shutdown@win32@fast_io@@YAHIPBXH@Z=__imp_shutdown")
95+
#pragma comment(linker,"/alternatename:__imp_?shutdown@win32@fast_io@@YAHIH@Z=__imp_shutdown")
9696
#pragma comment(linker,"/alternatename:__imp_?GetCurrentProcessId@win32@fast_io@@YAIXZ=__imp_GetCurrentProcessId")
9797
#pragma comment(linker,"/alternatename:__imp_?FlushFileBuffers@win32@fast_io@@YAHPAX@Z=__imp_FlushFileBuffers")
9898
#pragma comment(linker,"/alternatename:__imp_?GetQueuedCompletionStatus@win32@fast_io@@YAHPAXPAI1PAUoverlapped@12@I@Z=__imp_GetQueuedCompletionStatus")
@@ -165,6 +165,8 @@
165165
#pragma comment(linker,"/alternatename:__imp_?LocalFree@win32@fast_io@@YAPAXPAX@Z=__imp_LocalFree")
166166
#pragma comment(linker,"/alternatename:__imp_?PrefetchVirtualMemory@win32@fast_io@@YAHPAXIPAUwin32_memory_range_entry@12@I@Z=__imp_PrefetchVirtualMemory")
167167
#pragma comment(linker,"/alternatename:__imp_?SetConsoleTextAttribute@win32@fast_io@@YAHPAXH@Z=__imp_SetConsoleTextAttribute")
168+
#pragma comment(linker,"/alternatename:__imp_?GetCurrentThreadId@win32@fast_io@@YAIXZ=__imp_GetCurrentThreadId")
169+
#pragma comment(linker,"/alternatename:__imp_?Sleep@win32@fast_io@@YAXI@Z=__imp_Sleep")
168170
// NT
169171
#pragma comment(linker,"/alternatename:__imp_?rtl_nt_status_to_dos_error@nt@win32@fast_io@@YAII@Z=__imp_RtlNtStatusToDosError")
170172
#pragma comment(linker,"/alternatename:__imp_?NtClose@nt@win32@fast_io@@YAIPAX@Z=__imp_NtClose")
@@ -300,6 +302,10 @@
300302
#pragma comment(linker,"/alternatename:__imp_?RtlQueryEnvironmentVariable_U@nt@win32@fast_io@@YAIPAXPAUunicode_string@123@1@Z=__imp_RtlQueryEnvironmentVariable_U")
301303
#pragma comment(linker,"/alternatename:__imp_?NtSetInformationVirtualMemory@nt@win32@fast_io@@YAIPAXW4virtual_memory_information_class@123@IPAUmemory_range_entry@123@0I@Z=__imp_NtSetInformationVirtualMemory")
302304
#pragma comment(linker,"/alternatename:__imp_?ZwSetInformationVirtualMemory@nt@win32@fast_io@@YAIPAXW4virtual_memory_information_class@123@IPAUmemory_range_entry@123@0I@Z=__imp_ZwSetInformationVirtualMemory")
305+
#pragma comment(linker,"/alternatename:__imp_?NtDelayExecution@nt@win32@fast_io@@YAI_N_J@Z=__imp_ZwSetInformationVirtualMemory")
306+
#pragma comment(linker,"/alternatename:__imp_?ZwDelayExecution@nt@win32@fast_io@@YAI_N_J@Z=__imp_ZwSetInformationVirtualMemory")
307+
#pragma comment(linker,"/alternatename:__imp_?NtSetTimerResolution@nt@win32@fast_io@@YAII_NPAI@Z=__imp_NtSetTimerResolution")
308+
#pragma comment(linker,"/alternatename:__imp_?ZwSetTimerResolution@nt@win32@fast_io@@YAII_NPAI@Z=__imp_NtSetTimerResolution")
303309
//msvc
304310
#pragma comment(linker,"/alternatename:__imp_?msvc__RTtypeid@msvc@fast_io@@YAPAXPAX@Z=__imp___RTtypeid")
305311
#pragma comment(linker,"/alternatename:?msvc__RTtypeid@msvc@fast_io@@YAPAXPAX@Z=__RTtypeid")

include/fast_io_hosted/platforms/win32/msvc_linker_32_i686.h

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#pragma once
1+
#pragma once
22
// This file have been generated by example/0039.win32mangling, therefore, do NOT edit this file directely!
33
// clang-format off
44
// WIN32
@@ -71,7 +71,7 @@
7171
#pragma comment(linker,"/alternatename:__imp_?LeaveCriticalSection@win32@fast_io@@YGXPAX@Z=__imp__LeaveCriticalSection@4")
7272
#pragma comment(linker,"/alternatename:__imp_?DeleteCriticalSection@win32@fast_io@@YGXPAX@Z=__imp__DeleteCriticalSection@4")
7373
#pragma comment(linker,"/alternatename:__imp_?WSADuplicateSocketA@win32@fast_io@@YGHPAXIPAUwsaprotocol_infoa@12@@Z=__imp__WSADuplicateSocketA@12")
74-
#pragma comment(linker,"/alternatename:__imp_?WSADuplicateSocketW@win32@fast_io@@YGXPAXIPAUwsaprotocol_infow@12@@Z=__imp__WSADuplicateSocketW@12")
74+
#pragma comment(linker,"/alternatename:__imp_?WSADuplicateSocketW@win32@fast_io@@YGHPAXIPAUwsaprotocol_infow@12@@Z=__imp__WSADuplicateSocketW@12")
7575
#pragma comment(linker,"/alternatename:__imp_?WSACleanup@win32@fast_io@@YGHXZ=__imp__WSACleanup@0")
7676
#pragma comment(linker,"/alternatename:__imp_?WSAStartup@win32@fast_io@@YGHIPAUwsadata@12@@Z=__imp__WSAStartup@8")
7777
#pragma comment(linker,"/alternatename:__imp_?WSAGetLastError@win32@fast_io@@YGHXZ=__imp__WSAGetLastError@0")
@@ -92,7 +92,7 @@
9292
#pragma comment(linker,"/alternatename:__imp_?WSARecvFrom@win32@fast_io@@YGHIPAUwsabuf@12@IPAI1PAXPAHPAUoverlapped@12@P6GXII4I@_E@Z=__imp__WSARecvFrom@36")
9393
#pragma comment(linker,"/alternatename:__imp_?connect@win32@fast_io@@YGHIPBXH@Z=__imp__connect@12")
9494
#pragma comment(linker,"/alternatename:__imp_?WSAConnect@win32@fast_io@@YGHIPBXHPAUwsabuf@12@1PAUqualityofservice@12@2@Z=__imp__WSAConnect@28")
95-
#pragma comment(linker,"/alternatename:__imp_?shutdown@win32@fast_io@@YGHIPBXH@Z=__imp__shutdown@12")
95+
#pragma comment(linker,"/alternatename:__imp_?shutdown@win32@fast_io@@YGHIH@Z=__imp__shutdown@8")
9696
#pragma comment(linker,"/alternatename:__imp_?GetCurrentProcessId@win32@fast_io@@YGIXZ=__imp__GetCurrentProcessId@0")
9797
#pragma comment(linker,"/alternatename:__imp_?FlushFileBuffers@win32@fast_io@@YGHPAX@Z=__imp__FlushFileBuffers@4")
9898
#pragma comment(linker,"/alternatename:__imp_?GetQueuedCompletionStatus@win32@fast_io@@YGHPAXPAI1PAUoverlapped@12@I@Z=__imp__GetQueuedCompletionStatus@20")
@@ -165,6 +165,8 @@
165165
#pragma comment(linker,"/alternatename:__imp_?LocalFree@win32@fast_io@@YGPAXPAX@Z=__imp__LocalFree@4")
166166
#pragma comment(linker,"/alternatename:__imp_?PrefetchVirtualMemory@win32@fast_io@@YGHPAXIPAUwin32_memory_range_entry@12@I@Z=__imp__PrefetchVirtualMemory@16")
167167
#pragma comment(linker,"/alternatename:__imp_?SetConsoleTextAttribute@win32@fast_io@@YGHPAXH@Z=__imp__SetConsoleTextAttribute@8")
168+
#pragma comment(linker,"/alternatename:__imp_?GetCurrentThreadId@win32@fast_io@@YGIXZ=__imp__GetCurrentThreadId@0")
169+
#pragma comment(linker,"/alternatename:__imp_?Sleep@win32@fast_io@@YGXI@Z=__imp__Sleep@4")
168170
// NT
169171
#pragma comment(linker,"/alternatename:__imp_?rtl_nt_status_to_dos_error@nt@win32@fast_io@@YGII@Z=__imp__RtlNtStatusToDosError@4")
170172
#pragma comment(linker,"/alternatename:__imp_?NtClose@nt@win32@fast_io@@YGIPAX@Z=__imp__NtClose@4")
@@ -300,6 +302,10 @@
300302
#pragma comment(linker,"/alternatename:__imp_?RtlQueryEnvironmentVariable_U@nt@win32@fast_io@@YGIPAXPAUunicode_string@123@1@Z=__imp__RtlQueryEnvironmentVariable_U@12")
301303
#pragma comment(linker,"/alternatename:__imp_?NtSetInformationVirtualMemory@nt@win32@fast_io@@YGIPAXW4virtual_memory_information_class@123@IPAUmemory_range_entry@123@0I@Z=__imp__NtSetInformationVirtualMemory@24")
302304
#pragma comment(linker,"/alternatename:__imp_?ZwSetInformationVirtualMemory@nt@win32@fast_io@@YGIPAXW4virtual_memory_information_class@123@IPAUmemory_range_entry@123@0I@Z=__imp__ZwSetInformationVirtualMemory@24")
305+
#pragma comment(linker,"/alternatename:__imp_?NtDelayExecution@nt@win32@fast_io@@YGI_N_J@Z=__imp__ZwSetInformationVirtualMemory@8")
306+
#pragma comment(linker,"/alternatename:__imp_?ZwDelayExecution@nt@win32@fast_io@@YGI_N_J@Z=__imp__ZwSetInformationVirtualMemory@8")
307+
#pragma comment(linker,"/alternatename:__imp_?NtSetTimerResolution@nt@win32@fast_io@@YGII_NPAI@Z=__imp__NtSetTimerResolution@12")
308+
#pragma comment(linker,"/alternatename:__imp_?ZwSetTimerResolution@nt@win32@fast_io@@YGII_NPAI@Z=__imp__NtSetTimerResolution@12")
303309
// msvc
304310
#pragma comment(linker,"/alternatename:__imp_?msvc__RTtypeid@msvc@fast_io@@YAPAXPAX@Z=__imp____RTtypeid")
305311
#pragma comment(linker,"/alternatename:?msvc__RTtypeid@msvc@fast_io@@YAPAXPAX@Z=___RTtypeid")

include/fast_io_hosted/platforms/win32/msvc_linker_64.h

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#pragma once
1+
#pragma once
22
// This file have been generated by example/0039.win32mangling, therefore, do NOT edit this file directely!
33
// clang-format off
44
// WIN32
@@ -71,7 +71,7 @@
7171
#pragma comment(linker,"/alternatename:__imp_?LeaveCriticalSection@win32@fast_io@@YAXPEAX@Z=__imp_LeaveCriticalSection")
7272
#pragma comment(linker,"/alternatename:__imp_?DeleteCriticalSection@win32@fast_io@@YAXPEAX@Z=__imp_DeleteCriticalSection")
7373
#pragma comment(linker,"/alternatename:__imp_?WSADuplicateSocketA@win32@fast_io@@YAHPEAXIPEAUwsaprotocol_infoa@12@@Z=__imp_WSADuplicateSocketA")
74-
#pragma comment(linker,"/alternatename:__imp_?WSADuplicateSocketW@win32@fast_io@@YAXPEAXIPEAUwsaprotocol_infow@12@@Z=__imp_WSADuplicateSocketW")
74+
#pragma comment(linker,"/alternatename:__imp_?WSADuplicateSocketW@win32@fast_io@@YAHPEAXIPEAUwsaprotocol_infow@12@@Z=__imp_WSADuplicateSocketW")
7575
#pragma comment(linker,"/alternatename:__imp_?WSACleanup@win32@fast_io@@YAHXZ=__imp_WSACleanup")
7676
#pragma comment(linker,"/alternatename:__imp_?WSAStartup@win32@fast_io@@YAHIPEAUwsadata@12@@Z=__imp_WSAStartup")
7777
#pragma comment(linker,"/alternatename:__imp_?WSAGetLastError@win32@fast_io@@YAHXZ=__imp_WSAGetLastError")
@@ -92,7 +92,7 @@
9292
#pragma comment(linker,"/alternatename:__imp_?WSARecvFrom@win32@fast_io@@YAH_KPEAUwsabuf@12@IPEAI2PEAXPEAHPEAUoverlapped@12@P6AXII5I@_E@Z=__imp_WSARecvFrom")
9393
#pragma comment(linker,"/alternatename:__imp_?connect@win32@fast_io@@YAH_KPEBXH@Z=__imp_connect")
9494
#pragma comment(linker,"/alternatename:__imp_?WSAConnect@win32@fast_io@@YAH_KPEBXHPEAUwsabuf@12@2PEAUqualityofservice@12@3@Z=__imp_WSAConnect")
95-
#pragma comment(linker,"/alternatename:__imp_?shutdown@win32@fast_io@@YAH_KPEBXH@Z=__imp_shutdown")
95+
#pragma comment(linker,"/alternatename:__imp_?shutdown@win32@fast_io@@YAH_KH@Z=__imp_shutdown")
9696
#pragma comment(linker,"/alternatename:__imp_?GetCurrentProcessId@win32@fast_io@@YAIXZ=__imp_GetCurrentProcessId")
9797
#pragma comment(linker,"/alternatename:__imp_?FlushFileBuffers@win32@fast_io@@YAHPEAX@Z=__imp_FlushFileBuffers")
9898
#pragma comment(linker,"/alternatename:__imp_?GetQueuedCompletionStatus@win32@fast_io@@YAHPEAXPEAIPEA_KPEAUoverlapped@12@I@Z=__imp_GetQueuedCompletionStatus")
@@ -165,6 +165,8 @@
165165
#pragma comment(linker,"/alternatename:__imp_?LocalFree@win32@fast_io@@YAPEAXPEAX@Z=__imp_LocalFree")
166166
#pragma comment(linker,"/alternatename:__imp_?PrefetchVirtualMemory@win32@fast_io@@YAHPEAX_KPEAUwin32_memory_range_entry@12@I@Z=__imp_PrefetchVirtualMemory")
167167
#pragma comment(linker,"/alternatename:__imp_?SetConsoleTextAttribute@win32@fast_io@@YAHPEAXH@Z=__imp_SetConsoleTextAttribute")
168+
#pragma comment(linker,"/alternatename:__imp_?GetCurrentThreadId@win32@fast_io@@YAIXZ=__imp_GetCurrentThreadId")
169+
#pragma comment(linker,"/alternatename:__imp_?Sleep@win32@fast_io@@YAXI@Z=__imp_Sleep")
168170
// NT
169171
#pragma comment(linker,"/alternatename:__imp_?rtl_nt_status_to_dos_error@nt@win32@fast_io@@YAII@Z=__imp_RtlNtStatusToDosError")
170172
#pragma comment(linker,"/alternatename:__imp_?NtClose@nt@win32@fast_io@@YAIPEAX@Z=__imp_NtClose")
@@ -300,6 +302,10 @@
300302
#pragma comment(linker,"/alternatename:__imp_?RtlQueryEnvironmentVariable_U@nt@win32@fast_io@@YAIPEAXPEAUunicode_string@123@1@Z=__imp_RtlQueryEnvironmentVariable_U")
301303
#pragma comment(linker,"/alternatename:__imp_?NtSetInformationVirtualMemory@nt@win32@fast_io@@YAIPEAXW4virtual_memory_information_class@123@_KPEAUmemory_range_entry@123@0I@Z=__imp_NtSetInformationVirtualMemory")
302304
#pragma comment(linker,"/alternatename:__imp_?ZwSetInformationVirtualMemory@nt@win32@fast_io@@YAIPEAXW4virtual_memory_information_class@123@_KPEAUmemory_range_entry@123@0I@Z=__imp_ZwSetInformationVirtualMemory")
305+
#pragma comment(linker,"/alternatename:__imp_?NtDelayExecution@nt@win32@fast_io@@YAI_N_J@Z=__imp_ZwSetInformationVirtualMemory")
306+
#pragma comment(linker,"/alternatename:__imp_?ZwDelayExecution@nt@win32@fast_io@@YAI_N_J@Z=__imp_ZwSetInformationVirtualMemory")
307+
#pragma comment(linker,"/alternatename:__imp_?NtSetTimerResolution@nt@win32@fast_io@@YAII_NPEAI@Z=__imp_NtSetTimerResolution")
308+
#pragma comment(linker,"/alternatename:__imp_?ZwSetTimerResolution@nt@win32@fast_io@@YAII_NPEAI@Z=__imp_NtSetTimerResolution")
303309
// msvc
304310
#pragma comment(linker,"/alternatename:__imp_?msvc__RTtypeid@msvc@fast_io@@YAPEAXPEAX@Z=__imp___RTtypeid")
305311
#pragma comment(linker,"/alternatename:?msvc__RTtypeid@msvc@fast_io@@YAPEAXPEAX@Z=__RTtypeid")

0 commit comments

Comments
 (0)