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 本体ツール用)