IWbemUnsecuredApartment::CreateSinkStub 方法 (wbemcli.h)

CreateSinkStub 方法类似于 IUnsecuredApartment::CreateObjectStub,创建对象转发器接收器并执行访问检查以接收来自 Windows Management 的异步调用。 CreateSinkStub 不同于 CreateObjectStub ,因为它可以指定应对接收器的回调进行身份验证。

WMI 提供 Unsecapp.exe 进程作为单独的进程运行。 可以在其他版本的 Windows 中通过调用 IWbemUnsecuredApartment 接口或 IUnsecuredApartment 接口来托管 Unsecapp.exe。 IUnsecuredApartment 没有任何执行访问检查的方法。

访问检查意味着 Unsecapp.exe 仅允许最初获取接收器的计算机的帐户调用回调。 当注册表项 UnsecAppAccessControlDefault 设置为零时,Unsecapp.exe 不会对回调执行访问控制,除非将 dwFlag 参数设置为 WBEM_FLAG_UNSECAPP_CHECK_ACCESS 的应用程序调用 CreateSinkStub。 如果参数不存在(默认值),则 Unsecapp.exe 读取注册表项值以确定是否对回调进行身份验证。

语法

HRESULT CreateSinkStub(
  [in]  IWbemObjectSink *pSink,
  [in]  DWORD           dwFlags,
        LPCWSTR         wszReserved,
  [out] IWbemObjectSink **ppStub
);

参数

[in] pSink

指向客户端 IWbemObjectSink 进程内实现的指针。

[in] dwFlags

可以从 WBEM_UNSECAPP_FLAG_TYPE 枚举中设置以下值之一。 此参数确定 Unsecapp.exe 如何使用注册表项检查此注册表项:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WBEM\CIMOM\UnsecAppAccessControlDefault

WBEM_FLAG_UNSECAPP_DEFAULT_CHECK_ACCESS

Unsecapp.exe 读取注册表项 UnsecAppAccessControlDefault 以确定它是否应对回调进行身份验证。

WBEM_FLAG_UNSECAPP_CHECK_ACCESS

无论注册表项 UnsecAppAccessControlDefault 的设置如何,Unsecapp.exe 都会对回调进行身份验证。

WBEM_FLAG_UNSECAPP_DONT_CHECK_ACCESS

无论注册表项 UnsecAppAccessControlDefault 的设置如何,Unsecapp.exe 都不会对回调进行身份验证。

wszReserved

保留。

[out] ppStub

接收指向要用于异步 IWbemServices 调用的 替代对象的指针。 用户收到 IUnknown 指针,并且必须先调用 QueryInterface 进行 IID_WbemObjectSink ,然后才能在异步 IWbemServices 调用中使用此对象。

返回值

此方法返回 QueryInterface 的标准 COM 错误代码。 如果调用成功,它将返回 S_OK 。 如果调用因不支持请求的接口而失败,该方法将返回 E_NOINTERFACE

如果网络问题导致你失去与 Windows 管理的远程连接,也可能会返回特定于 COM 的错误代码。

注解

提供此方法可以提高来自客户端应用程序的异步调用的安全性。 有关详细信息,请参阅设置异步调用的安全性

要求

   
最低受支持的客户端 无受支持的版本
最低受支持的服务器 Windows Server 2008
目标平台 Windows
标头 wbemcli.h (包括 Wbemidl.h)
Library Wbemuuid.lib
DLL Unsecapp.exe

另请参阅

IUnsecuredApartment::CreateObjectStub

IWbemUnsecuredApartment

降低单独进程中接收器的安全性

执行访问检查

设置异步调用的安全性