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) |