MMIOPROC 回调函数 (mmiscapi.h)

MMIOProc 函数是由 mmioInstallIOProc 函数安装的自定义输入/输出 (I/O) 过程。 MMIOProc 是应用程序定义的函数名称的占位符。 可以在 mmioInstallIOProc 的 callback-address 参数中指定此函数的地址。

语法

MMIOPROC Mmioproc;

LRESULT Mmioproc(
  LPSTR lpmmioinfo,
  UINT uMsg,
  LPARAM lParam1,
  LPARAM lParam2
)
{...}

参数

lpmmioinfo

指向包含有关打开的文件信息的 MMIOINFO 结构。

I/O 过程必须在此结构中维护 lDiskOffset 成员,以指示文件到下一个读取或写入位置的偏移量。 I/O 过程可以使用 adwInfo[] 成员来存储状态信息。 I/O 过程不应修改 MMIOINFO 结构的任何其他成员。

uMsg

指定一条消息,指示请求的 I/O 操作。 可以接收的消息包括 MMIOM_OPENMMIOM_CLOSEMMIOM_READMMIOM_SEEKMMIOM_WRITEMMIOM_WRITEFLUSH

lParam1

为消息指定应用程序定义的参数。

lParam2

为消息指定应用程序定义的参数。

返回值

返回值取决于 uMsg 指定的消息。 如果 I/O 过程无法识别消息,则应返回零。

注解

由与文件关联的 MMIOINFO 结构中的 fccMMIOProc 成员指定的四个字符代码标识自定义存储系统的文件扩展名。 当应用程序使用文件名(如“one.xyz+two”)调用 mmioOpen 时,将调用与四个字符代码“XYZ”关联的 I/O 过程,以打开文件“one.xyz”的“two”元素。

mmioInstallIOProc 函数为每个基于 Windows 的应用程序维护已安装的 I/O 过程的单独列表。 因此,不同的应用程序可以对不同的 I/O 过程使用相同的 I/O 过程标识符,而不会发生冲突。 但是,全局安装 I/O 过程使任何进程都能够使用该过程。

如果应用程序多次调用 mmioInstallIOProc 来注册相同的 I/O 过程,则必须调用 mmioInstallIOProc ,以便在每次安装该过程时删除该过程一次。

mmioInstallIOProc 不会阻止应用程序安装两个具有相同标识符的不同 I/O 过程,也不会阻止安装具有 (“DOS”、“MEM”) 预定义标识符之一的 I/O 过程。 最近安装的过程优先,最近安装的过程是第一个要删除的过程。

搜索指定的 I/O 过程时,首先搜索本地过程,然后搜索全局过程。

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 mmiscapi.h (包括 Mmiscapi.h、Windows.h)