Funzione di callback PFNKSPINIRP (ks.h)
La routine di un minidriver AVStream viene chiamata quando viene eseguita un'attività sul pin e riceve questi IRP:
Sintassi
PFNKSPINIRP Pfnkspinirp;
NTSTATUS Pfnkspinirp(
[in] PKSPIN Pin,
[in] PIRP Irp
)
{...}
Parametri
[in] Pin
Puntatore al KSPIN appena creato.
[in] Irp
Puntatore all'IRP per Pin.
Valore restituito
Se la routine ha esito positivo, l'operazione avrà esito positivo. Restituisce STATUS_SUCCESS o STATUS_PENDING.
Osservazioni
IRP | Descrizione |
---|---|
IRP_MJ_CREATE | In genere, questa routine viene usata dai minidriver che vogliono inizializzare il contesto e le risorse associate al pin. Il minidriver specifica l'indirizzo di questa routine nel membro Create della relativa struttura KSPIN_DISPATCH. Questa routine viene chiamata quando viene creato un pin. Nel punto in cui viene chiamata questa routine, l'oggetto file ha un contesto associato e l'intestazione dell'oggetto KS è stata allocata. In genere, questa funzione verrà fornita dai minidriver che vogliono inizializzare il contesto e le risorse associate al pin. Il mutex del controllo filtro viene mantenuto in questa funzione. La funzione verrà chiamata in IRQL = PASSIVE_LEVEL. Questa routine è facoltativa. Se la routine ha esito positivo, l'operazione di creazione avrà esito positivo. Restituisce STATUS_SUCCESS o STATUS_PENDING. Se un minidriver restituisce STATUS_PENDING, AVStream non completerà immediatamente il IRP_MJ_CREATE. Prima di restituire STATUS_PENDING, tuttavia, il minidriver deve chiamare IoMarkIrpPending. Al termine dell'elaborazione della creazione, il minidriver deve impostare il codice di stato di IRP e quindi chiamare KsCompletePendingRequest. |
IRP_MJ_CLOSE | Il minidriver specifica l'indirizzo di questa routine nel membro close della relativa struttura di KSPIN_DISPATCH. Nel punto in cui viene chiamata la routine, tutti gli eventi registrati sul pin sono stati liberati, ma l'oggetto è altrimenti intatto. Il mutex del controllo filtro viene mantenuto in questa funzione. Per altre informazioni sui mutex, vedere Mutexes in AVStream. Questa routine è facoltativa. |
Fabbisogno
Requisito | Valore |
---|---|
piattaforma di destinazione | Desktop |
intestazione | ks.h (include Ks.h) |
IRQL | PASSIVE_LEVEL (vedere la sezione Osservazioni) |