Credential Provider 使用场景是如何定义的

How does Credential Provider Usage Scenarios are defined

我目前正在尝试了解自定义凭证提供程序是如何制作的。

我有一个样本可以帮助我。该示例特别为 WinLogon 实现了 ICredentialProvider 和 ICredentialProviderFilter。 我的工作是实现 CPUS_CREDUI 使用场景。

但是,有很多东西我在最初的实现中没有得到,所以我什至不能期望自己实现。

我找到的所有文档只解释了每个部分的实际作用。这是我心中唯一的部分'clear enough'。

问题是我无法将这些部分连接在一起。

不同的函数似乎是由 Windows 自己调用的。我怎么知道调用者是什么,使用了哪些参数,诸如此类的事情? 如果我知道,我可能会对整个过程有更好的理解。

例如:

这是我目前的主要问题。谢谢你,如果有人能解开我。

我也愿意接受您提供给我的所有其他信息。

看看微软的docs 对您的凭据提供者的第一个电话是 SetUsageScenario

HRESULT SetUsageScenario(
    CREDENTIAL_PROVIDER_USAGE_SCENARIO cpus,
  DWORD                              dwFlags
);

第一个参数是scenario
如果您的提供商不是为提供的场景设计的,您可以 return E_INVALIDARG.