PFNKSFILTERIRP-Rückruffunktion (ks.h)
Die AVStrMiniFilterCreate-Routine eines AVStream-Minidrivers wird aufgerufen, wenn ein Filter eine IRP empfängt.
Syntax
PFNKSFILTERIRP Pfnksfilterirp;
NTSTATUS Pfnksfilterirp(
[in] PKSFILTER Filter,
[in] PIRP Irp
)
{...}
Parameter
[in] Filter
Zeiger auf den KSFILTER.
[in] Irp
Zeiger auf den IRP für Filter.
Rückgabewert
Wenn die Routine erfolgreich ist, geben Sie STATUS_SUCCESS oder den Fehlercode zurück.
Hinweise
IRP | BESCHREIBUNG |
---|---|
IRP_MJ_CREATE | In der Regel wird diese Routine von Minidrivern verwendet, die den kontext und die ressourcen initialisieren möchten, die dem Filter zugeordnet sind. Der Minidriver gibt die Adresse dieser Routine im Element Erstellen der KSFILTER_DISPATCH-Struktur an. An dem Punkt, an dem die Routine aufgerufen wird, verfügt das Dateiobjekt über einen zugeordneten Kontext, und der KS-Objektheader wurde zugeordnet. Diese Routine wird bei IRQL = PASSIVE_LEVEL mit dem Mutex des Geräts aufgerufen. Wenn die Routine erfolgreich ist, ist der Erstellungsvorgang garantiert erfolgreich. Geben Sie STATUS_SUCCESS oder den Fehlercode zurück, der beim Versuch, den Filter zu erstellen, zurückgegeben wurde. STATUS_PENDING ist auch ein gesetzlicher Rückgabecode. Wenn ein Minidriver STATUS_PENDING zurückgibt, schließt AVStream die IRP_MJ_CREATE nicht sofort ab. Bevor STATUS_PENDING zurückgegeben wird, muss der Minidriver IoMarkIrpPending aufrufen. Wenn die Verarbeitung der Erstellung abgeschlossen ist, muss der Minidriver den status Code des IRP festlegen und dann KsCompletePendingRequest aufrufen. Diese Routine ist optional. |
IRP_MJ_CLOSE | Der Minidriver gibt die Adresse dieser Routine im Element Schließen der KSFILTER_DISPATCH-Struktur an. An dem Punkt, an dem die Routine aufgerufen wird, wurden alle registrierten Ereignisse für den Filter freigegeben, aber das Objekt ist andernfalls intakt. Diese Routine wird bei IRQL = PASSIVE_LEVEL mit dem Mutex des Geräts aufgerufen. Weitere Informationen zu Mutexes finden Sie unter Mutexes in AVStream. Diese Routine ist optional. Gibt STATUS_SUCCESS oder STATUS_PENDING zurück. Wenn ein Minidriver STATUS_PENDING zurückgibt, schließt AVStream die IRP_MJ_CLOSE nicht sofort ab. Bevor STATUS_PENDING zurückgegeben wird, muss der Minidriver jedoch IoMarkIrpPending aufrufen. Sobald die Verarbeitung des Schließens abgeschlossen ist, muss der Minidriver den status Code des IRP festlegen und dann KsCompletePendingRequest aufrufen. |
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Desktop |
Kopfzeile | ks.h (einschließlich Ks.h) |
IRQL | PASSIVE_LEVEL (siehe Abschnitt "Hinweise") |