Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

扩充毛利分支的RuntimeObject相关接口实现 #99

Merged
merged 13 commits into from
Jun 24, 2024

Opt, 代码对齐

f274c62
Select commit
Loading
Failed to load commit list.
Sign in for the full log view
Merged

扩充毛利分支的RuntimeObject相关接口实现 #99

Opt, 代码对齐
f274c62
Select commit
Loading
Failed to load commit list.
GitHub Actions / 单元测试报告 succeeded Jun 24, 2024 in 0s

321 passed, 0 failed and 0 skipped

Tests passed successfully

Report Passed Failed Skipped Time
TestResults/UnitTestWin32.trx 163✅ 124s
TestResults/UnitTestWin64.trx 158✅ 98s

✅ TestResults/UnitTestWin32.trx

163 tests were completed in 124s with 163 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
api_ms_win_core_fibers.FlsGet_SetValue 4✅ 346ms
api_ms_win_core_handle.CompareObjectHandles 2✅ 542ms
api_ms_win_core_kernel32_legacy.PowerRequest 1✅ 2ms
api_ms_win_core_localization.GetThreadPreferredUILanguages 4✅ 1ms
api_ms_win_core_localization.LocaleNameToLCID 2✅ 6ms
api_ms_win_core_localization.ResolveLocaleName 6✅ 2ms
api_ms_win_core_path.PathCchAddBackslashEx 2✅ 0ms
api_ms_win_core_path.PathCchAddExtension 5✅ 0ms
api_ms_win_core_path.PathCchAppendEx 2✅ 0ms
api_ms_win_core_path.PathCchCanonicalizeEx 3✅ 0ms
api_ms_win_core_path.PathCchCombineEx 3✅ 0ms
api_ms_win_core_path.PathCchFindExtension 3✅ 0ms
api_ms_win_core_path.PathCchIsRoot 5✅ 0ms
api_ms_win_core_path.PathCchRemoveBackslashEx 3✅ 2ms
api_ms_win_core_path.PathCchRemoveExtension 1✅ 0ms
api_ms_win_core_path.PathCchRemoveFileSpec 4✅ 1ms
api_ms_win_core_path.PathCchRenameExtension 3✅ 0ms
api_ms_win_core_path.PathCchSkipRoot 4✅ 1ms
api_ms_win_core_path.PathCchStripPrefix 2✅ 0ms
api_ms_win_core_path.PathCchStripToRoot 4✅ 1ms
api_ms_win_core_path.PathIsUNCEx 4✅ 0ms
api_ms_win_core_synch.TryAcquireSRWLockExclusive 3✅ 510ms
api_ms_win_core_synch.WaitOnAddress 2✅ 497ms
api_ms_win_core_synch.WakeByAddressAll 1✅ 257ms
api_ms_win_core_synch.WakeByAddressSingle 1✅ 459ms
api_ms_win_core_threadpool.CancelThreadpoolIo 2✅ 397ms
api_ms_win_core_threadpool.FreeLibraryWhenCallbackReturns 2✅ 228ms
api_ms_win_core_threadpool.LeaveCriticalSectionWhenCallbackReturns 2✅ 230ms
api_ms_win_core_threadpool.ReleaseMutexWhenCallbackReturns 2✅ 219ms
api_ms_win_core_threadpool.ReleaseSemaphoreWhenCallbackReturns 2✅ 0ms
api_ms_win_core_threadpool.SetEventWhenCallbackReturns 2✅ 4ms
api_ms_win_core_threadpool.SetThreadpoolThreadMaximum 1✅ 536ms
api_ms_win_core_threadpool.SetThreadpoolTimer 6✅ 11s
api_ms_win_core_threadpool.SetThreadpoolWait 4✅ 16s
api_ms_win_core_threadpool.StartThreadpoolIo 3✅ 200ms
api_ms_win_core_threadpool.SubmitThreadpoolWork 1✅ 2s
api_ms_win_core_threadpool.TrySubmitThreadpoolCallback 1✅ 2s
api_ms_win_core_threadpool.WaitForThreadpoolIoCallbacks 2✅ 608ms
api_ms_win_core_threadpool.WaitForThreadpoolTimerCallbacks 1✅ 809ms
api_ms_win_core_threadpool.WaitForThreadpoolWaitCallbacks 1✅ 5s
api_ms_win_core_threadpool.WaitForThreadpoolWorkCallbacks 1✅ 2s
api_ms_win_core_winrt_string.WindowsCompareStringOrdinal 2✅ 1ms
api_ms_win_core_winrt_string.WindowsCreateString 4✅ 0ms
api_ms_win_core_winrt_string.WindowsDuplicateString 1✅ 0ms
api_ms_win_core_winrt_string.WindowsStringHasEmbeddedNull 3✅ 0ms
api_ms_win_power_base.PowerRegisterSuspendResumeNotification 1✅ 508ms
bcrypt.BCryptDecrypt 1✅ 1ms
bcrypt.BCryptDeriveKey 2✅ 0ms
bcrypt.BCryptEncrypt 6✅ 9ms
bcrypt.BCryptExportKey 1✅ 1ms
bcrypt.BCryptGenRandom 2✅ 0ms
bcrypt.BCryptGetProperty 3✅ 3ms
bcrypt.BCryptHash 4✅ 7ms
bcrypt.BCryptImportKey 1✅ 1ms
bcrypt.BCryptSetProperty 1✅ 1ms
Iphlpapi.ConvertInterfaceLuidToGuid 1✅ 0ms
Iphlpapi.ConvertInterfaceLuidToName 2✅ 1ms
Iphlpapi.ConvertInterfaceNameToLuid 3✅ 2ms
Iphlpapi.GetIfTable2 1✅ 2ms
Iphlpapi.if_nametoindex与if_indextoname 1✅ 0ms
Others.可链接性检测 3✅ 40s
Others.通用项检测 1✅ 0ms
PropSys.VariantCompare 1✅ 0ms
shell32.SHGetKnownFolderIDList 1✅ 122ms
shell32.SHGetKnownFolderPath 1✅ 41ms
WinHppt.WinHttpGetProxyForUrlEx 5✅ 553ms
WS2_32.GetAddrInfoEx 2✅ 3ms
WS2_32.GetAddrInfoExCancel 2✅ 210ms

✅ api_ms_win_core_fibers.FlsGet_SetValue

✅ Fls释放销毁回调验证
✅ 单线程验证
✅ 多线程验证
✅ 线程退出销毁回调验证

✅ api_ms_win_core_handle.CompareObjectHandles

✅ 匿名对象
✅ 常规比较

✅ api_ms_win_core_kernel32_legacy.PowerRequest

✅ Set然后Clear

✅ api_ms_win_core_localization.GetThreadPreferredUILanguages

✅ Languages消重验证
✅ MUI_LANGUAGE_ID验证
✅ MUI_LANGUAGE_NAME验证
✅ 无效参数验证

✅ api_ms_win_core_localization.LocaleNameToLCID

✅ LOCALE_ALLOW_NEUTRAL_NAMES验证
✅ 映射表验证

✅ api_ms_win_core_localization.ResolveLocaleName

✅ 中性语言验证
✅ 仅返回长度验证
✅ 特定区域排序语言验证
✅ 特定区域语言验证
✅ 自动回退验证
✅ 默认值验证

✅ api_ms_win_core_path.PathCchAddBackslashEx

✅ 基础功能测试
✅ 空指针测试

✅ api_ms_win_core_path.PathCchAddExtension

✅ 后缀本身是一个空字符串
✅ 后缀格式错误验证
✅ 向已经存在后缀的路径添加
✅ 常规的添加
✅ 当文件名为空时添加

✅ api_ms_win_core_path.PathCchAppendEx

✅ More参数是一个完整路径
✅ 基础功能验证

✅ api_ms_win_core_path.PathCchCanonicalizeEx

✅ 基础功能验证
✅ 末尾多余点删除验证
✅ 根目录向上跳转验证

✅ api_ms_win_core_path.PathCchCombineEx

✅ More参数以斜杠开头
✅ More参数是一个完整路径
✅ 基础功能验证

✅ api_ms_win_core_path.PathCchFindExtension

✅ 不带任何斜杠情况提取
✅ 后缀带空格情况提取
✅ 常规后缀提取

✅ api_ms_win_core_path.PathCchIsRoot

✅ Dos路径测试
✅ UNC路径测试
✅ VolumeGUID路径测试
✅ 特殊值测试
✅ 相对路径测试

✅ api_ms_win_core_path.PathCchRemoveBackslashEx

✅ Dos路径测试
✅ UNC路径测试
✅ VolumeGUID路径测试

✅ api_ms_win_core_path.PathCchRemoveExtension

✅ 基础功能验证

✅ api_ms_win_core_path.PathCchRemoveFileSpec

✅ Dos路径测试
✅ UNC路径测试
✅ VolumeGUID路径测试
✅ 相对路径目录测试

✅ api_ms_win_core_path.PathCchRenameExtension

✅ 删除后缀
✅ 添加后缀
✅ 重命名后缀

✅ api_ms_win_core_path.PathCchSkipRoot

✅ Dos路径
✅ UNC目录测试
✅ VolumeGUID目录测试
✅ 相对路径目录测试

✅ api_ms_win_core_path.PathCchStripPrefix

✅ Dos路径
✅ UNC路径

✅ api_ms_win_core_path.PathCchStripToRoot

✅ Dos路径测试
✅ UNC路径测试
✅ VolumeGUID路径测试
✅ 相对路径测试

✅ api_ms_win_core_path.PathIsUNCEx

✅ Dos路径容错
✅ 传统UNC路径分割
✅ 空指针测试
✅ 长命名UNC路径分割

✅ api_ms_win_core_synch.TryAcquireSRWLockExclusive

✅ 如果其他线程占用,那么应该失败
✅ 锁定后其他线程会等待
✅ 首次肯定成功

✅ api_ms_win_core_synch.WaitOnAddress

✅ 结果本身不同
✅ 结果本身相同

✅ api_ms_win_core_synch.WakeByAddressAll

✅ 唤醒所有线程

✅ api_ms_win_core_synch.WakeByAddressSingle

✅ 只唤醒了一个线程

✅ api_ms_win_core_threadpool.CancelThreadpoolIo

✅ 彻底取消后不会再触发
✅ 没有彻底取消时任然可以收到特定次数

✅ api_ms_win_core_threadpool.FreeLibraryWhenCallbackReturns

✅ 任务测试
✅ 定时器测试

✅ api_ms_win_core_threadpool.LeaveCriticalSectionWhenCallbackReturns

✅ 任务测试
✅ 定时器测试

✅ api_ms_win_core_threadpool.ReleaseMutexWhenCallbackReturns

✅ 任务测试
✅ 定时器测试

✅ api_ms_win_core_threadpool.ReleaseSemaphoreWhenCallbackReturns

✅ 任务测试
✅ 定时器测试

✅ api_ms_win_core_threadpool.SetEventWhenCallbackReturns

✅ 任务测试
✅ 定时器测试

✅ api_ms_win_core_threadpool.SetThreadpoolThreadMaximum

✅ 最大上限测试

✅ api_ms_win_core_threadpool.SetThreadpoolTimer

✅ 一次性定时器
✅ 定时器覆盖
✅ 当DueTime数值为0时
✅ 当DueTime是nullptr
✅ 当DueTime是相对时间
✅ 当DueTime是绝对时间

✅ api_ms_win_core_threadpool.SetThreadpoolWait

✅ 取消等待器
✅ 无限等待
✅ 相对时间等待
✅ 绝对时间等待

✅ api_ms_win_core_threadpool.StartThreadpoolIo

✅ StartThreadpoolIo一次
✅ StartThreadpoolIo二次
✅ 如果不调用StartThreadpoolIo那么Claaback一直不会触发

✅ api_ms_win_core_threadpool.SubmitThreadpoolWork

✅ 一般行为验证

✅ api_ms_win_core_threadpool.TrySubmitThreadpoolCallback

✅ 一般行为验证

✅ api_ms_win_core_threadpool.WaitForThreadpoolIoCallbacks

✅ 任务完成后可以收到信号
✅ 取消任务后回调没有信息

✅ api_ms_win_core_threadpool.WaitForThreadpoolTimerCallbacks

✅ 一般行为验证

✅ api_ms_win_core_threadpool.WaitForThreadpoolWaitCallbacks

✅ 一般行为验证

✅ api_ms_win_core_threadpool.WaitForThreadpoolWorkCallbacks

✅ 一般行为验证

✅ api_ms_win_core_winrt_string.WindowsCompareStringOrdinal

✅ 常规验证
✅ 空值验证

✅ api_ms_win_core_winrt_string.WindowsCreateString

✅ 中途带零的字符串
✅ 中途截断的字符串
✅ 标准C字符串
✅ 结尾多一个零的字符串

✅ api_ms_win_core_winrt_string.WindowsDuplicateString

✅ 标准行为验证

✅ api_ms_win_core_winrt_string.WindowsStringHasEmbeddedNull

✅ 中途带零的字符串
✅ 标准C字符串
✅ 结尾多一个零的字符串

✅ api_ms_win_power_base.PowerRegisterSuspendResumeNotification

✅ 创建然后关闭

✅ bcrypt.BCryptDecrypt

✅ AES解密测试

✅ bcrypt.BCryptDeriveKey

✅ Capi
✅ PBKDF2

✅ bcrypt.BCryptEncrypt

✅ _3DES_112加密测试
✅ _3DES加密测试
✅ AES加密测试
✅ DES加密测试
✅ RC2加密测试
✅ RC4加密测试

✅ bcrypt.BCryptExportKey

✅ AES密钥导出

✅ bcrypt.BCryptGenRandom

✅ BCRYPT_USE_SYSTEM_PREFERRED_RNG模式
✅ BCryptOpen在关闭

✅ bcrypt.BCryptGetProperty

✅ AES加密算法相关属性
✅ Hash
✅ Random

✅ bcrypt.BCryptHash

✅ HMAC_Sha1
✅ MD5
✅ Sha1
✅ Sha256

✅ bcrypt.BCryptImportKey

✅ AES密钥导入

✅ bcrypt.BCryptSetProperty

✅ AES加密算法相关属性

✅ Iphlpapi.ConvertInterfaceLuidToGuid

✅ 交叉验证

✅ Iphlpapi.ConvertInterfaceLuidToName

✅ 畸形输入验证
✅ 输入验证

✅ Iphlpapi.ConvertInterfaceNameToLuid

✅ 大小写验证
✅ 畸形输入写验证
✅ 输入验证

✅ Iphlpapi.GetIfTable2

✅ GetIfTable2简单验证

✅ Iphlpapi.if_nametoindex与if_indextoname

✅ 交叉验证

✅ Others.可链接性检测

✅ lib模式可链接性
✅ obj模式可链接性
✅ SDK6可链接性

✅ Others.通用项检测

✅ 符号Thunks检测

✅ PropSys.VariantCompare

✅ 一般

✅ shell32.SHGetKnownFolderIDList

✅ 基本验证

✅ shell32.SHGetKnownFolderPath

✅ 基本验证

✅ WinHppt.WinHttpGetProxyForUrlEx

✅ DIRECT配置
✅ 三条混合配置
✅ 二条HTTP配置
✅ 单条HTTPS配置
✅ 单条HTTP配置

✅ WS2_32.GetAddrInfoEx

✅ Win2003_XPSP3模式
✅ WinXP_RTM模式

✅ WS2_32.GetAddrInfoExCancel

✅ 任务取消测试
✅ 异步不取消

✅ TestResults/UnitTestWin64.trx

158 tests were completed in 98s with 158 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
api_ms_win_core_handle.CompareObjectHandles 2✅ 518ms
api_ms_win_core_kernel32_legacy.PowerRequest 1✅ 3ms
api_ms_win_core_localization.GetThreadPreferredUILanguages 4✅ 1ms
api_ms_win_core_localization.LocaleNameToLCID 2✅ 12ms
api_ms_win_core_localization.ResolveLocaleName 6✅ 2ms
api_ms_win_core_path.PathCchAddBackslashEx 2✅ 0ms
api_ms_win_core_path.PathCchAddExtension 5✅ 1ms
api_ms_win_core_path.PathCchAppendEx 2✅ 1ms
api_ms_win_core_path.PathCchCanonicalizeEx 3✅ 1ms
api_ms_win_core_path.PathCchCombineEx 3✅ 1ms
api_ms_win_core_path.PathCchFindExtension 3✅ 0ms
api_ms_win_core_path.PathCchIsRoot 5✅ 0ms
api_ms_win_core_path.PathCchRemoveBackslashEx 3✅ 3ms
api_ms_win_core_path.PathCchRemoveExtension 1✅ 0ms
api_ms_win_core_path.PathCchRemoveFileSpec 4✅ 2ms
api_ms_win_core_path.PathCchRenameExtension 3✅ 1ms
api_ms_win_core_path.PathCchSkipRoot 4✅ 2ms
api_ms_win_core_path.PathCchStripPrefix 2✅ 0ms
api_ms_win_core_path.PathCchStripToRoot 4✅ 2ms
api_ms_win_core_path.PathIsUNCEx 4✅ 0ms
api_ms_win_core_synch.TryAcquireSRWLockExclusive 3✅ 509ms
api_ms_win_core_synch.WaitOnAddress 2✅ 490ms
api_ms_win_core_synch.WakeByAddressAll 1✅ 242ms
api_ms_win_core_synch.WakeByAddressSingle 1✅ 458ms
api_ms_win_core_threadpool.CancelThreadpoolIo 2✅ 414ms
api_ms_win_core_threadpool.FreeLibraryWhenCallbackReturns 2✅ 234ms
api_ms_win_core_threadpool.LeaveCriticalSectionWhenCallbackReturns 2✅ 204ms
api_ms_win_core_threadpool.ReleaseMutexWhenCallbackReturns 2✅ 215ms
api_ms_win_core_threadpool.ReleaseSemaphoreWhenCallbackReturns 2✅ 3ms
api_ms_win_core_threadpool.SetEventWhenCallbackReturns 2✅ 8ms
api_ms_win_core_threadpool.SetThreadpoolThreadMaximum 1✅ 539ms
api_ms_win_core_threadpool.SetThreadpoolTimer 6✅ 11s
api_ms_win_core_threadpool.SetThreadpoolWait 4✅ 16s
api_ms_win_core_threadpool.StartThreadpoolIo 3✅ 214ms
api_ms_win_core_threadpool.SubmitThreadpoolWork 1✅ 2s
api_ms_win_core_threadpool.TrySubmitThreadpoolCallback 1✅ 2s
api_ms_win_core_threadpool.WaitForThreadpoolIoCallbacks 2✅ 609ms
api_ms_win_core_threadpool.WaitForThreadpoolTimerCallbacks 1✅ 823ms
api_ms_win_core_threadpool.WaitForThreadpoolWaitCallbacks 1✅ 5s
api_ms_win_core_threadpool.WaitForThreadpoolWorkCallbacks 1✅ 2s
api_ms_win_core_winrt_string.WindowsCompareStringOrdinal 2✅ 1ms
api_ms_win_core_winrt_string.WindowsCreateString 4✅ 0ms
api_ms_win_core_winrt_string.WindowsDuplicateString 1✅ 0ms
api_ms_win_core_winrt_string.WindowsStringHasEmbeddedNull 3✅ 0ms
api_ms_win_power_base.PowerRegisterSuspendResumeNotification 1✅ 515ms
bcrypt.BCryptDecrypt 1✅ 2ms
bcrypt.BCryptDeriveKey 2✅ 0ms
bcrypt.BCryptEncrypt 6✅ 10ms
bcrypt.BCryptExportKey 1✅ 1ms
bcrypt.BCryptGenRandom 2✅ 0ms
bcrypt.BCryptGetProperty 3✅ 4ms
bcrypt.BCryptHash 4✅ 8ms
bcrypt.BCryptImportKey 1✅ 2ms
bcrypt.BCryptSetProperty 1✅ 2ms
Iphlpapi.ConvertInterfaceLuidToGuid 1✅ 0ms
Iphlpapi.ConvertInterfaceLuidToName 2✅ 2ms
Iphlpapi.ConvertInterfaceNameToLuid 3✅ 3ms
Iphlpapi.GetIfTable2 1✅ 2ms
Iphlpapi.if_nametoindex与if_indextoname 1✅ 0ms
Others.可链接性检测 3✅ 38s
Others.通用项检测 1✅ 0ms
PropSys.VariantCompare 1✅ 0ms
shell32.SHGetKnownFolderIDList 1✅ 7ms
shell32.SHGetKnownFolderPath 1✅ 3ms
WinHppt.WinHttpGetProxyForUrlEx 5✅ 19ms
WS2_32.GetAddrInfoEx 1✅ 1ms
WS2_32.GetAddrInfoExCancel 2✅ 21ms

✅ api_ms_win_core_handle.CompareObjectHandles

✅ 匿名对象
✅ 常规比较

✅ api_ms_win_core_kernel32_legacy.PowerRequest

✅ Set然后Clear

✅ api_ms_win_core_localization.GetThreadPreferredUILanguages

✅ Languages消重验证
✅ MUI_LANGUAGE_ID验证
✅ MUI_LANGUAGE_NAME验证
✅ 无效参数验证

✅ api_ms_win_core_localization.LocaleNameToLCID

✅ LOCALE_ALLOW_NEUTRAL_NAMES验证
✅ 映射表验证

✅ api_ms_win_core_localization.ResolveLocaleName

✅ 中性语言验证
✅ 仅返回长度验证
✅ 特定区域排序语言验证
✅ 特定区域语言验证
✅ 自动回退验证
✅ 默认值验证

✅ api_ms_win_core_path.PathCchAddBackslashEx

✅ 基础功能测试
✅ 空指针测试

✅ api_ms_win_core_path.PathCchAddExtension

✅ 后缀本身是一个空字符串
✅ 后缀格式错误验证
✅ 向已经存在后缀的路径添加
✅ 常规的添加
✅ 当文件名为空时添加

✅ api_ms_win_core_path.PathCchAppendEx

✅ More参数是一个完整路径
✅ 基础功能验证

✅ api_ms_win_core_path.PathCchCanonicalizeEx

✅ 基础功能验证
✅ 末尾多余点删除验证
✅ 根目录向上跳转验证

✅ api_ms_win_core_path.PathCchCombineEx

✅ More参数以斜杠开头
✅ More参数是一个完整路径
✅ 基础功能验证

✅ api_ms_win_core_path.PathCchFindExtension

✅ 不带任何斜杠情况提取
✅ 后缀带空格情况提取
✅ 常规后缀提取

✅ api_ms_win_core_path.PathCchIsRoot

✅ Dos路径测试
✅ UNC路径测试
✅ VolumeGUID路径测试
✅ 特殊值测试
✅ 相对路径测试

✅ api_ms_win_core_path.PathCchRemoveBackslashEx

✅ Dos路径测试
✅ UNC路径测试
✅ VolumeGUID路径测试

✅ api_ms_win_core_path.PathCchRemoveExtension

✅ 基础功能验证

✅ api_ms_win_core_path.PathCchRemoveFileSpec

✅ Dos路径测试
✅ UNC路径测试
✅ VolumeGUID路径测试
✅ 相对路径目录测试

✅ api_ms_win_core_path.PathCchRenameExtension

✅ 删除后缀
✅ 添加后缀
✅ 重命名后缀

✅ api_ms_win_core_path.PathCchSkipRoot

✅ Dos路径
✅ UNC目录测试
✅ VolumeGUID目录测试
✅ 相对路径目录测试

✅ api_ms_win_core_path.PathCchStripPrefix

✅ Dos路径
✅ UNC路径

✅ api_ms_win_core_path.PathCchStripToRoot

✅ Dos路径测试
✅ UNC路径测试
✅ VolumeGUID路径测试
✅ 相对路径测试

✅ api_ms_win_core_path.PathIsUNCEx

✅ Dos路径容错
✅ 传统UNC路径分割
✅ 空指针测试
✅ 长命名UNC路径分割

✅ api_ms_win_core_synch.TryAcquireSRWLockExclusive

✅ 如果其他线程占用,那么应该失败
✅ 锁定后其他线程会等待
✅ 首次肯定成功

✅ api_ms_win_core_synch.WaitOnAddress

✅ 结果本身不同
✅ 结果本身相同

✅ api_ms_win_core_synch.WakeByAddressAll

✅ 唤醒所有线程

✅ api_ms_win_core_synch.WakeByAddressSingle

✅ 只唤醒了一个线程

✅ api_ms_win_core_threadpool.CancelThreadpoolIo

✅ 彻底取消后不会再触发
✅ 没有彻底取消时任然可以收到特定次数

✅ api_ms_win_core_threadpool.FreeLibraryWhenCallbackReturns

✅ 任务测试
✅ 定时器测试

✅ api_ms_win_core_threadpool.LeaveCriticalSectionWhenCallbackReturns

✅ 任务测试
✅ 定时器测试

✅ api_ms_win_core_threadpool.ReleaseMutexWhenCallbackReturns

✅ 任务测试
✅ 定时器测试

✅ api_ms_win_core_threadpool.ReleaseSemaphoreWhenCallbackReturns

✅ 任务测试
✅ 定时器测试

✅ api_ms_win_core_threadpool.SetEventWhenCallbackReturns

✅ 任务测试
✅ 定时器测试

✅ api_ms_win_core_threadpool.SetThreadpoolThreadMaximum

✅ 最大上限测试

✅ api_ms_win_core_threadpool.SetThreadpoolTimer

✅ 一次性定时器
✅ 定时器覆盖
✅ 当DueTime数值为0时
✅ 当DueTime是nullptr
✅ 当DueTime是相对时间
✅ 当DueTime是绝对时间

✅ api_ms_win_core_threadpool.SetThreadpoolWait

✅ 取消等待器
✅ 无限等待
✅ 相对时间等待
✅ 绝对时间等待

✅ api_ms_win_core_threadpool.StartThreadpoolIo

✅ StartThreadpoolIo一次
✅ StartThreadpoolIo二次
✅ 如果不调用StartThreadpoolIo那么Claaback一直不会触发

✅ api_ms_win_core_threadpool.SubmitThreadpoolWork

✅ 一般行为验证

✅ api_ms_win_core_threadpool.TrySubmitThreadpoolCallback

✅ 一般行为验证

✅ api_ms_win_core_threadpool.WaitForThreadpoolIoCallbacks

✅ 任务完成后可以收到信号
✅ 取消任务后回调没有信息

✅ api_ms_win_core_threadpool.WaitForThreadpoolTimerCallbacks

✅ 一般行为验证

✅ api_ms_win_core_threadpool.WaitForThreadpoolWaitCallbacks

✅ 一般行为验证

✅ api_ms_win_core_threadpool.WaitForThreadpoolWorkCallbacks

✅ 一般行为验证

✅ api_ms_win_core_winrt_string.WindowsCompareStringOrdinal

✅ 常规验证
✅ 空值验证

✅ api_ms_win_core_winrt_string.WindowsCreateString

✅ 中途带零的字符串
✅ 中途截断的字符串
✅ 标准C字符串
✅ 结尾多一个零的字符串

✅ api_ms_win_core_winrt_string.WindowsDuplicateString

✅ 标准行为验证

✅ api_ms_win_core_winrt_string.WindowsStringHasEmbeddedNull

✅ 中途带零的字符串
✅ 标准C字符串
✅ 结尾多一个零的字符串

✅ api_ms_win_power_base.PowerRegisterSuspendResumeNotification

✅ 创建然后关闭

✅ bcrypt.BCryptDecrypt

✅ AES解密测试

✅ bcrypt.BCryptDeriveKey

✅ Capi
✅ PBKDF2

✅ bcrypt.BCryptEncrypt

✅ _3DES_112加密测试
✅ _3DES加密测试
✅ AES加密测试
✅ DES加密测试
✅ RC2加密测试
✅ RC4加密测试

✅ bcrypt.BCryptExportKey

✅ AES密钥导出

✅ bcrypt.BCryptGenRandom

✅ BCRYPT_USE_SYSTEM_PREFERRED_RNG模式
✅ BCryptOpen在关闭

✅ bcrypt.BCryptGetProperty

✅ AES加密算法相关属性
✅ Hash
✅ Random

✅ bcrypt.BCryptHash

✅ HMAC_Sha1
✅ MD5
✅ Sha1
✅ Sha256

✅ bcrypt.BCryptImportKey

✅ AES密钥导入

✅ bcrypt.BCryptSetProperty

✅ AES加密算法相关属性

✅ Iphlpapi.ConvertInterfaceLuidToGuid

✅ 交叉验证

✅ Iphlpapi.ConvertInterfaceLuidToName

✅ 畸形输入验证
✅ 输入验证

✅ Iphlpapi.ConvertInterfaceNameToLuid

✅ 大小写验证
✅ 畸形输入写验证
✅ 输入验证

✅ Iphlpapi.GetIfTable2

✅ GetIfTable2简单验证

✅ Iphlpapi.if_nametoindex与if_indextoname

✅ 交叉验证

✅ Others.可链接性检测

✅ lib模式可链接性
✅ obj模式可链接性
✅ SDK6可链接性

✅ Others.通用项检测

✅ 符号Thunks检测

✅ PropSys.VariantCompare

✅ 一般

✅ shell32.SHGetKnownFolderIDList

✅ 基本验证

✅ shell32.SHGetKnownFolderPath

✅ 基本验证

✅ WinHppt.WinHttpGetProxyForUrlEx

✅ DIRECT配置
✅ 三条混合配置
✅ 二条HTTP配置
✅ 单条HTTPS配置
✅ 单条HTTP配置

✅ WS2_32.GetAddrInfoEx

✅ Win2003_XPSP3模式

✅ WS2_32.GetAddrInfoExCancel

✅ 任务取消测试
✅ 异步不取消