PVIDEO_HW_QUERY_INTERFACE Rückruffunktion (video.h)
HwVidQueryInterface gibt eine vom Miniporttreiber implementierte Funktionsschnittstelle zurück, die von einem untergeordneten Gerät aufgerufen werden kann.
Syntax
PVIDEO_HW_QUERY_INTERFACE PvideoHwQueryInterface;
VP_STATUS PvideoHwQueryInterface(
PVOID HwDeviceExtension,
PQUERY_INTERFACE QueryInterface
)
{...}
Parameter
HwDeviceExtension
Zeiger 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 bei Erfolg NO_ERROR zurückgeben. Andernfalls sollte der entsprechende Fehlercode zurückgegeben werden. Beispielsweise sollte ein Miniporttreiber ERROR_OUTOFMEMORY zurückgeben, wenn er zum Abschließen des Vorgangs keinen Arbeitsspeicher zuweisen kann.
Hinweise
HwVidQueryInterface macht einen Kommunikationsmechanismus zwischen dem Video-Miniporttreiber 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 er eine IRP_MN_QUERY_INTERFACE-Anforderung empfängt. Wenn der Miniporttreiber den Anruf fehlschlägt, übergibt der Videoporttreiber die Anforderung an das übergeordnete Gerät des Miniporttreibers.
HwVidQueryInterface sollte die Member der INTERFACE-Struktur ausfüllen, auf die QueryInterface-Interface> wie folgt verweist:
- Legen Sie Größe auf die Anzahl der Bytes in der INTERFACE-Struktur fest. Dieser Wert darf die anzahl der by queryInterface->Size angegebenen 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 version übereinstimmen, die vom untergeordneten Treiber in QueryInterface->Version angefordert wurde.
- Legen Sie Context fest, um auf einen vom Miniporttreiber definierten Kontext für die Schnittstelle zu zeigen. In der Regel legt ein Miniporttreiber Context so fest, dass er auf die durch HwDeviceExtension identifizierte Geräteerweiterung verweist.
- Initialisieren Sie InterfaceReference und InterfaceDereference , um auf die vom Miniporttreiber implementierten 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 jederzeit ohne Wissen des Videoporttreibers über die funktionen, die von HwVidQueryInterface verfügbar gemacht werden, in den Miniporttreiber aufrufen. Folglich muss der Miniporttreiber den Zugriff auf sich selbst synchronisieren, indem er die vom Videoporttreiber verwaltete Gerätesperre in allen Funktionen abruft und freigibt, die von HwVidQueryInterface verfügbar gemacht werden.
Ein untergeordnetes Gerät wird von HwVidGetVideoChildDescriptor aufgezählt.
HwVidQueryInterface sollte ausgelagert werden.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Desktop |
Kopfzeile | video.h (Video.h einschließen) |