次の方法で共有


XtfGetConsoleFieldValue

本体に関する情報 (ツールの IP アドレス、本体の IP アドレス、アクセス キー、本体 ID、ホスト名、デバイス ID、開発キットの証明書の種類、システムのメジャー バージョン、システムのマイナー バージョン、システム構築バージョン、またはシステムのリビジョン バージョンのいずれか) を取得します。

構文

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

パラメーター

hConsoleInfo
型: XtfConsoleInfo

[in] XtfGetConsoleInfoList によって返される XtfConsoleInfo オブジェクト。

field
型: XtfConsoleFieldId

[in] 返す値の識別子 (ツールの IP アドレス、本体の IP アドレス、アクセス キー、本体 ID、ホスト名、デバイス ID、開発キットの証明書の種類、システムのメジャーバージョン、システムのマイナーバージョン、システム構築バージョン、またはシステムのリビジョンバージョンのいずれか) です。

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