问题标签 [cd-rom]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
barcode - 在某些光盘上发现的这种条形码是什么类型的?
条形码位于某些 CD 和 DVD 的透明面(它们都在戒指的某处标有“DADC”、“Sony DADC”或“Sony Music”)
只有两个宽度,它们总是在配置中1,2
或2,1
。从现在开始,我会将它们视为二进制 0 和 1。
数据似乎以四位对齐,0x0 到 0x9 代表数字 0-9 和其他字符的某种编码(例如 0xb0 产生'A'
和 0xd6 产生'-'
)。
似乎 0xa 开始了一个文本模式序列,0xe 开始了一些不同的模式序列(其中一些似乎是校验和),而 0xf 结束了它。
一些十六进制示例,在空格后的环中带有相应的人类可读文本版本:
可能有错误,我是手动解码的。
我发现的唯一一个从标签侧可见条形码的例子,导致清晰的扫描(第一个例子)::
CD
上的较短条形码(在这个例子中)是一个谜。
convert XiOSq.jpg -resize 314% -distort DePolar 0 -gravity southeast -crop 53x10% +repage -resize 100x16%\! output.jpg
e6b007f
(314% 和 16% 只是 100pi 和 50/pi 的近似值,以使圆的外边缘长度相同,并且图像之间的圆环宽度匹配;53% 是顺时针经过的圆的百分比从顶部到“DADC”标志之后,10% 是我想成为输出图像顶部的百分比[从圆圈的外边缘到中间];南 = 外边缘;东 = 顺时针)
uwp - UWP 应用程序 - 如何在 StorageDevices 中检测 CDRom 或 DVDRom 设备
在 UWP 应用程序中,我通过以下方式获取所有可移动设备:
我想排除光学设备,只保留外部硬盘或闪存设备。
我尝试使用以下方法找到合适的属性:
并从这里尝试了很多属性,但无法找到任何东西。
有人有想法吗?
data-recovery - 划伤的 CD-ROM / 逐扇区读取 / SCSI 命令
我正在尝试从稍微划伤的 CD-ROM 中恢复数据。
我已经测试了各种免费或专有软件但没有成功(恢复过程甚至无法启动)。我试图弄清楚发生了什么,到目前为止,我发现 CD-ROM 的大小为 0。SCSI 命令READ CD CAPACITY
返回 0 个逻辑块地址/LBA。CD 不是空的,并且未格式化以获取信息。
因此,所有通过 SCSI 命令的读取访问都会READ CD
引发异常,因为询问的 LBA超出范围。
我还尝试了 SCSI 命令:READ CD MSF
命令直接寻址物理地址而不考虑逻辑地址。不成功,它会引发基于 LBA的相同错误超出范围错误?)
欢迎任何想法或帮助!
提前致谢。
cd-rom - 当表不包含大小时,如何从路径表中读取 iso9660 上的目录?
根据 iso9660 / ecma119 的结构规范,路径表包含每个路径的记录,包括起始扇区的位置及其名称,但不包括其大小。我可以找到目录条目,但不知道它包含多少个扇区(通常为 2048 字节)。是一个吗?二?六?
如果我“遍历目录树”,每个目录条目都包含引用的 location和 size,所以我可以知道要读取多少字节(本质上是多少扇区,因为目录必须使用整个扇区)。但是,路径表只包括起始位置,而不包括大小,让我不知道要读取多少字节。
在我拥有的示例 iso(ubuntu-18.04.1-live-server-amd64.iso
fwiw)中,主卷描述符中的根目录条目显示:
既然它说Data Length
is 2048
,我知道只读取一个扇区。
但是,路径表中的根目录条目显示:
它也指向扇区20
,但没有告诉我它使用了多少扇区,让我猜测。
是的,一个扇区中未使用的字节应该是 all 0x00
,所以如果我在一个扇区中读取,读取记录,然后找到第一个字节(长度)为 的一个0x00
,那么我知道我已经到达记录的末尾,但是有三个问题:
- 如果那是规范的方式,为什么还要在目录条目中包含大小?
- 如果它包括 2 或 3 个扇区,对我来说一次读取它们比一次读取一个更有效。
- 如果我有一个目录,其记录精确地填充了一个扇区,没有一些大小属性,我不知道下一个扇区是否应该作为条目读取,或者该目录是否在这里结束。
基本上,我知道如何读取有序路径表来获取目录条目,但不知道如何使用它来知道要为目录本身读取多少扇区。理论上,我可以读取父目录以获取该目录的条目以了解大小,但这增加了查找和读取,并且几乎违背了路径表的目的。
excel - 如何在 VBA 中打开和关闭 CD-ROM
我的 Excel 是 64 位的。以下代码未在 Windows 和 Excel 64 位上运行。朋友中的某个人可以为 Windows 和 Excel 64 位更新此代码吗?
c - 如何在音频 CD 驱动器上使用 ioctl() 函数
我正在尝试使用 Ubuntu 中的 I/O 调用系统编写 C 程序。
我找到了这个文档,来自 Linux-sxs.org 的 CDROM API,但我不明白在哪里可以找到这些参数。
你能给我一个关于如何使用这个ioctl()
功能的例子吗?
cd-rom - CIRC 编码器中的 CDROM、F2 Reed-Solomon PQ 码
我研究有关 CDROM 原则的信息。在标准http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-130.pdf 在第 35 页(pdf 中的 45)我看到 CIRC 编码器。并且他的有Q码和P码,都是用reed-solomon算法计算出来的。我尝试确认这一点并做一些示例音轨(音轨未使用扰码器作为数据轨道)一个填充 0x01 模式,一个填充 0xA5(数据包中的 CIRC 间隔字节不是位,我在 F3 帧中看到 Q 和 P) . 在我用逻辑分析仪从 CD(直接从激光输出)中读取这个扇区后,并通过脚本解密。我有这个数据用于跟踪模式 0x01
S1 01 01 01 01 01 01 01 01 01 01 01 01 e5 6e 4e c5 01 01 01 01 01 01 01 01 01 01 01 01 ff ff ff ff
S2 01 01 01 01 01 01 01 01 01 01 01 01 e5 6e 4e c5 01 01 01 01 01 01 01 01 01 01 01 01 ff ff ff ff
第一个字节是此示例 SYNC_1 和 SYNC_2 中的子代码 sumbol
对于模式为 0xA5 的轨道
S1 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 6b bc a5 72 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 ff ff ff ff
S1 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 6b bc a5 72 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 ff ff ff ff
如果在 CIRC 上看到 12-15 字节它的倒置 Q 奇偶校验和 28-32 P 奇偶校验(第一个字节它的 sybcode 他在 F3 处添加)。
但我找不到计算这个字节的算法,我的数学技能很差。我尝试了 cdrecord 的计算器,他的 doit 另一个代码,尝试了另一个 Reed-Solomon emplemetation,但我无法从这个示例中获得相同的代码。我可以在哪里得到这个代码的工作实现。
windows - 将 CDRom 设备与驱动器号关联
我正在编写一个制作 CD-ROM 驱动器磁盘映像的程序。我需要创建一个完整的磁盘映像,而不仅仅是一个卷映像,但我需要一个卷名,以便我可以相应地命名生成的文件。
基本上我需要这个:
我知道我的 CD-ROM 驱动器是 CD-ROM 0,我需要知道那里有哪些卷。
我试图从 PowerShell 查询 WMI,但没有运气。
Get-WMIObject -Class Win32_LogicalDisk
给我所有的驱动器号和卷标。
Get-WmiObject Win32_DiskPartition
给我一个没有任何标签/字母的分区列表。
Get-WMIObject -Class Win32_PhysicalMedia
is 给了我一个设备地址(?),比如\\.\CDROM0
.
Get-WMIObject -Class Win32_DiskDrivePhysicalMedia
没用,它只有硬盘驱动器,没有CD-ROM。
我错过了什么?
我想要一种方法来查看\\.\CDROM0
带有字母 D 和任何标签的卷。有没有办法做到这一点?也许一些kernel32函数?
c++ - 如何在 Linux 上检测 CDRom 是否是 DVD
我正在寻找在 Linux 上运行的 C++ 中创建一个函数,如果 CDRom 媒体是 DVD,则返回 true,如果是其他任何东西(例如音频 CD),则返回 false。
我一直在ioctl
使用linux/cdrom.h
. 我尝试使用,DVD_READ_STRUCT
但它总是返回 true。也许我使用不正确。