Esecuzione della diagnostica in un dispositivo WIA
Il servizio WIA può testare lo stato delle funzionalità di un dispositivo chiamando il metodo IStiUSD::D iagnostic . Il minidriver WIA deve controllare lo stato funzionale corrente dell'hardware e segnalare i risultati. Il metodo IStiUSD::D iagnostic viene chiamato anche quando viene premuto il pulsante "Test device" nella pagina delle proprietà predefinita del dispositivo WIA (pagina delle proprietà fornita da Microsoft).
Nell'esempio seguente viene illustrata un'implementazione del metodo IStiUSD::D iagnostic .
STDMETHODIMP CWIADevice::Diagnostic(LPSTI_DIAG pBuffer)
{
//
// If the caller did not pass in the correct parameters,
// then fail the call with E_INVALIDARG.
//
if(!pBuffer){
return E_INVALIDARG;
}
//
// initialize response buffer
//
memset(&pBuffer->sErrorInfo,0,sizeof(pBuffer->sErrorInfo));
pBuffer->sErrorInfo.dwGenericError = NOERROR;
pBuffer->sErrorInfo.dwVendorError = 0;
HRESULT hr = S_OK;
if(!TestMyDeviceFunctionalty()) {
pBuffer->sErrorInfo.dwGenericError = E_FAIL; // win32 generic error code
pBuffer->sErrorInfo.dwVendorError = 1234; // device specific vendor error code
}
return hr;
}