PFNAVCINTERSECTHANDLER-Rückruffunktion (avc.h)
Der AV/C-Schnitthandler bestimmt, ob die Datenbereiche kompatibel sind. Dies ist eine benutzerdefinierte Funktion, die auf dem folgenden Prototyp basiert:
Syntax
typedef NTSTATUS ( *PFNAVCINTERSECTHANDLER)(
_In_ PVOID Context,
_In_ ULONG PinId,
_In_ PKSDATARANGE CallerDataRange,
_In_ PKSDATARANGE DescriptorDataRange,
_In_ ULONG DataBufferSize,
_Out_opt_ PVOID Data,
_Out_ PULONG ReportedDataSize
);
Parameter
[in] Context
Ein optionaler Wert, der vom Intersect-Handler erwartet wird. Dieser Wert wird entweder vom Untereinheitstreiber (wenn der Untereinheitstreiber den Intersect-Handler bereitstellt) oder vom unteren Treiber bereitgestellt, der den Intersect-Handler bereitstellt.
[in] PinId
Gibt den Offset (oder die ID) des Pins an, für den die Schnittmenge ausgeführt wird.
[in] DataRange
[in] MatchingDataRange
[in] DataBufferSize
Die Größe des Puffers, der vom Datenmember übergeben wird. Wenn dies nonzero ist, sollte der Überschneidende Handler versuchen, das Datenformat zurückzugeben, das sich aus einem übereinstimmenden Datenbereichspaar ergibt. Wenn dies 0 ist, sollte der Intersect-Handler die erforderliche Puffergröße in ReportedDataSize bereitstellen und STATUS_BUFFER_OVERFLOW zurückgeben.
[out, optional] Data
Ein optionaler Puffer zum Empfangen des Datenformats, das sich aus einem übereinstimmenden Datenbereichspaar ergibt. Dieser Member wird ignoriert, wenn DataBufferSize null ist.
[out] DataSize
Rückgabewert
Der Intersect-Handler sollte STATUS_SUCCESS zurückgeben, wenn die Datenbereiche kompatibel sind und genügend Pufferraum vorhanden ist, um das resultierende Format zurückzugeben.
Rückgabecode | Beschreibung |
---|---|
STATUS_NO_MATCH | Die Datenbereiche sind nicht kompatibel. |
STATUS_INTERNAL_ERROR | Es kam zu einem unerwarteten Formatgrößenkonflikt. |
STATUS_BUFFER_OVERFLOW | Der Intersect-Handler gibt die erforderliche Puffergröße über das ReportedDataSize-Element zurück. |
STATUS_BUFFER_TOO_SMALL | Der Überschneidende Handler wurde nicht mit einem Puffer bereitgestellt, der groß genug ist, um das resultierende Format zu halten. Der Intersect-Handler muss erneut aufgerufen werden, wobei dataBufferSize auf 0 festgelegt ist, um die erforderliche Puffergröße zu bestimmen. |
STATUS_INSUFFICIENT_RESOURCES | Fehler bei der internen Pufferzuweisung. |
Hinweise
Der AV/C-Intersect-Handler ist benutzerdefinierter, basierend auf dem obigen Funktionsprototyp.
Der Handler wird in Verbindung mit dem AVC_FUNCTION_GET_PIN_DESCRIPTOR-Funktionscode verwendet. Der Zweck des Handlers besteht darin, identische Pindatenformate abzugleichen und sie an den Aufrufer zurückzugeben.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Desktop |
Kopfzeile | avc.h (include Avc.h) |