Функция KsStreamPointerClone (ks.h)

Функция KsStreamPointerClone создает клон заданного указателя потока.

Синтаксис

KSDDKAPI NTSTATUS KsStreamPointerClone(
  [in]           PKSSTREAM_POINTER  StreamPointer,
  [in, optional] PFNKSSTREAMPOINTER CancelCallback,
  [in]           ULONG              ContextSize,
  [out]          PKSSTREAM_POINTER  *CloneStreamPointer
);

Параметры

[in] StreamPointer

Указатель на структуру KSSTREAM_POINTER , представляющую клонированного указателя потока.

[in, optional] CancelCallback

Необязательный элемент. Указатель на подпрограмму AVStrMiniCancelCallback , предоставляемую мини-накопителем. AVStream вызывает эту подпрограмму, если IRP, связанный с CloneStreamPointer , отменен.

[in] ContextSize

Этот параметр указывает, сколько байтов информации о контексте мини-накопителя должен иметь результирующий указатель потока клонирования. Если значение не равно нулям, запрошенное количество байтов выделяется сразу после возвращаемого указателя потока, а поле Contextобъекта CloneStreamPointer указывает на выделенную память.

[out] CloneStreamPointer

Указатель на KSSTREAM_POINTER структуру . После успешного завершения операции клонирования CloneStreamPointer содержит указатель на адрес клонированного указателя потока.

Возвращаемое значение

KsStreamPointerClone возвращает либо STATUS_SUCCESS, указывая, что операция клонирования завершена нормально, либо соответствующий код ошибки.

Комментарии

Результирующий клон изначально относится к тому же кадру данных, что и исходный указатель потока, и находится в том же состоянии (заблокирован или разблокирован). Добавление указателя потока клона, ссылающегося на кадр данных, увеличивает количество ссылок для этого кадра. Обратите внимание, что рассматриваемый кадр и, следовательно, IRP, к которому принадлежит кадр, не завершается до тех пор, пока число ссылок не упадет до нуля.

Чтобы свести к минимуму вызовы выделения, можно использовать параметр ContextSize этого вызова.

См. также Stream указатели.

Требования

Требование Значение
Минимальная версия клиента Доступно в операционных системах Microsoft Windows XP и более поздних версиях, а также DirectX 8.0 и более поздних версиях.
Целевая платформа Универсальное
Верхняя часть ks.h (включая Ks.h)
Библиотека Ks.lib
IRQL <=DISPATCH_LEVEL

См. также раздел

KsStreamPointerAdvance

KsStreamPointerAdvanceOffsets

KsStreamPointerAdvanceOffsetsAndUnlock

KsStreamPointerDelete

KsStreamPointerLock

KsStreamPointerUnlock