다음을 통해 공유


XtfGetCredentialInfoList

현재 콘솔에 저장된 자격 증명 목록이 포함된 XtfNetworkCredentials 개체를 반환합니다.

구문

HRESULT XtfGetCredentialInfoList(
         LPCWSTR address,
         XtfNetworkCredentials* credentialInfo
)  

매개 변수

address
형식: LPCWSTR

[in] 콘솔의 주소입니다.

credentialInfo
형식: XtfNetworkCredentials*

[out] 현재 콘솔에 저장된 자격 증명 목록이 포함된 XtfNetworkCredentials 개체입니다.

반환 값

형식: HRESULT

S_OK의 반환 값은 함수가 성공했고 자격 증명 정보를 credentialInfo 개체에서 검색할 수 있음을 의미합니다. 다른 모든 값은 예상치 않은 오류가 발생했음을 나타냅니다.

비고

XtfAddCredential을 사용하여 자격 증명을 추가합니다. XtfRemoveCredential을 사용하여 자격 증명을 제거합니다. XtfGetCredentialInfoList, XtfGetCredentialInfoCount, XtfGetCredentialServerNameXtfGetCredentialUserName을 사용하여 현재 저장된 자격 증명 목록을 열거합니다. XtfCloseCredentialInfoList를 사용하여 XtfGetCredentialInfoList에 의해 반환된 XtfNetworkCredentials을(를) 해제합니다.

참고 항목

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

참고 항목

필요한 값을 검색했으면 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