1

WindowsのC++で、DVD-RAMメディアが空かどうかを検出しようとしています。最も簡単な選択は、IMAPI(バージョン2)を使用することです-ボイラープレートコードは省略されています:

IMAPI_FORMAT2_DATA_MEDIA_STATE state;
HRESULT hr;

// ... Initialize an MsftDiscFormat2Data COM object and put recorder

hr = format->get_CurrentMediaStatus( &state );
// ... Verify returned status ...    
return (state & IMAPI_FORMAT2_DATA_MEDIA_STATE_BLANK);

このコードは通常完全に機能します。ただし、DVD-RAMを使用すると、間違った結果が得られます。返された状態で有効になっているフラグは、IMAPI_FORMAT2_DATA_MEDIA_STATE_OVERWRITE_ONLY(= 0x1)のみです。Windows Vista 32ビットでは、期待どおりに動作します。

誰かがこの結果の理由を知っていますか?回避策はありますか?

4

1 に答える 1