Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Devuelve la cadena de mensaje de error PrepareForBackup que un escritor ha establecido para un componente determinado.
Tanto los escritores como los solicitantes pueden llamar a este método.
Sintaxis
HRESULT GetPrepareForBackupFailureMsg(
[out] BSTR *pbstrFailureMsg
);
Parámetros
[out] pbstrFailureMsg
Puntero a una cadena de caracteres anchos terminada en null que contiene el mensaje de error que describe un error que se produjo al procesar un evento PrepareForBackup .
Valor devuelto
A continuación se muestran los códigos de retorno válidos para este método.
| Valor | Significado |
|---|---|
|
El mensaje de error se obtuvo correctamente. |
|
No se estableció ningún mensaje de error PrepareForBackup para el componente. |
|
Uno de los valores de parámetro no es válido. |
|
El autor de la llamada no tiene memoria u otros recursos del sistema. |
Comentarios
El autor de la llamada es responsable de liberar la cadena a la que apunta el parámetro pbstrFailureMsg mediante una llamada a la función SysFreeString .
Ejemplos
#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;
}
Requisitos
| Requisito | Value |
|---|---|
| Cliente mínimo compatible | Windows Vista [solo aplicaciones de escritorio] |
| Servidor mínimo compatible | Windows Server 2008 [solo aplicaciones de escritorio] |
| Plataforma de destino | Windows |
| Encabezado | vswriter.h (incluya Vss.h, VsWriter.h) |
| Library | VssApi.lib |