Функция обратного вызова PFNKSDEVICEPNPSTART (ks.h)
Подпрограмма AVStrMiniDeviceStart для avStream minidriver вызывается при отправке запроса IRP_MN_START_DEVICE для указанного устройства.
Синтаксис
PFNKSDEVICEPNPSTART Pfnksdevicepnpstart;
NTSTATUS Pfnksdevicepnpstart(
[in] PKSDEVICE Device,
[in] PIRP Irp,
[in, optional] PCM_RESOURCE_LIST TranslatedResourceList,
[in, optional] PCM_RESOURCE_LIST UntranslatedResourceList
)
{...}
Параметры
[in] Device
Указатель на структуру KSDEVICE, описывающую устройство для запуска.
[in] Irp
Указатель на полученную IRP_MN_START_DEVICE .
[in, optional] TranslatedResourceList
Указатель на структуру CM_RESOURCE_LIST , содержащую переведенный список ресурсов, извлеченный из Irp. Равно NULL , если у устройства нет назначенных ресурсов. Необязательный элемент.
[in, optional] UntranslatedResourceList
Указатель на структуру CM_RESOURCE_LIST , содержащую список непереводимых ресурсов, извлеченный из Irp. Равно NULL , если член KSDEVICE этого списка параметров не имеет назначенных ресурсов. Необязательный элемент.
Возвращаемое значение
Должен возвращать STATUS_SUCCESS или код ошибки, возвращенный при попытке выполнить операцию. Запуск гарантированно будет успешным, если подпрограмма возвращает код состояния успешно. Не возвращайте STATUS_PENDING.
Комментарии
Укажите адрес этой подпрограммы в элементе Start структуры KSDEVICE_DISPATCH .
Как правило, эта подпрограмма используется мини-драйверами, которые должны оценивать назначенные ресурсы. Списки ресурсов извлекаются из IRP для удобства мини-накопителя. Мини-driver может проанализировать список ресурсов, чтобы найти прерывание, назначенное устройству, а также физический адрес ресурсов памяти.
Мини-накопители могут использовать эту подпрограмму для выделения контекстной информации для связи с устройством AVStream. (Это похоже на мини-диск в классе stream, использующий расширение устройства для хранения контекстных сведений.)
Обратите внимание, что STATUS_PENDING не является юридическим кодом возврата из этой функции. Чтобы выполнить действия в контексте рабочего потока до завершения действий запуска AVStream, таких как включение интерфейсов устройств, используйте диспетчеризацию после запуска. См. статью AVStrMiniDevicePostStart.
Эта подпрограмма является необязательной.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в операционных системах Microsoft Windows XP и более поздних версиях, а также DirectX 8.0 и более поздних версиях. |
Целевая платформа | Персональный компьютер |
Верхняя часть | ks.h (включая Ks.h) |