다음을 통해 공유


XtfGetConsoleFieldValue

도구 IP 주소, 콘솔 IP 주소, AccessKey, 콘솔 ID, 호스트 이름, 장치 ID, 개발 키트 인증서 유형, SystemMajorVersion, SystemMinorVersion, SystemBuildVersion 또는 SystemRevisionVersion 중 하나인, 콘솔 정보를 검색합니다.

구문

HRESULT XtfGetConsoleFieldValue(
         XtfConsoleInfo hConsoleInfo,
         XtfConsoleFieldId field,
         XtfConsoleFieldType *fieldType,
         BYTE *buffer,
         UINT32 *cbBuffer
)  

매개 변수

hConsoleInfo
형식: XtfConsoleInfo

[in] XtfGetConsoleInfoList로 반환된 XtfConsoleInfo 개체입니다.

field
형식: XtfConsoleFieldId

[in] 도구 IP 주소, 콘솔 IP 주소, AccessKey, 콘솔 ID, 호스트 이름, 장치 ID, 개발 키트 인증서 유형, SystemMajorVersion, SystemMinorVersion, SystemBuildVersion 또는 SystemRevisionVersion 중 하나인, 반환할 값의 식별자입니다.

fieldType
형식: XtfConsoleFieldType *

[out] UINT32 또는 PWCHAR인, 반환된 값의 데이터 형식입니다.

buffer
형식: BYTE **

[out] 반환된 값을 검색하는 버퍼에 대한 포인터입니다. 필요한 버퍼 크기를 확인하려면 이 매개 변수를 nullptr로 설정하고 cbBuffer 매개 변수를 0으로 설정합니다. 함수가 반환되면 bufferSize가 필요한 버퍼 크기(바이트)로 설정됩니다. 이 크기에는 종료 null 문자에 대한 공간이 포함됩니다(필요한 경우).

cbBuffer
형식: UINT32 *

[in, out] 입력 시, 버퍼의 크기(바이트)입니다. 반환된 값이 PWCHAR인 경우 버퍼 크기에 종료 null 문자에 대한 공간이 포함되어야 합니다. 출력 시, 필요한 버퍼의 크기(바이트)입니다.

반환 값

형식: HRESULT

S_OK 반환 값은 함수가 성공했음을 나타냅니다. fieldType 버퍼에는 값 및 값 형식이 포함됩니다.

HRESULT_FROM_WIN32(ERROR_MORE_DATA) 반환 값은 buffer 인수에 대해 제공된 버퍼가 충분히 크지 않음을 나타냅니다. 필요한 버퍼 크기는 cbBuffer에 포함되어 있습니다.

프로비전 해제된 개발 키트에서 값을 사용할 수 없는 경우(예: 장치 ID), 반환 HRESULT가 0x80070490이 됩니다.

다른 모든 값은 예상치 않은 오류가 발생했음을 나타냅니다.

비고

XtfGetConsoleInfoList를 사용하여 XtfConsoleInfo 개체를 가져온 후 XtfGetConsoleFieldValue를 사용하여 이 개체에서 값을 검색합니다. 필요한 값을 검색한 경우, XtfCloseConsoleInfoList를 사용하여 반환된 XtfConsoleInfo 개체와 연관된 리소스를 해제합니다.

참고 항목

XtfGetConsoleInfoList는 콘솔에 있는 모든 정보를 검색합니다. XtfGetConsoleFieldValue는 단순히 검색된 정보를 반복해서 처리합니다.

참고 항목

대상 콘솔이 프로비저닝되지 않은 경우, DeviceID는 빈 값을 반환합니다.

int wmain(int argc, wchar_t **argv)
{
  HRESULT             hr             = S_OK;
  PCWSTR              consoleAddress = L" 190.167.10.18";
  XtfConsoleInfo      hConsoleInfo   = nullptr;
  XtfConsoleFieldType fieldType      = XtfConsoleFieldType::FieldTypeUINT32;
  BYTE *              pValueBuffer   = nullptr;
  UINT32              bufferSize     = 0;

  hr = XtfGetConsoleInfoList(consoleAddress, &hConsoleInfo);
  if (FAILED(hr))
  {
    wprintf(L"\n\n*** XtfGetConsoleInfoList failed 0x%x", hr);
    return hr;
  }

  hr = XtfGetConsoleFieldValue(hConsoleInfo, XtfConsoleFieldId::ConsoleId, &fieldType, nullptr, &bufferSize);
  if (hr != HRESULT_FROM_WIN32(ERROR_MORE_DATA))
  {
    XtfCloseConsoleInfoList(hConsoleInfo);
    wprintf(L"\n\n*** XtfGetConsoleFieldValue failed 0x%x", hr);
    return hr;
  }

  pValueBuffer = new BYTE[bufferSize];

  hr  = XtfGetConsoleFieldValue(hConsoleInfo, XtfConsoleFieldId::ConsoleId, &fieldType, pValueBuffer, &bufferSize);
  if (SUCCEEDED(hr))
  {
    PWCHAR consoleId = (PWCHAR)pValueBuffer;
    wprintf(L"\n\n*** Console ID is %s", consoleId);
  }
  else
  {
    wprintf(L"\n\n*** XtfGetConsoleFieldValue failed 0x%x", hr);
  }

  XtfCloseConsoleInfoList(hConsoleInfo);
  delete[] pValueBuffer;

  return hr;
}  

요구 사항

헤더: xtfapi.h

라이브러리: XtfApi.lib

지원되는 플랫폼: Windows(Xbox 콘솔 도구용)

참고 항목

XTF 전송 오류(NDA 항목)권한 부여 필요
추가 Xtf API