Freigeben über


PFNKSFILTERIRP-Rückruffunktion (ks.h)

Die AVStrMiniFilterCreate Routine eines AVStream Minidrivers wird aufgerufen, wenn ein Filter ein 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 die KSFILTER-.

[in] Irp

Zeiger auf das IRP für Filter-.

Rückgabewert

Wenn die Routine erfolgreich ist, geben Sie STATUS_SUCCESS oder den Fehlercode zurück.

Bemerkungen

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 Create Member der KSFILTER_DISPATCH Struktur an. An dem Punkt, an dem die Routine aufgerufen wird, weist das Dateiobjekt einen zugeordneten Kontext auf, und der KS-Objektheader wurde zugewiesen. Diese Routine wird bei IRQL = PASSIVE_LEVEL mit dem Mutex des Geräts aufgerufen. Wenn die Routine erfolgreich ist, wird der Erstellungsvorgang garantiert erfolgreich ausgeführt. Gibt STATUS_SUCCESS oder den Fehlercode zurück, der vom Versuch, den Filter zu erstellen, zurückgegeben wurde. STATUS_PENDING ist auch ein rechtlicher Rückgabecode. Wenn ein Minidriver STATUS_PENDING zurückgibt, schließt AVStream die IRP_MJ_CREATE nicht sofort ab. Bevor sie STATUS_PENDING zurückgeben, muss der Minidriver IoMarkIrpPendingaufrufen. Wenn die Verarbeitung der Erstellung abgeschlossen ist, muss der Minidriver den Statuscode des IRP festlegen und dann KsCompletePendingRequestaufrufen. Diese Routine ist optional.
IRP_MJ_CLOSE Der Minidriver gibt die Adresse dieser Routine im Schließen Mitglieds 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 IoMarkIrpPendingaufrufen. Sobald die Verarbeitung des Schließens abgeschlossen ist, muss der Minidriver den Statuscode des IRP festlegen und dann KsCompletePendingRequestaufrufen.

Anforderungen

Anforderung Wert
Zielplattform- Desktop
Header- ks.h (enthalten Ks.h)
IRQL- PASSIVE_LEVEL (Siehe Abschnitt "Hinweise")

Siehe auch

IoMarkIrpPending

KSFILTER_DISPATCHKsCompletePendingRequest-