问题类似于如何直接使用 .Net 读取磁盘?,但需要直接访问的驱动器是 CD-ROM 或 DVD-ROM 驱动器。这些驱动器不包括作为物理驱动器,并且无法使用上面主题中引用的DeviceStream类或CreateFile Win32 API 方法进行访问。
Windows 内核会自动为各种附加的块设备创建内部设备标记。第一个 CD-ROM 驱动器显示为\Device\CdRom0,尽管尝试通过CreateFile()打开它会失败(显然根据http://support.microsoft.com/kb/235128)。
考虑到非托管应用程序可以本地访问这些块设备(任何 CD 刻录软件、Windows 的 DD、Cygwin [通过 /dev/scdN]),是否有可用于访问这些块设备的编程方法(最好由 .NET 使用)?