PVIDEO_HW_QUERY_INTERFACE Rückruffunktion (video.h)
HwVidQueryInterface gibt eine vom Miniport treiber implementierte funktionale Schnittstelle zurück, die ein untergeordnetes Gerät aufrufen kann.
Syntax
PVIDEO_HW_QUERY_INTERFACE PvideoHwQueryInterface;
VP_STATUS PvideoHwQueryInterface(
PVOID HwDeviceExtension,
PQUERY_INTERFACE QueryInterface
)
{...}
Parameter
HwDeviceExtension
Zeigen Sie auf den Speicherbereich des Miniporttreibers pro Adapter. Weitere Informationen finden Sie unter Geräteerweiterungen.
QueryInterface
Zeiger auf eine QUERY_INTERFACE Struktur, in der der Miniporttreiber Informationen zur unterstützten Schnittstelle zurückgeben soll.
Rückgabewert
HwVidQueryInterface- sollte nach Erfolg NO_ERROR zurückgeben; andernfalls sollte der entsprechende Fehlercode zurückgegeben werden. Ein Miniporttreiber sollte z. B. ERROR_OUTOFMEMORY zurückgeben, wenn der Speicher nicht zum Abschließen des Vorgangs zugeordnet werden kann.
Bemerkungen
HwVidQueryInterface macht einen Kommunikationsmechanismus zwischen dem Videominiporttreiber und dem Treiber eines untergeordneten Geräts verfügbar. Ein Miniporttreiber, der einen solchen Mechanismus verfügbar macht, sollte diese Funktion implementieren.
Der Videoport ruft HwVidQueryInterface auf, wenn es eine IRP_MN_QUERY_INTERFACE Anforderung empfängt. Wenn der Miniporttreiber den Anruf fehlschlägt, übergibt der Videoporttreiber die Anforderung an das übergeordnete Element des Miniporttreibers.
HwVidQueryInterface- sollte die Member der INTERFACE Struktur ausfüllen, auf die QueryInterface-->Interface Punkte wie folgt:
- Legen Sie Größe auf die Anzahl der Bytes in der INTERFACE-Struktur fest. Dieser Wert darf die Anzahl der by QueryInterface->Sizeangegebenen Bytes nicht überschreiten.
- Legen Sie Version auf die Version der Schnittstelle fest, die vom Miniporttreiber zurückgegeben wird. Der Miniporttreiber sollte am besten mit der vom untergeordneten Treiber in QueryInterface->Versionangeforderten Version übereinstimmen.
- Legen Sie Kontext- so fest, dass sie auf einen vom Miniporttreiber definierten Kontext für die Schnittstelle verweist. In der Regel würde ein Miniporttreiber Context- so festlegen, dass er auf die von HwDeviceExtensionidentifizierte Geräteerweiterung verweist.
- Initialisieren Sie InterfaceReference und InterfaceDereference-, um auf die referenz- und dereferenzierungsroutinen für diese Schnittstelle zu verweisen.
- Initialisieren Sie alle zusätzlichen schnittstellenspezifischen Member, um auf die entsprechenden Routinen der verfügbar gemachten Schnittstelle zu verweisen.
Der Treiber eines untergeordneten Geräts kann den Miniporttreiber über die Funktionen aufrufen, die von HwVidQueryInterface jederzeit ohne das Wissen des Videoporttreibers verfügbar gemacht werden. Folglich muss der Miniporttreiber den Zugriff auf sich selbst synchronisieren, indem er die vom Videoporttreiber verwaltete Gerätesperre in allen Funktionen erwirbt und freigibt, die von HwVidQueryInterfaceverfügbar gemacht werden.
Ein untergeordnetes Gerät wird von HwVidGetVideoChildDescriptoraufgezählt.
HwVidQueryInterface sollte seitenfähig gemacht werden.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform- | Desktop |
Header- | video.h (video.h einschließen) |