Skip to content

Commit c171362

Browse files
Fea #138, 添加GetTempPath2W(A)
1 parent 33a488a commit c171362

File tree

2 files changed

+53
-0
lines changed

2 files changed

+53
-0
lines changed

ThunksList.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@
1010
| WriteFile | 允许_puNumberOfBytesWritten、_pOverlapped同时为nullptr。
1111
| ReadFile | 允许_puNumberOfBytesRead、_pOverlapped同时为nullptr。
1212

13+
## api-ms-win-core-file-l1-2-4.dll
14+
| 函数 | Fallback
15+
| ---- | -----------
16+
| GetTempPath2W(A) | 调用GetTempPathW(A)。
17+
1318
## api-ms-win-core-file-l1-2-5.dll
1419
| 函数 | Fallback
1520
| ---- | -----------

src/Thunks/api-ms-win-core-file.hpp

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1629,4 +1629,52 @@ namespace YY::Thunks
16291629
return __HRESULT_FROM_WIN32(GetLastError());
16301630
}
16311631
#endif
1632+
1633+
1634+
#if (YY_Thunks_Target < __WindowsNT10_20348)
1635+
1636+
// 最低支持的客户端 Windows 11 内部版本 22000
1637+
// 支持的最低服务器 Windows Server 2022 内部版本 20348
1638+
__DEFINE_THUNK(
1639+
kernel32,
1640+
8,
1641+
DWORD,
1642+
WINAPI,
1643+
GetTempPath2W,
1644+
_In_ DWORD BufferLength,
1645+
_Out_writes_to_opt_(BufferLength,return + 1) LPWSTR Buffer
1646+
)
1647+
{
1648+
if (const auto _pfnGetTempPath2W = try_get_GetTempPath2W())
1649+
{
1650+
return _pfnGetTempPath2W(BufferLength, Buffer);
1651+
}
1652+
1653+
return GetTempPathW(BufferLength, Buffer);
1654+
}
1655+
#endif
1656+
1657+
1658+
#if (YY_Thunks_Target < __WindowsNT10_20348)
1659+
1660+
// 最低支持的客户端 Windows 11 内部版本 22000
1661+
// 支持的最低服务器 Windows Server 2022 内部版本 20348
1662+
__DEFINE_THUNK(
1663+
kernel32,
1664+
8,
1665+
DWORD,
1666+
WINAPI,
1667+
GetTempPath2A,
1668+
_In_ DWORD BufferLength,
1669+
_Out_writes_to_opt_(BufferLength,return + 1) LPSTR Buffer
1670+
)
1671+
{
1672+
if (const auto _pfnGetTempPath2A = try_get_GetTempPath2A())
1673+
{
1674+
return _pfnGetTempPath2A(BufferLength, Buffer);
1675+
}
1676+
1677+
return GetTempPathA(BufferLength, Buffer);
1678+
}
1679+
#endif
16321680
} //namespace YY::Thunks

0 commit comments

Comments
 (0)