Tbsip_Submit_Command 函数 (tbs.h)

将受信任的平台模块 (TPM) 命令提交到 TPM 基本服务 (TBS) 进行处理。

语法

TBS_RESULT Tbsip_Submit_Command(
  [in]      TBS_HCONTEXT         hContext,
  [in]      TBS_COMMAND_LOCALITY Locality,
  [in]      TBS_COMMAND_PRIORITY Priority,
  [in]      PCBYTE               pabCommand,
  [in]      UINT32               cbCommand,
  [out]     PBYTE                pabResult,
  [in, out] PUINT32              pcbResult
);

参数

[in] hContext

正在提交命令的上下文的句柄。

[in] Locality

用于设置 TPM 命令的区域。 这必须是以下值之一。

含义
TBS_COMMAND_LOCALITY_ZERO
0 (0x0)
Locality 0。 这是当前唯一支持的区域。
TBS_COMMAND_LOCALITY_ONE
1 (0x1)
locality 1。
TBS_COMMAND_LOCALITY_TWO
2 (0x2)
locality 2。
TBS_COMMAND_LOCALITY_THREE
3 (0x3)
位置三。
TBS_COMMAND_LOCALITY_FOUR
4 (0x4)
位置四。

[in] Priority

命令应具有的优先级。 此参数的取值可为下列值之一:

含义
TBS_COMMAND_PRIORITY_LOW
100 (0x64)
用于低优先级应用程序使用。
TBS_COMMAND_PRIORITY_NORMAL
200 (0xC8)
用于正常优先级应用程序使用。
TBS_COMMAND_PRIORITY_SYSTEM
400 (0x190)
用于访问 TPM 的系统任务。
TBS_COMMAND_PRIORITY_HIGH
300 (0x12C)
用于高优先级应用程序使用。
TBS_COMMAND_PRIORITY_MAX
2147483648 (0x80000000)
用于源自电源管理系统的任务。

[in] pabCommand

指向包含要处理的 TPM 命令的缓冲区的指针。

[in] cbCommand

命令的长度(以字节为单位)。

[out] pabResult

指向缓冲区的指针,用于接收 TPM 命令的结果。 此缓冲区可以与 pabCommand 相同。

[in, out] pcbResult

输入时指定结果缓冲区的大小(以字节为单位)的整数。 提交命令返回时,将设置此值。 如果提供的缓冲区太小,则输出上的此参数将设置为结果所需的大小(以字节为单位)。

返回值

如果函数成功,该函数将返回TBS_SUCCESS。

命令可以成功提交,但仍在 TPM 中失败。 在这种情况下,失败代码作为标准 TPM 错误在结果缓冲区中返回。

如果函数失败,它将返回指示错误的 TBS 返回代码。

返回代码/值 说明
TBS_SUCCESS
0 (0x0)
函数成功。
TBS_E_BAD_PARAMETER
2150121474 (0x80284002)
一个或多个参数值无效。
TBS_E_BUFFER_TOO_LARGE
2150121486 (0x8028400E)
输入或输出缓冲区太大。
TBS_E_INTERNAL_ERROR
2150121473 (0x80284001)
出现内部软件错误。
TBS_E_INSUFFICIENT_BUFFER
2150121477 (0x80284005)
指定的输出缓冲区太小。
TBS_E_INVALID_CONTEXT
2150121476 (0x80284004)
指定的上下文句柄不引用有效的上下文。
TBS_E_INVALID_OUTPUT_POINTER
2150121475 (0x80284003)
指定的输出指针无效。
TBS_E_IOERROR
2150121478 (0x80284006)
与 TPM 通信时出错。

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 tbs.h
Library Tbs.lib
DLL Tbs.dll