AV/C 交集處理程式會判斷數據範圍是否相容。 這是以下列原型為基礎的使用者定義函式:
語法
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
);
參數
[in] Context
交集處理程式預期的選擇性值。 這個值是由子單位驅動程式提供(如果子單位驅動程式提供交集處理程式),或由提供交集處理程式的較低驅動程式所提供。
[in] PinId
指定要完成交集之針腳的位移(或標識符)。
[in] DataRange
[in] MatchingDataRange
[in] DataBufferSize
Data 成員傳遞的緩衝區大小。 如果這是非零值,則交集處理程式應該嘗試傳回由相符的數據範圍配對所產生的數據格式。 如果這是零,則交集處理程式應該在 ReportedDataSize中提供所需的緩衝區大小,並傳回STATUS_BUFFER_OVERFLOW。
[out, optional] Data
選擇性緩衝區,可接收由相符的數據範圍配對所產生的數據格式。 如果 DataBufferSize 為零,則會忽略此成員。
[out] DataSize
傳回值
如果數據範圍相容,交集處理程式應該會傳回STATUS_SUCCESS,而且有足夠的緩衝區空間可傳回產生的格式。
| 傳回碼 | 描述 |
|---|---|
| STATUS_NO_MATCH | 數據範圍不相容。 |
| STATUS_INTERNAL_ERROR | 格式大小不符。 |
| STATUS_BUFFER_OVERFLOW | 交集處理程式會透過 ReportedDataSize 成員傳回所需的緩衝區大小。 |
| STATUS_BUFFER_TOO_SMALL | 交集處理程式未提供足以保存所產生格式的緩衝區。 必須再次呼叫交集處理程式,並將 DataBufferSize 設定為零,以判斷所需的緩衝區大小。 |
| STATUS_INSUFFICIENT_RESOURCES | 內部緩衝區配置失敗。 |
言論
AV/C 交集處理程式是以上述函式原型為基礎的用戶定義。
處理程式會與 AVC_FUNCTION_GET_PIN_DESCRIPTOR 函式程式代碼搭配使用。 處理程式的目的是要符合相同的針腳數據格式,並將其傳回給呼叫端。
要求
| 要求 | 價值 |
|---|---|
| 目標平臺 | 桌面 |
| 標頭 | avc.h (包括 Avc.h) |
另請參閱
- AVC_FUNCTION_GET_PIN_DESCRIPTOR
- AVC_PIN_DESCRIPTOR
- AVStrMiniIntersectHandlerEx
- 在AVStream 中 DataRange 交集