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