Repository: microsoft/msquic

Issue #3564: UWP build fails WACK - AcquireCredentialsHandle
Created: 2023-04-14T00:36:31Z
Describe the bug
when trying to build a UWP app with the msquic.lib linked, running it through the WACK tool generates this error
`Supported API test
FAILED
Supported APIs
Error Found: The supported APIs test detected the following errors:
API FreeCredentialsHandle in secur32.dll is not supported for this application type. MyQuicApp.exe calls this API.
Impact if not fixed: Using an API that is not part of the Windows SDK for Microsoft Store apps violates the Microsoft Store certification requirements.
How to fix: Review the error messages to identify the API that is not part of the Windows SDK for Microsoft Store apps. If the DLL listed is an allowable redistributable from a NuGET package, SDK or other toolkit, did you forget to add the DLL to your app? Please note, apps that are built in a debug configuration or without .NET Native enabled (where applicable) can fail this test as these environments may pull in unsupported APIs. Retest your app in a release configuration, and with .NET Native enabled if applicable. See the link below for more information:
Alternatives to Windows APIs in Microsoft Store apps.`
Affected OS

 Windows
 Linux
 macOS
 Other (specify below)

Additional OS information
Windows 11 UWP
MsQuic version
main
Steps taken to reproduce bug
Using the winrt Xaml app template
link msquic.lib
add a call to the library
`    if (Configuration != nullptr) {
MsQuic->ConfigurationClose(Configuration);
}
// This will block until all outstanding child objects have been closed.
if (Registration != nullptr) {
  MsQuic->RegistrationClose(Registration);
}

`

build uwp succeeds
open Windows App Cert Kit and check the .msix file

Expected behavior
should not be using restricted windows api's for UWP apps. If you are using Credentials, should be using the credential locker api's
https://learn.microsoft.com/en-us/windows/uwp/security/credential-locker
Actual outcome
fails WACK
Additional details
No response

Duplicate issue #4624: "Illegal" use of RegNotifyChangeKeyValue on  WINAPI_PARTITION_GAMES platforms
Created: 2024-10-23T13:10:39Z
Describe the bug
GAMECORE builds, a.k.a. GDK, a.k.a. WINAPI_PARTITION_GAMES don't normally have access to RegNotifyChangeKeyValue function:

it is not defined in winreg.h for GAMES API family
this symbol is not provided by GDK's xgameplatform.lib

Currently msquic cheats by:

extern defining this function circumventing WINAPI_FAMILY_PARTITION guards in winreg.h
linking to advapi32.lib even though this lib is in /NODEFAULTLIB list in GDK samples.

I believe GDK titles are not supposed to link to any regular windows libs, except those provided by GDK itself. As a result msquic essentially uses undocumented function in GAMECORE build. If correct, then this can likely affect game consoles certification of any product bundling msquic as a dependency.
Affected OS

 Windows
 Linux
 macOS
 Other (specify below)

Additional OS information
GDK builds
MsQuic version
main
Steps taken to reproduce bug



Expected behavior



Actual outcome



Additional details
No response

Closing comment (2024-10-24T19:39:18Z): FYI, while looking, I found that this bug is essentially a duplicate of #3564.