PFNKSFILTERIRP-Rückruffunktion (ks.h)

Die AVStrMiniFilterCreate-Routine eines AVStream-Minidrivers wird aufgerufen, wenn ein Filter eine IRP empfängt.

IRP_MJ_CREATE

IRP_MJ_CLOSE

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

Weitere Informationen

IoMarkIrpPending

KSFILTER_DISPATCHKsCompletePendingRequest