Client-Side管道实现
客户端应用程序必须实现以下过程,客户端存根将在数据传输期间调用这些过程:
- 输入管道的拉取过程 ()
- 输出管道的推送过程 ()
- 为传输数据分配缓冲区的分配过程
所有这些过程都必须使用由 MIDL 生成的头文件指定的参数。 此外,客户端应用程序必须具有一个状态变量来标识要查找或放置数据的位置。
分配过程也可以根据需要简单或复杂。 例如,每次存根调用函数时,它可以返回指向同一缓冲区的指针,也可以每次分配不同的内存量。 如果数据已采用正确的格式 (管道元素数组,例如,) 可以将分配过程与拉取过程进行协调,以分配已包含数据的缓冲区。 在这种情况下,拉取过程可能是空例程。
缓冲区分配必须以字节为单位。 另一方面,推送和拉取过程操作元素,其大小(以字节为单位)取决于它们的定义方式。
本部分讨论以下部分中输入和输出管道的客户端实现: