Partager via


Fonction de rappel PFNKSPINIRP (ks.h)

La routine d’un mini-driver AVStream est appelée lorsqu’une activité sur l’épingle est effectuée et qu’elle reçoit ces IRP :

Syntaxe

PFNKSPINIRP Pfnkspinirp;

NTSTATUS Pfnkspinirp(
  [in] PKSPIN Pin,
  [in] PIRP Irp
)
{...}

Paramètres

[in] Pin

Pointeur vers le KSPIN qui vient d’être créé.

[in] Irp

Pointeur vers l’IRP pour épingler.

Valeur de retour

Si la routine réussit, l’opération est garantie de réussir. Retournez STATUS_SUCCESS ou STATUS_PENDING.

Remarques

IRP Description
IRP_MJ_CREATE En règle générale, cette routine est utilisée par les minidrivers qui souhaitent initialiser le contexte et les ressources associés à la broche. Le minidriver spécifie l’adresse de cette routine dans la Créer membre de sa structure de KSPIN_DISPATCH. Cette routine est appelée lorsqu’une broche est créée. Au moment où cette routine est appelée, l’objet de fichier a un contexte associé et l’en-tête d’objet KS a été alloué. En règle générale, cette fonction est fournie par des minidrivers qui souhaitent initialiser le contexte et les ressources associés à la broche. Le mutex de contrôle de filtre est conservé dans cette fonction. La fonction est appelée à IRQL = PASSIVE_LEVEL. Cette routine est facultative. Si la routine réussit, l’opération de création est garantie de réussir. Retournez STATUS_SUCCESS ou STATUS_PENDING. Si un minidriver retourne STATUS_PENDING, AVStream ne termine pas immédiatement le IRP_MJ_CREATE. Avant de retourner STATUS_PENDING, toutefois, le minidriver doit appeler IoMarkIrpPending. Une fois le traitement de la création terminé, le minidriver doit définir le code d’état de l’IRP, puis appeler KsCompletePendingRequest.
IRP_MJ_CLOSE Le minidriver spécifie l’adresse de cette routine dans le membre Close de sa structure de KSPIN_DISPATCH. Au moment où la routine est appelée, tous les événements inscrits sur la broche ont été libérés, mais l’objet est sinon intact. Le mutex de contrôle de filtre est conservé dans cette fonction. Pour plus d’informations sur les mutex, consultez mutex dans AVStream. Cette routine est facultative.

Exigences

Exigence Valeur
plateforme cible Bureau
d’en-tête ks.h (include Ks.h)
IRQL PASSIVE_LEVEL (voir la section Remarques)

Voir aussi

IoMarkIrpPending

KSPIN_DISPATCH

KsCompletePendingRequest