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)

Weitere Informationen