SERCX2_SYSTEM_DMA_RECEIVE_CONFIG 구조체(sercx.h)
SERCX2_SYSTEM_DMA_RECEIVE_CONFIG 구조에는 SerCx2(직렬 프레임워크 확장) 버전 2가 새 시스템 DMA 수신 개체를 구성하는 데 사용하는 정보가 포함되어 있습니다.
통사론
typedef struct _SERCX2_SYSTEM_DMA_RECEIVE_CONFIG {
ULONG Size;
size_t MaximumTransferLength;
size_t MinimumTransactionLength;
ULONG DmaAlignment;
ULONG MaximumScatterGatherFragments;
DMA_WIDTH DmaWidth;
PHYSICAL_ADDRESS DeviceAddress;
PCM_PARTIAL_RESOURCE_DESCRIPTOR DmaDescriptor;
ULONG MinimumTransferUnitOverride;
BOOLEAN Exclusive;
PFN_SERCX2_SYSTEM_DMA_RECEIVE_INITIALIZE_TRANSACTION EvtSerCx2SystemDmaReceiveInitializeTransaction;
PFN_SERCX2_SYSTEM_DMA_RECEIVE_CLEANUP_TRANSACTION EvtSerCx2SystemDmaReceiveCleanupTransaction;
PFN_SERCX2_SYSTEM_DMA_RECEIVE_CONFIGURE_DMA_CHANNEL EvtSerCx2SystemDmaReceiveConfigureDmaChannel;
PFN_SERCX2_SYSTEM_DMA_RECEIVE_ENABLE_NEW_DATA_NOTIFICATION EvtSerCx2SystemDmaReceiveEnableNewDataNotification;
PFN_SERCX2_SYSTEM_DMA_RECEIVE_CANCEL_NEW_DATA_NOTIFICATION EvtSerCx2SystemDmaReceiveCancelNewDataNotification;
} SERCX2_SYSTEM_DMA_RECEIVE_CONFIG, *PSERCX2_SYSTEM_DMA_RECEIVE_CONFIG;
회원
Size
이 구조체의 크기(바이트)입니다. SerCx2SystemDmaReceiveCreate 메서드는 이 멤버를 사용하여 호출자가 사용 중인 구조의 버전을 결정합니다. 이 구조체의 크기는 이후 버전의 Sercx.h 헤더 파일에서 변경될 수 있습니다.
MaximumTransferLength
직렬 컨트롤러가 단일 시스템 DMA 전송에서 처리할 수 있는 기본 최대 크기(바이트)입니다. 읽기(IRP_MJ_READ) 요청의 버퍼 크기가 이 최대 크기보다 크면 SerCx2는 여러 DMA 전송을 사용하여 요청을 처리하고 각 전송을 최대 길이로 제한합니다.
MinimumTransactionLength
시스템 DMA 수신 트랜잭션의 최소 길이(바이트)입니다. 읽기 요청의 버퍼 길이가 이 최소 길이보다 작은 경우 SerCx2는 트랜잭션에 프로그래밍된 I/O(I/O)를 사용합니다.
DmaAlignment
DMA 맞춤 요구 사항입니다. 시스템 DMA 수신 트랜잭션에서 전송의 시작 주소를 메모리에 맞추는 방법을 지정합니다. 이 멤버를 Wdm.h 헤더 파일의 적절한 FILE_XXX_ALIGNMENT 상수로 설정합니다. 예를 들어 FILE_WORD_ALIGNMENT 시작 DMA 주소가 메모리의 2 바이트 경계에 정렬되어야 하며, FILE_LONG_ALIGNMENT 주소가 4 바이트 경계에 정렬되어야 임을 나타냅니다. SerCx2는 FILE_BYTE_ALIGNMENT 지원하지 않습니다. 시스템 DMA 어댑터의 최소 MTU(전송 단위)는 필요한 맞춤보다 크거나 같아야 합니다. 예를 들어 MTU가 4바이트인 경우 DmaAlignment FILE_LONG_ALIGNMENT 이상이어야 합니다.
MaximumScatterGatherFragments
시스템 DMA 수신 트랜잭션의 DMA 전송에 대한 분산/수집 목록에 지정할 수 있는 버퍼 조각의 최대 수입니다.
DmaWidth
DeviceAddress지정한 주소에서
DeviceAddress
DMA 컨트롤러가 전송하는 변환된 주소입니다. 자세한 내용은 WDF_DMA_SYSTEM_PROFILE_CONFIGDeviceAddress 멤버에 대한 설명을 참조하세요.
DmaDescriptor
수신 트랜잭션에 사용할 시스템 DMA 리소스를 설명하는 CM_PARTIAL_RESOURCE_DESCRIPTOR 구조체에 대한 포인터입니다. 직렬 컨트롤러 드라이버는 직렬 컨트롤러를 시작하는 EvtDevicePrepareHardware 콜백에서 수신하는 원시 리소스 목록에서 이 구조를 가져옵니다.
MinimumTransferUnitOverride
기본 최소 전송 단위 대신 사용할 재정의 값입니다. 분산/수집 목록의 요소에 의해 지정된 바이트 수는 최소 전송 단위의 정수 배수여야 합니다. 값이 0이면 기본 최소 전송 단위를 사용해야 합니다. 자세한 내용은 DMA_ADAPTER_INFO_V1MinimumTransferUnit 멤버에 대한 설명을 참조하세요.
Exclusive
시스템 DMA 수신 트랜잭션을 단독으로 사용하여 쓰기(IRP_MJ_READ) 요청을 처리할지 여부입니다. 읽기 요청이 시스템 DMA 수신 트랜잭션만 사용해야 함을 나타내려면 TRUE 설정합니다. 읽기 요청이 시스템 DMA 수신 트랜잭션과 PIO 수신 트랜잭션의 조합을 사용할 수 있음을 나타내려면 FALSE
시스템 DMA 수신 트랜잭션의 최소 전송 단위가 1 바이트이고, 최소 트랜잭션 길이가 1 바이트이고, 트랜잭션에 대한 읽기 버퍼가 메모리의 바이트 경계에서 시작될 수 있는 경우에만 이 멤버를 TRUE 설정합니다.
이 멤버의 값에 관계없이 PIO 수신 트랜잭션은 직렬 컨트롤러가 D0 디바이스 전원 상태를 종료하여 저전력 상태로 들어가기 전에 수신 FIFO에 읽지 않은 데이터를 저장하는 데 사용됩니다.
EvtSerCx2SystemDmaReceiveInitializeTransaction
드라이버 구현 EvtSerCx2SystemDmaReceiveInitializeTransaction 이벤트 콜백 함수에 대한 포인터입니다. 이 멤버는 선택 사항이며 드라이버가 함수를 구현하지 않음을 나타내기 위해 NULL
EvtSerCx2SystemDmaReceiveCleanupTransaction
드라이버 구현 EvtSerCx2SystemDmaReceiveCleanupTransaction 이벤트 콜백 함수에 대한 포인터입니다. 이 멤버는 선택 사항이며 드라이버가 함수를 구현하지 않음을 나타내기 위해 NULL
EvtSerCx2SystemDmaReceiveConfigureDmaChannel
드라이버 구현 EvtSerCx2SystemDmaReceiveConfigureDmaChannel 이벤트 콜백 함수에 대한 포인터입니다. 이 멤버는 선택 사항이며 드라이버가 함수를 구현하지 않음을 나타내기 위해 NULL
EvtSerCx2SystemDmaReceiveEnableNewDataNotification
드라이버 구현 EvtSerCx2SystemDmaReceiveEnableNewDataNotification 이벤트 콜백 함수에 대한 포인터입니다. 이 멤버는 선택 사항이며 드라이버가 함수를 구현하지 않음을 나타내기 위해 NULL
EvtSerCx2SystemDmaReceiveCancelNewDataNotification
드라이버 구현 EvtSerCx2SystemDmaReceiveCancelNewDataNotification 이벤트 콜백 함수에 대한 포인터입니다. 이 멤버는 선택 사항이며 드라이버가 함수를 구현하지 않음을 나타내기 위해 NULL
발언
SerCx2SystemDmaReceiveCreate 메서드는 SERCX2_SYSTEM_DMA_RECEIVE_CONFIG 구조체에 대한 포인터를 입력 매개 변수로 허용합니다. SerCx2SystemDmaReceiveCreate호출하기 전에 SERCX2_SYSTEM_DMA_RECEIVE_CONFIG_INIT 또는 SERCX2_SYSTEM_DMA_RECEIVE_CONFIG_INIT_NEW_DATA_NOTIFICATION 함수를 호출하여 이 구조를 초기화합니다.
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 8.1 시작 지원. |
헤더 | sercx.h |
참고 항목
CM_PARTIAL_RESOURCE_DESCRIPTOR
EvtSerCx2SystemDmaReceiveCancelNewDataNotification
EvtSerCx2SystemDmaReceiveCleanupTransaction
EvtSerCx2SystemDmaReceiveConfigureDmaChannel
EvtSerCx2SystemDmaReceiveEnableNewDataNotification
EvtSerCx2SystemDmaReceiveInitializeTransaction
SERCX2_SYSTEM_DMA_RECEIVE_CONFIG_INIT