Partager via


IOCTL_KS_HANDSHAKE IOCTL (ks.h)

Un client en mode noyau peut utiliser IOCTL_KS_HANDSHAKE pour négocier une interface entre des broches AVStream non connectées. Le client appelle KsSynchronousDeviceControl avec IOCTL_KS_HANDSHAKE et les paramètres décrits ci-dessous.

Pour tenter une négociation de protocole avec une broche déjà connectée, appelez KsPinHandshake.

Code principal

IRP_MJ_DEVICE_CONTROL

Mémoire tampon d’entrée

Le client place un pointeur vers une structure de type KSHANDSHAKE dans le paramètre InBuffer.

Longueur de la mémoire tampon d’entrée

InLength doit être égal à sizeof(KSHANDSHAKE).

Mémoire tampon de sortie

Le client place un pointeur vers une structure de type KSHANDSHAKE dans le paramètre OutBuffer. Si la demande réussit, les informations de négociation sont placées à cet emplacement.

Longueur de la mémoire tampon de sortie

OutLength doit être égal à sizeof(KSHANDSHAKE).

Bloc d’état

Si la requête réussit, IoStatus.Information est défini sur sizeof(KSHANDSHAKE).

Cette IOCTL peut être envoyée uniquement à partir du mode noyau. Si la demande est envoyée à partir du mode utilisateur, le membre Status est défini sur STATUS_INVALID_DEVICE_REQUEST.

Si les paramètres InLength et OutLength dans l’appel à KsSynchronousDeviceControl ne sont pas tous les deux égaux à sizeof(KSHANDSHAKE), le membre Status est défini sur STATUS_INVALID_BUFFER_SIZE.

Exigences

Exigence Valeur
d’en-tête ks.h (include Ks.h)

Voir aussi

AVStrMiniPinHandshake

KSHANDSHAKE

KsPinHandshake

KsPinRegisterHandshakeCallback