IVssComponentEx::GetPrepareForBackupFailureMsg 메서드(vswriter.h)
작성기가 지정된 구성 요소에 대해 설정한 PrepareForBackup 실패 메시지 문자열을 반환합니다.
작성자와 요청자 모두 이 메서드를 호출할 수 있습니다.
구문
HRESULT GetPrepareForBackupFailureMsg(
[out] BSTR *pbstrFailureMsg
);
매개 변수
[out] pbstrFailureMsg
PrepareForBackup 이벤트를 처리하는 동안 발생한 오류를 설명하는 오류 메시지를 포함하는 null로 종료된 와이드 문자열에 대한 포인터입니다.
반환 값
다음은 이 메서드에 대한 유효한 반환 코드입니다.
값 | 의미 |
---|---|
|
실패 메시지를 성공적으로 가져왔습니다. |
|
구성 요소 에 대해 PrepareForBackup 실패 메시지가 설정되지 않았습니다. |
|
매개 변수 값 중 하나가 잘못되었습니다. |
|
호출자가 메모리가 부족하거나 다른 시스템 리소스가 부족합니다. |
설명
호출자는 sysFreeString 함수를 호출하여 pbstrFailureMsg 매개 변수가 가리키는 문자열을 해제합니다.
예제
#include <windows.h>
#include "vss.h"
#include "vsmgmt.h"
#define CHKARG_ASSERT(EXPR)
do
{
if(! ( EXPR ) )
{
assert(FALSE);
hr = E_INVALIDARG;
goto exit;
}
}
while ( FALSE, FALSE );
#define CHK(HR)
do
{
hr = ( HR ) ;
if(FAILED(HR))
{
hr = HR;
goto exit;
}
}
while ( FALSE, FALSE );
STDMETHODIMP CheckAsrBackupErrorMsg
(
IVssBackupComponents *pBackup,
const WCHAR *pwszWriterName
)
{
CComPtr<IVssWriterComponentsExt> spWriter;
CComPtr<IVssComponent> spComponent;
CComPtr<IVssComponentEx> spComponentEx;
UINT cWriterComponents = 0;
UINT iWriterComponent = 0;
UINT cComponents = 0;
UINT iComponent = 0;
VSS_ID idWriter;
VSS_ID idInstance;
CComBSTR bstrFailureMsg;
HRESULT hr = S_OK;
CHKARG_ASSERT( pBackup );
CHKARG_ASSERT( pwszWriterName );
CHK( pBackup->GetWriterComponentsCount( &cWriterComponents ) );
for( iWriterComponent = 0; iWriterComponent < cWriterComponents; iWriterComponent++ )
{
spWriter.Release();
CHK( pBackup->GetWriterComponents( iWriterComponent, &spWriter ) );
CHK( spWriter->GetWriterInfo(&idInstance, &idWriter) );
if( idWriter != c_ASRWriterId )
{
continue;
}
CHK( spWriter->GetComponentCount(&cComponents) );
for( iComponent = 0; iComponent < cComponents; iComponent++ )
{
spComponent.Release();
spComponentEx.Release();
CHK( spWriter->GetComponent(iComponent, &spComponent) );
CHK( spComponent->QueryInterface(__uuidof(IVssComponentEx), (void**)&spComponentEx) );
bstrFailureMsg.Empty();
CHK( spComponentEx->GetPrepareForBackupFailureMsg(&bstrFailureMsg) );
if( ::SysStringLen(bstrFailureMsg) != 0 )
{
// Write into the event log.
Log_SPP_ERROR_WRITER( &ft, __LINE__, pwszWriterName, bstrFailureMsg );
// The ASR writer writes the same message to all components.
// Log the message once.
break;
}
}
}
exit:
return hr;
}
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2008 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | vswriter.h(Vss.h, VsWriter.h 포함) |
라이브러리 | VssApi.lib |