Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Каждый указатель потока поддерживает состояние блокировки: заблокировано или разблокировано.
Указатели потоков, находящиеся в заблокированном состоянии, гарантированно указывают на данные в очереди. Кадры данных, на которые указывают заблокированные указатели потока, не могут быть отменены. Таким образом, минидрайверы должны свести к минимуму время, которое они затрачивают на удержание заблокированных указателей потоков.
Разблокированный указатель потока не гарантирует наличие ссылки на данный кадр в очереди. Удерживая разблокированный указатель потока, минидрайвер может сохранить указатель данных, но при этом позволить отменить кадр.
Можно получить доступ к данным, на которые указывает разблокированный указатель потока. Если подпрограмма CancelCallback , предоставляемая в KsStreamPointerClone вызывает KsStreamPointerDelete, необходимо синхронизировать CancelCallback и доступ к данным, которые он выполняет. Минидрайвер должен убедиться, что подпрограмма обратного вызова отмены не удаляет указатель потока, пока другой поток его использует.
Если функция обратного вызова отмены не вызывает KsStreamPointerDelete, синхронизация может не потребоваться.
Чтобы заблокировать указатель потока, вызовите KsStreamPointerLock. Чтобы разблокировать указатель потока, вызовите KsStreamPointerUnlock.
При отмене IRP AVStream вызывает обратные вызовы отмены для всех разблокированных указателей потоков, указывающих на кадры в IRP.
Разблокируйте ведущие и замыкающие указатели потока только в том случае, если они не используются.