描述
CreateSinkStub方法与IUnsecuredApartment.CreateObjectStub类似,并创建一个对象转发器接收器,并执行从Windows Management接收异步调用的访问检查。CreateSinkStub仅在Windows Server 2003上可用,与CreateObjectStub不同,因为它可以指定对接收器的回调应进行身份验证。
WMI提供Unsecapp.exe进程作为单独的进程。您可以通过调用Windows Server 2003中的IWbemUnsecuredApartment界面或其他Windows版本的IUnsecuredApartment界面来托管Unsecapp.exe。IUnsecuredApartment没有执行访问检查的任何方法。
访问检查意味着Unsecapp.exe仅允许最初获取接收器的计算机的帐户调用回调。当注册表项UnsecAppAccessControlDefault设置为零时,Unsecapp.exe不会对回调执行访问控制,除非CreateSinkStub由dwFlag参数设置为WBEM_FLAG_UNSECAPP_CHECK_ACCESS的应用程序调用。如果参数不存在(默认值),则Unsecapp.exe将读取注册表项值,以确定是否对回调进行身份验证。
C++ 语法
HRESULT CreateSinkStub( [in] IUnknown *pSink, [in] DWORD dwFlags, [in] LPCWSTR wszReserved, [out] IWbemObjectSink **ppStub = 0 ); |
PowerBASIC 语法
METHOD CreateSinkStub ( _ BYVAL pSink AS IUnknown, _ BYVAL dwFlags AS DWORD, _ BYREF wszReserved AS WSTRINGZ, _ BYREF ppStub AS IWbemObjectSink _ ) AS LONG |
参数
pSink
指向客户的IWbemObjectSink的进程内实施。
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 |
Unsecapp.exe验证回调,而不管注册表项UnsecAppAccessControlDefault的设置如何。 |
WBEM_FLAG_UNSECAPP_ DONT_CHECK_ACCESS |
Unsecapp.exe无法验证回调,而不管注册表项UnsecAppAccessControlDefault的设置如何。 |
wszReserved
保留。
ppStub
接收指向异步IWbemServices调用中使用的替代对象的指针。在异步IWbemServices呼叫中使用此对象之前,用户将收到一个IUnknown指针,并且必须调用QueryInterface为IID_WbemObjectSink。
返回值
此方法返回QueryInterface的标准COM错误代码。如果调用成功,则返回S_OK。如果调用失败,因为不支持请求的接口,该方法返回E_NOINTERFACE。
如果网络问题导致您失去与Windows Management的远程连接,也可能会返回COM特定的错误代码。
备注
Windows Server 2003中提供了此方法,以提高来自客户端应用程序的异步调用的安全性。
要求
服务器 |
需要Windows Server 2008或Windows Server 2003。 |
头 |
在Wbemcli.inc中声明。 |
DLL |
需要Unsecapp.exe。 |