WIA デバイスでの診断の実行
WIA サービスは、IStiUSD::Diagnostic メソッドを呼び出すことによって、デバイスの機能状態をテストできます。 WIA ミニドライバーは、ハードウェアの現在の機能状態をチェックし、結果を報告する必要があります。 IStiUSD::Diagnostic メソッドは、WIA デバイスの既定のプロパティ ページ (Microsoft が提供するプロパティ ページ) で [デバイスをテスト] ボタンが押されたときにも呼び出されます。
次のコードは、IStiUSD::Diagnostic メソッドの実装例を示しています。
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;
}