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 liaison 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 demande réussit, IoStatus.Information est défini sur sizeof(KSHANDSHAKE).

Ce IOCTL peut être envoyé à partir du mode noyau uniquement. 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 deux égaux à sizeof(KSHANDSHAKE), le membre Status est défini sur STATUS_INVALID_BUFFER_SIZE.

Configuration requise

Condition requise Valeur
En-tête ks.h (inclure Ks.h)

Voir aussi

AVStrMiniPinHandshake

KSHANDSHAKE

KsPinHandshake

KsPinRegisterHandshakeCallback