IOCTL_KS_HANDSHAKE IOCTL (ks.h)
内核模式客户端可以使用 IOCTL_KS_HANDSHAKE 协商未连接的 AVStream 引脚之间的接口。 客户端使用 IOCTL_KS_HANDSHAKE 和下面所述的参数调用 KsSynchronousDeviceControl 。
若要尝试使用已连接的引脚进行协议握手,请调用 KsPinHandshake。
主要代码
输入缓冲区
客户端在 InBuffer 参数中放置指向 KSHANDSHAKE 类型的结构的指针。
输入缓冲区长度
InLength 必须等于 (KSHANDSHAKE) 的大小。
输出缓冲区
客户端在 OutBuffer 参数中放置指向 KSHANDSHAKE 类型的结构的指针。 如果请求成功,握手信息将放置在此位置。
输出缓冲区长度
OutLength 必须等于 (KSHANDSHAKE) 的大小。
状态块
如果请求成功,IoStatus.Information 设置为 sizeof (KSHANDSHAKE) 。
此 IOCTL 只能从内核模式发送。 如果请求是从用户模式发送的,则 Status 成员将设置为 STATUS_INVALID_DEVICE_REQUEST。
如果调用 KsSynchronousDeviceControl 中的 InLength 和 OutLength 参数不等于 (KSHANDSHAKE) ,则 Status 成员设置为 STATUS_INVALID_BUFFER_SIZE。
要求
要求 | 值 |
---|---|
Header | ks.h (包括 Ks.h) |