我得到一张空白 CD 的状态结果为 6

I get 6 as State result for a blank CD

我不知道为什么当我在刻录机中插入空白介质时结果为 6。据我了解,在 IMAPI_FORMAT2_DATA_MEDIA_STATE.

的枚举状态中没有 6

这是一个 link,其中包含此状态和我基于的示例:MSDN:Checking Media Support

var state = dataWriter.CurrentMediaStatus;                        
Debug.WriteLine((int)state); // outputs 6

它相当于一个可标记的枚举。 6是4+2,所以状态是both

IMAPI_FORMAT2_DATA_MEDIA_STATE_BLANK
IMAPI_FORMAT2_DATA_MEDIA_STATE_APPENDABLE

是两者的结合,基本上是对这两个(或更多的值)进行按位运算。 当您使用属性 Flags 创建枚举时,您可以对其进行按位运算,即使它在没有属性

的情况下也能正常工作
IMAPI_FORMAT2_DATA_MEDIA_STATE_BLANK
IMAPI_FORMAT2_DATA_MEDIA_STATE_APPENDABLE

IMAPI_FORMAT2_DATA_MEDIA_STATE_BLANK 与 IMAPI_FORMAT2_DATA_MEDIA_STATE_APPENDABLE 的 'OR' 运算的值将给出 6 在 C# 中它将是 value = 2 | 4;

如果您想进一步测试该值是否包含某个选项,您可以继续做类似这样的事情

if ((value & IMAPI_FORMAT2_DATA_MEDIA_STATE_BLANK) == IMAPI_FORMAT2_DATA_MEDIA_STATE_BLANK)
{
//IMAPI_FORMAT2_DATA_MEDIA_STATE_BLANK is contained
}

您可以阅读有关按位运算的更多信息here