Функция VideoPortStartDma (video.h)
Функция VideoPortStartDma подготавливает систему к операции DMA. Как только соответствующий ресурс будет доступен, VideoPortStartDma создает список точечной и сборной, инициализирует системные ресурсы и вызывает предоставленную драйвером видео минипорта подпрограмму HwVidExecuteDma для выполнения операции DMA.
Синтаксис
VIDEOPORT_DEPRECATED VIDEOPORT_API VP_STATUS VideoPortStartDma(
[in] IN PVOID HwDeviceExtension,
[in] IN PVP_DMA_ADAPTER VpDmaAdapter,
[in] IN PVOID Mdl,
[in] IN ULONG Offset,
[in, out] IN OUT PULONG pLength,
[in] IN PEXECUTE_DMA ExecuteDmaRoutine,
[in] IN PVOID Context,
[in] IN BOOLEAN WriteToDevice
);
Параметры
[in] HwDeviceExtension
Указатель на расширение устройства драйвера мини-порта.
[in] VpDmaAdapter
Указатель на структуру VP_DMA_ADAPTER, представляющую адаптер master шины. Эта структура возвращается из вызова VideoPortGetDmaAdapter.
[in] Mdl
Указатель на MDL , описывающий буфер. Этот указатель возвращается при вызове функции VideoPortLockBuffer драйвера видеопорта.
[in] Offset
Указывает смещение байтов в буфере, с которого начинается операция DMA. Параметр Mdl описывает этот буфер.
[in, out] pLength
Указатель на переменную, которая задает запрошенный размер передачи в байтах и получает фактический размер для передачи. Переменная будет обновлена при возникновении любого из следующих событий: VideoPortStartDma возвращает или вызывается HwVidExecuteDma . Таким образом, эту переменную можно считывать из HwVidExecuteDma еще до возврата VideoPortStartDma .
[in] ExecuteDmaRoutine
Указатель на подпрограмму обратного вызова HwVidExecuteDma , предоставляемую драйвером минипорта. VideoPortStartDma вызывает эту подпрограмму для программирования аппаратных регистров и запуска фактической операции DMA.
[in] Context
Указатель на определяемый драйвером контекст для передачи в подпрограмму обратного вызова HwVidExecuteDma драйвера мини-порта. Так как подпрограмма обратного вызова HwVidExecuteDma выполняется в DISPATCH_LEVEL, данные, на которые указывает Контекст , должны находиться в памяти без памяти.
[in] WriteToDevice
Указывает направление передачи DMA. Значение TRUE обозначает передачу из буфера в устройство, а значение FALSE — передачу из устройства в буфер.
Возвращаемое значение
VideoPortStartDma возвращает один из следующих кодов состояния:
Код возврата | Описание |
---|---|
NO_ERROR | Операция была успешно проведена. |
ERROR_NOT_ENOUGH_MEMORY | Для этой операции недостаточно системных ресурсов. |
Комментарии
Чтобы подготовиться к операции передачи DMA, VideoPortStartDma:
- Очищает область памяти в кэшах процессора узла.
- Создает точечный или собирающийся список.
- Вызывает обратный вызов HwVidExecuteDma водителя видео минипорта.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в Windows XP и более поздних версиях операционных систем Windows. |
Целевая платформа | Персональный компьютер |
Верхняя часть | video.h (включить Video.h) |
Библиотека | Videoprt.lib |
DLL | Videoprt.sys |
IRQL | <=DISPATCH_LEVEL |