Partager via


Fonction de rappel PFNKSPINIRP (ks.h)

La routine d’un minidriver AVStream est appelée lorsqu’une activité sur la broche est effectuée et qu’elle reçoit les adresses IP suivantes :

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 retournée

Si la routine réussit, la réussite de l’opération est garantie. Retourne 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ées à l’épingle. Le minidriver spécifie l’adresse de cette routine dans le membre Créer de sa structure KSPIN_DISPATCH . Cette routine est appelée lors de la création d’une broche. Au moment où cette routine est appelée, l’objet file a un contexte associé et l’en-tête de l’objet KS a été alloué. En règle générale, cette fonction est fournie par des mini-commandes qui souhaitent initialiser le contexte et les ressources associées à l’épingle. Le mutex du contrôle de filtre est conservé dans cette fonction. La fonction sera appelée dans IRQL = PASSIVE_LEVEL. Cette routine est facultative. Si la routine réussit, la réussite de l’opération de création est garantie. Retourne STATUS_SUCCESS ou STATUS_PENDING. Si un minidriver retourne STATUS_PENDING, AVStream ne termine pas immédiatement la IRP_MJ_CREATE . Toutefois, avant de retourner STATUS_PENDING, le minidriver doit appeler IoMarkIrpPending. Une fois le traitement de la création terminé, le minidriver doit définir le code status 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 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 du contrôle de filtre est conservé dans cette fonction. Pour plus d’informations sur les mutex, consultez Mutexes dans AVStream. Cette routine est facultative.

Configuration requise

Condition requise Valeur
Plateforme cible Desktop (Expérience utilisateur)
En-tête ks.h (inclure Ks.h)
IRQL PASSIVE_LEVEL (voir la section Remarques)

Voir aussi

IoMarkIrpPending

KSPIN_DISPATCH

KsCompletePendingRequest