PFNKSFILTERIRP-Rückruffunktion (ks.h)
Die AVStrMiniFilterCreate Routine eines AVStream Minidrivers wird aufgerufen, wenn ein Filter ein IRP empfängt.
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") |