勇芳软件工作室.汉化:  Windows Management Instrumentation > COM API for WMI > Interfaces > IWbemUnsecuredApartment >

CreateSinkStub Method

Previous pageReturn to chapter overviewNext page

描述

 

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不会对回调执行访问控制,除非CreateSinkStubdwFlag参数设置为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。