IOCTL_KS_HANDSHAKE IOCTL (ks.h)

A kernel-mode client can use IOCTL_KS_HANDSHAKE to negotiate an interface between unconnected AVStream pins. The client calls KsSynchronousDeviceControl with IOCTL_KS_HANDSHAKE and the parameters described below.

To attempt a protocol handshake with a pin that is already connected, call KsPinHandshake.

Major code

IRP_MJ_DEVICE_CONTROL

Input buffer

The client places a pointer to a structure of type KSHANDSHAKE in the InBuffer parameter.

Input buffer length

InLength must be equal to sizeof(KSHANDSHAKE).

Output buffer

The client places a pointer to a structure of type KSHANDSHAKE in the OutBuffer parameter. If the request is successful, handshake information is placed in this location.

Output buffer length

OutLength must be equal to sizeof(KSHANDSHAKE).

Status block

If the request is successful, IoStatus.Information is set to sizeof(KSHANDSHAKE).

This IOCTL can be sent from kernel-mode only. If the request is sent from user mode, the Status member is set to STATUS_INVALID_DEVICE_REQUEST.

If the InLength and OutLength parameters in the call to KsSynchronousDeviceControl are not both equal to sizeof(KSHANDSHAKE), the Status member is set to STATUS_INVALID_BUFFER_SIZE.

Requirements

Requirement Value
Header ks.h (include Ks.h)

See also

AVStrMiniPinHandshake

KSHANDSHAKE

KsPinHandshake

KsPinRegisterHandshakeCallback