问题标签 [imapi]

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.

0 投票
1 回答
919 浏览

c# - IMAPI2 如何将 UniqueID 与驱动器号相关联

我有以下代码:

这样做的问题是我想在组合框中显示驱动器号,因此用户可以选择他喜欢使用的驱动器,但仍然可以使用所选驱动器的 UniqueID 来刻录光盘。

那么有什么方法可以将 UniqueID 与驱动器号相关联?

谢谢你们。

0 投票
1 回答
1735 浏览

c# - IMAPI2 如何刻录已经创建的iso

我已经阅读了 hackchinacodeproject示例,但似乎我无法弄清楚如何刻录现有的 .iso 文件。上面的示例显示了从文件夹制作 .iso 然后刻录它的方法。我希望能够直接刻录iso文件。

这是一些代码:

有人可以帮我走得更远吗?假设我有example.iso。我现在该怎么办?我不明白。(我在 CodeProject 示例的代码中使用了 IMAPI2.interop)。

非常感谢

0 投票
2 回答
1599 浏览

c# - 如何在 C# 中使用 DeviceIoControl 和 FSCTL_MAKE_MEDIA_COMPATIBLE 完成 Live File System (LiveUDF) 光盘?

我正在尝试用 C# 完成 Live File System(或“Live UDF”)光盘。根据我阅读 MSDN 和 TechNet 文章以及各种论坛帖子的了解,Image Mastering API(或 IMAPI)不支持这种类型的文件系统,并且在我的编码工作中,我未能成功使用 IMAPI 完成 LiveUDF 光盘。因此,我使用了 FSCTL_MAKE_MEDIA_COMPATIBLE 控制代码的 DeviceIoControl 函数。

首先,我正在同步调用 DeviceIoControl,但该函数将返回 1117,并且磁盘最终会在几分钟后完成。这种结果是不可接受的,因为我需要该过程仅在最终失败或实际成功时返回。

接下来,我通过使用带有 FILE_FLAG_OVERLAPPED (0x40000000) dwFlagsAndAttributes 标志的 CreateFile 打开设备句柄并将 NativeOverlapped 对象传递给 DeviceIoControl 调用,继续异步调用 DeviceIoControl。在此之前,很明显,我设置了一个 IOCompletionCallback 来处理任何重叠事件。

如上所述异步调用 DeviceIoControl 时,它仍然几乎立即返回 1117(就像同步调用时一样),永远不会调用 IOCompletionCallback 方法,并且磁盘会在几分钟后完成。

我的问题是:如何在 Windows 7 平台上使用 C# 和 DeviceIoControl(同步或异步,能够“等待”其进程完成)完成 C# 中的 Live File System(或“Live UDF”)光盘捕捉最终的成功或失败结果)?

非常感谢提前。

0 投票
3 回答
2952 浏览

c# - 空白 DVD/蓝光光盘 (IMAPI) 上的可用空间

由于我最初的问题有点太模糊,让我澄清一下。

我的目标是:

  1. 通过 IMAPI 选择文件系统后估计空白磁盘大小
  2. 如果我刻录它,估计我的文件将在这张光盘上消耗的空间。

我想知道的:

  1. 是否可以以编程方式获取所选文件系统的每个扇区的字节数
  2. 如果没有,IMAPI 用于不同文件系统/媒体类型的每个扇区的字节数是否有默认值,并且是否记录在某处。
0 投票
1 回答
396 浏览

c++ - 如何使用来自 IMAPI2 的 IFileSystemImage2 的 put_BootImageOptionsArray(获取 E_NOINTERFACE)?

我正在尝试使用 IFileSystemImage2 接口使用 Imapi2 创建具有多个引导记录的 ISO。

为此,我应该能够使用类型的put_BootImageOptionsArray传入SAFEARRAY*VT_DISPATCHIBootOptions每个引导选项配置的 COM 类型指针。作为一个简短的演示,我有以下代码(IBootOptions在这种情况下我只创建了一个):

但是,每次我打电话put_BootImageOptionsArray都会被E_NOINTERFACE退回。

如您所料,正在创建 IsoImage:

使用IFileSystemImage2任何继承的功能都IFileSystemImage可以正常工作。同样,我也可以CoCreateInstanceaIFileSystemImage代替,这个界面可以很好用。

我已经在 WinDbg 中附加到我的进程并在 中设置了一个断点CMsftFileSystemImage::put_BootOptionsArray,但是,这个函数(底层实现)根本没有被调用。

因此,我的问题很简单:实现似乎在那里,但我似乎无法调用它。有没有人有使用这个特殊功能的经验,如果有,你是如何让它工作的?

0 投票
1 回答
1882 浏览

c# - 在磁盘中创建一个文件夹并使用 IMAPI 2 刻录到它

我在 C# 中使用 IMAPI2 将文件列表刻录到多会话磁盘。但我希望能够将这些文件刻录到磁盘中的目录中。现在这就是我所拥有的

这是一个循环的方法,因为我必须在我的驱动器中创建一个临时文件夹并将我想要刻录的所有文件复制到该文件夹​​中并将该文件夹添加为刻录项目。

我正在使用这个 C# IMAPI2 包装器的稍微修改的版本来实现这个http://www.codeproject.com/Articles/24544/Burning-and-Erasing-CD-DVD-Blu-ray-Media-with-C-一个

0 投票
1 回答
1079 浏览

c++ - IMAPI2:添加文件和文件夹失败

我正在尝试通过 IMAPI2 创建光盘映像。代码非常简单:

命令 6 和 8 失败,出现 0xC0AAB101(无效参数)。这发生在 Win XP SP3 和 Win 7 Pro SP1 x32 上。其余的工作正常,我得到一个空图像。我错过了什么?(PS 上面的代码灵感来自一个开源应用程序。它开箱即用,但当我在我的机器上重建它时有时会开始失败。)

0 投票
1 回答
389 浏览

c++ - 使用 mingw64 c++ 编译 imapi2 应用程序时 imapi2.h 中的错误“没有类型的 '__RPC__range' 声明”

我正在尝试使用 imapi2 通过在 windows 上使用 mingw 编译的 c++ 程序写入 cd-rw。我正在查看一个 Visual Studio c++ 示例。我从 Microsoft SDK 7.1 将 imapi2.h 复制到我的项目中,但是当我在标题中包含 #include "imapi2.h" 并尝试编译时,我从 imapi2.h 文件中得到了一堆错误。我认为这是因为头文件是为 Visual Studio 设置的。错误如下。是否可以使用mingw编译器来使用imapi2?谢谢

0 投票
1 回答
1954 浏览

c++ - 查找 imapi2 com 对象的 uuid/标头或让 __uuidof 在 mingw 上工作

我正在尝试从 mingw 项目访问 imapi2 com 对象。我试图遵循一个视觉工作室的例子。我在 Microsoft SDK 7.1 中找到了 imapi2 头文件,但它们似乎没有 uuid。我看到的例子是在创建对象时使用 __uuidof 来查找 uuid。像这样:

但我总是因为 __uuidof 得到一个错误

对 _GUID const& __mingw_uuidof() 的未定义引用。

但是 __mingw_uuidof 被定义为...

...在 _mingw.ha 中从“#define __uuidof(type) __mingw_uuidof<__typeof(type)>()”开始

为什么 __mingw_uuidof 的 mingw 定义不起作用?

有没有办法在 sdk 头文件中找到像 DiscMaster 这样的 imapi 对象的 uuid?还是我需要获取其他头文件。

谢谢

0 投票
1 回答
857 浏览

c# - Adding a stream to an ISO as a File

I am using the IMAPI2FS Image Mastering API in Windows, and I'm trying to figure out how to add a stream as a file to the file system image before I generate the ISO.