TPM 기본 서비스 및 Windows 7 SDK를 통해 기본 TPM_GetCapabilities를 수행하는 C++ 프로그램이 있습니다.TBS를 통해 TPM에서 비표준 응답을받는 이유는 무엇입니까?
나는 설정을 아래의 프로그램을했습니다
int _tmain(int argc, _TCHAR* argv[])
{
TBS_CONTEXT_PARAMS pContextParams;
TBS_HCONTEXT hContext;
TBS_RESULT rv;
pContextParams.version = TBS_CONTEXT_VERSION_ONE;
rv = Tbsi_Context_Create(&pContextParams, &hContext);
printf("\n1 RESULT : %x STATUS : %x", rv, hContext);
BYTE data[200] =
{0,0xc1, /* TPM_TAG_RQU_COMMAND */
0,0,0,18, /* blob length, bytes */
0,0,0,0x65, /* TPM_ORD_GetCapability */
0,0,0,0x06, /* TPM_CAP_VERSION */
0,0,0,0}; /* 0 bytes subcap */
BYTE buf[4000];
UINT32 len = 4000;
rv = Tbsip_Submit_Command(hContext,0,TBS_COMMAND_PRIORITY_NORMAL,data,18,buf,&len);
//CAPABILITY_RETURN* retVal = new CAPABILITY_RETURN(buf);
//printf("\n2 Response Tag: %x Output Bytes: %x",tag,);
printf("\n2 RESULT : %x STATUS : %x\n", rv, hContext);
printBuf(buf,len);
rv = Tbsip_Context_Close(hContext);
printf("\n3 RESULT : %x STATUS : %x", rv, hContext);
처럼 내 반환 버퍼 같습니다
00:C4:00:00:00:12:00:00:00:00:00:00:00:04:01:01:00:00
이 문서에 따르면, 7.1 절 TPM_GetCapability 내가 다음 얻어야한다 :

내 출력 버퍼를 보면 TPM_TAG_RSP_COMMAND, 내 paramSize 값은 18, 내 TPM_RESULT는 0, 0x ... 04 f 서수 (이것이 무엇을 의미하는지 확신 할 수 없다.) 그리고 나의 마지막 비트를 위해 1,1,0,0. 나는 이것을 해독하는 방법에 관해서는 손해를보고있다.
글쎄, 내가 교육받은 것으로 생각해. 감사. – Yablargo