CertSrvServerControlW 函数 (certbcli.h)

CertSrvServerControl 函数发出服务控制命令,以编程方式停止证书服务。

语法

HRESULT CERTBCLI_API CertSrvServerControlW(
  [in]  WCHAR const *pwszServerName,
  [in]  DWORD       dwControlFlags,
  [out] DWORD       *pcbOut,
  [out] BYTE        **ppbOut
);

参数

[in] pwszServerName

指向要发出控制命令的服务器的名称或配置字符串的指针。

[in] dwControlFlags

表示要向 pwszServerName 指定的证书服务服务器发出的控制命令的值。 dwControlFlags 支持以下值。

含义
CSCONTROL_SHUTDOWN
停止证书服务。

[out] pcbOut

对于将来的使用,此参数将是分配给 ppbOut 的字节数。 当前实现不会将内存分配给 ppbOut。 可以将此值设置为 NULL

[out] ppbOut

为将来使用,此参数将是指向表示所发出命令输出的字节的指针。 当前实现不会将内存分配给 ppbOut。 可以将此值设置为 NULL

返回值

返回值为 HRESULT。 值为 S_OK 表示成功。

注解

此函数的目的是允许备份或还原应用程序以编程方式停止证书服务应用程序 (因此不需要使用服务控制器 API) 。 当证书服务在控制台模式下运行时,以这种方式停止证书服务也有效;服务控制器 API 无法控制在控制台模式下运行的应用程序。

Certadm.dll 中此函数的名称为 CertSrvServerControlW。 调用 GetProcAddress 时,必须使用此名称形式。 此外,此函数在 Certbcli.h 头文件中定义为类型 FNCERTSRVSERVERCONTROLW

示例

FNCERTSRVSERVERCONTROLW* pfnControl;
char * szControlFunc = "CertSrvServerControlW";
HRESULT    hr=0;

// Get the address for the desired function.
// hInst was set by calling LoadLibrary for Certadm.dll.
pfnControl = (FNCERTSRVSERVERCONTROLW*)GetProcAddress(hInst,
                                           szControlFunc);
if ( NULL == pfnControl )
{
    printf("Failed GetProcAddress - %s, error=%d\n",
           szControlFunc,
           GetLastError() );
    exit(1); // Or other appropriate error action.
}

// Issue a command to stop the service.
hr = pfnControl( L"MyCertServMachine",
                 CSCONTROL_SHUTDOWN,
                 NULL,
                 NULL);

if ( FAILED( hr ) )
{
    printf("Failed pfnControl call [%x]\n", hr);
    exit(1); // Or other appropriate error action.
}

要求

要求
最低受支持的客户端 无受支持的版本
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 certbcli.h (包括 Certsrv.h)
Library Certadm.lib
DLL Certadm.dll

另请参阅

使用证书服务备份和还原函数