Поделиться через


структура SERCX2_CUSTOM_RECEIVE_CONFIG (sercx.h)

Структура SERCX2_CUSTOM_RECEIVE_CONFIG содержит сведения, которые версии 2 расширения последовательной платформы (SerCx2) используются для настройки нового объекта пользовательского получения.

Синтаксис

typedef struct _SERCX2_CUSTOM_RECEIVE_CONFIG {
  ULONG   Size;
  ULONG   Alignment;
  ULONG   MinimumTransactionLength;
  ULONG   MaximumTransactionLength;
  ULONG   MinimumTransferUnit;
  BOOLEAN Exclusive;
} SERCX2_CUSTOM_RECEIVE_CONFIG, *PSERCX2_CUSTOM_RECEIVE_CONFIG;

Члены

Size

Размер этой структуры в байтах. Метод SerCx2CustomReceiveCreate использует этот элемент для определения версии структуры, которую использует вызывающий объект. Размер этой структуры может измениться в будущих версиях файла заголовка Sercx.h.

Alignment

Требование выравнивания данных. Указывает, как начальный адрес передачи в пользовательской транзакции получения должен быть выровнен в памяти. Задайте этому элементу соответствующую константу FILE_XXX_ALIGNMENT в файле заголовка Wdm.h. Например, FILE_WORD_ALIGNMENT указывает, что начальный адрес должен быть выровнен по двухбайтовой границе в памяти, FILE_LONG_ALIGNMENT указывает, что адрес должен быть выровнен с четырехбайтовой границей и т. д.

MinimumTransactionLength

Минимальная длина передачи данных в байтах в пользовательской транзакции получения. Если длина буфера в запросе чтения (IRP_MJ_READ) меньше этой минимальной длины, SerCx2 использует запрограммированный ввод-вывод (PIO) для транзакции.

MaximumTransactionLength

Максимальная длина передачи данных в байтах в пользовательской транзакции получения. Если размер буфера в запросе чтения превышает эту максимальную длину, SerCx2 использует несколько пользовательских транзакций получения для обработки запроса и ограничивает каждую транзакцию максимальной длиной.

MinimumTransferUnit

Минимальная единица передачи. Число байтов, указанных элементом в списке точечной или сборной, должно быть целым числом минимальной единицы передачи. Чтобы указать, что необходимо использовать минимальную единицу передачи по умолчанию, установите для этого элемента значение нулю. Дополнительные сведения о минимальной единице передачи по умолчанию см. в DMA_ADAPTER_INFO_V1.

Exclusive

Следует ли использовать транзакции пользовательского получения исключительно для обработки запросов на запись (IRP_MJ_READ) . Задайте значение TRUE, чтобы указать, что запросы на чтение должны использовать только транзакции с пользовательским получением. Установите значение FALSE, чтобы указать, что запросы на чтение могут использовать сочетание транзакций с пользовательским получением и транзакций получения пино-кода.

Присвойте этому элементу значение TRUE только в том случае, если минимальная единица передачи для пользовательских транзакций составляет один байт, минимальная длина транзакции составляет один байт, а буфер чтения для транзакции может начинаться на любой границе байтов в памяти.

Если монопольнаяtrue, MinimumTransferUnitOverride, выравниванияи элементов MinimumTransactionLength должно быть равно нулю.

Независимо от значения этого члена, транзакции piO-receive используются для сохранения любых непрочитанных данных в получающем FIFO, прежде чем последовательный контроллер выходит из состояния питания устройства D0, чтобы войти в состояние низкой мощности.

Замечания

Метод SerCx2CustomReceiveCreate принимает указатель на структуру SERCX2_CUSTOM_RECEIVE_CONFIG в качестве входного параметра. Перед вызовом SerCx2CustomReceiveCreateвызовите функцию SERCX2_CUSTOM_RECEIVE_CONFIG_INIT для инициализации этой структуры.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Поддерживается начиная с Windows 8.1.
заголовка sercx.h

См. также

DMA_ADAPTER_INFO_V1

IRP_MJ_READ

SERCX2_CUSTOM_RECEIVE_CONFIG_INIT

SerCx2CustomReceiveCreate