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