XtfGetCredentialInfoList
현재 콘솔에 저장된 자격 증명 목록이 포함된 XtfNetworkCredentials
개체를 반환합니다.
구문
HRESULT XtfGetCredentialInfoList(
LPCWSTR address,
XtfNetworkCredentials* credentialInfo
)
매개 변수
address
형식: LPCWSTR
[in] 콘솔의 주소입니다.
credentialInfo
형식: XtfNetworkCredentials*
[out] 현재 콘솔에 저장된 자격 증명 목록이 포함된 XtfNetworkCredentials
개체입니다.
반환 값
형식: HRESULT
S_OK
의 반환 값은 함수가 성공했고 자격 증명 정보를 credentialInfo 개체에서 검색할 수 있음을 의미합니다. 다른 모든 값은 예상치 않은 오류가 발생했음을 나타냅니다.
비고
XtfAddCredential을 사용하여 자격 증명을 추가합니다.
XtfRemoveCredential을 사용하여 자격 증명을 제거합니다.
XtfGetCredentialInfoList, XtfGetCredentialInfoCount, XtfGetCredentialServerName 및 XtfGetCredentialUserName을 사용하여 현재 저장된 자격 증명 목록을 열거합니다.
XtfCloseCredentialInfoList를 사용하여 XtfGetCredentialInfoList에 의해 반환된 XtfNetworkCredentials
을(를) 해제합니다.
참고 항목
XtfGetCredentialInfoList는 콘솔에서 모든 정보를 검색합니다. XtfGetCredentialServerName 및 XtfGetCredentialUserName은 단순히 검색된 정보를 반복해서 처리합니다.
참고 항목
필요한 값을 검색했으면 XtfCloseCredentialInfoList를 사용하여 반환된 XtfNetworkCredentials 개체와 연결된 리소스를 해제합니다.
HRESULT hr = S_OK;
PCWSTR consoleAddress = L"190.167.10.182";
XtfNetworkCredentials credentialInfo = nullptr;
UINT32 count = 0;
PWSTR pServerNameBuffer = nullptr;
PWSTR pUserNameBuffer = nullptr;
UINT32 bufferSize = 0;
hr = XtfAddCredential(consoleAddress, L"devpc001", L"devpc001\\test", L"test");
if (FAILED(hr))
{
wprintf(L"\n\n*** XtfAddCredential failed 0x%x", hr);
return hr;
}
hr = XtfAddCredential(consoleAddress, L"devpc002", L"devpc002\\test1", L"test1");
if (FAILED(hr))
{
wprintf(L"\n\n*** XtfAddCredential failed 0x%x", hr);
return hr;
}
hr = XtfGetCredentialInfoList(consoleAddress, &credentialInfo);
if (FAILED(hr))
{
wprintf(L"\n\n*** XtfGetCredentialInfoList failed 0x%x", hr);
return hr;
}
hr = XtfGetCredentialInfoCount(credentialInfo, &count);
if (FAILED(hr))
{
wprintf(L"\n\n*** XtfGetCredentialInfoCount failed 0x%x", hr);
return hr;
}
wprintf(L"\n\n*** List of Users:");
wprintf(L"\n\t*** Number of users: %d", count);
for (UINT32 i=0; i < count ; i++)
{
bufferSize=0;
hr = XtfGetCredentialServerName(credentialInfo, i, nullptr, &bufferSize);
if (hr != HRESULT_FROM_WIN32(ERROR_MORE_DATA))
{
wprintf(L"\n\n*** XtfGetCredentialServerName failed 0x%x", hr);
return hr;
}
pServerNameBuffer = new WCHAR[bufferSize];
hr = XtfGetCredentialServerName(credentialInfo, i, pServerNameBuffer, &bufferSize);
if (FAILED(hr))
{
wprintf(L"\n\n*** XtfGetCredentialServerName failed 0x%x", hr);
return hr;
}
bufferSize=0;
hr = XtfGetCredentialUserName(credentialInfo, i, nullptr, &bufferSize);
if (hr != HRESULT_FROM_WIN32(ERROR_MORE_DATA))
{
wprintf(L"\n\n*** XtfGetCredentialUserName failed 0x%x", hr);
return hr;
}
pUserNameBuffer = new WCHAR[bufferSize];
hr = XtfGetCredentialUserName(credentialInfo, i, pUserNameBuffer, &bufferSize);
if (FAILED(hr))
{
wprintf(L"\n\n*** XtfGetCredentialUserName failed 0x%x", hr);
return hr;
}
wprintf(L"\n\t Server: %ls, User: %ls", pServerNameBuffer, pUserNameBuffer);
delete[] pServerNameBuffer;
delete[] pUserNameBuffer;
}
XtfCloseCredentialInfoList(credentialInfo);
hr = XtfRemoveCredential(consoleAddress, L"devpc001");
if (FAILED(hr))
{
wprintf(L"\n\n*** XtfRemoveCredential failed 0x%x", hr);
return hr;
}
hr = XtfRemoveCredential(consoleAddress, L"devpc002");
if (FAILED(hr))
{
wprintf(L"\n\n*** XtfRemoveCredential failed 0x%x", hr);
return hr;
}
hr = XtfGetCredentialInfoList(consoleAddress, &credentialInfo);
if (FAILED(hr))
{
wprintf(L"\n\n*** XtfGetCredentialInfoList failed 0x%x", hr);
return hr;
}
hr = XtfGetCredentialInfoCount(credentialInfo, &count);
if (FAILED(hr))
{
wprintf(L"\n\n*** XtfGetCredentialInfoCount failed 0x%x", hr);
return hr;
}
wprintf(L"\n\n*** Number of users: %d", count);
XtfCloseCredentialInfoList(credentialInfo);
wprintf(L"\n\n");
return hr;
요구 사항
헤더: xtfapi.h
라이브러리: XtfApi.lib
지원되는 플랫폼: Windows(Xbox 콘솔 도구용)
참고 항목
PC 배포에서 실행(NDA 항목)권한 부여 필요
XTF 전송 오류(NDA 항목)권한 부여 필요
추가 Xtf API