struttura SERCX2_SYSTEM_DMA_RECEIVE_CONFIG (sercx.h)
La struttura SERCX2_SYSTEM_DMA_RECEIVE_CONFIG contiene informazioni usate dalla versione 2 dell'estensione del framework seriale (SerCx2) per configurare un nuovo oggetto system-DMA-receive.
Sintassi
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;
Membri
Size
Dimensione, in byte, di questa struttura. Il metodo SerCx2SystemDmaReceiveCreate utilizza questo membro per determinare la versione della struttura utilizzata dal chiamante. Le dimensioni di questa struttura potrebbero cambiare nelle versioni future del file di intestazione Sercx.h.
MaximumTransferLength
Dimensioni massime predefinite, in byte, che il controller seriale può gestire in un singolo trasferimento DMA di sistema. Se la dimensione del buffer nella richiesta di lettura (IRP_MJ_READ) è maggiore di questa dimensione massima, SerCx2 usa più trasferimenti DMA per gestire la richiesta e limita ogni trasferimento alla lunghezza massima.
MinimumTransactionLength
Lunghezza minima, in byte, di una transazione di ricezione DMA di sistema. Se la lunghezza del buffer in una richiesta di lettura è inferiore a questa lunghezza minima, SerCx2 usa le operazioni di I/O programmate per la transazione.
DmaAlignment
Requisito di allineamento DMA. Specifica il modo in cui l'indirizzo iniziale di un trasferimento in una transazione di ricezione DMA di sistema deve essere allineato in memoria. Impostare questo membro sulla costante_ALIGNMENT FILE_
MaximumScatterGatherFragments
Numero massimo di frammenti di buffer che possono essere specificati nell'elenco a dispersione/raccolta per un trasferimento DMA in una transazione di ricezione DMA di sistema.
DmaWidth
Larghezza del registro dati nell'indirizzo specificato da DeviceAddress. I valori possibili sono Width8Bits, Width16Bits, Width32Bitse Width64Bits.
DeviceAddress
Indirizzo convertito da cui il controller DMA trasferisce. Per altre informazioni, vedere la descrizione del membro DeviceAddress
DmaDescriptor
Puntatore alla struttura CM_PARTIAL_RESOURCE_DESCRIPTOR che descrive la risorsa DMA di sistema da usare per le transazioni di ricezione. Il driver del controller seriale ottiene questa struttura dall'elenco di risorse non elaborate che riceve nel EvtDevicePrepareHardware callback che avvia il controller seriale.
MinimumTransferUnitOverride
Valore di override da usare al posto dell'unità di trasferimento minima predefinita. Il numero di byte specificato da un elemento in un elenco a dispersione/raccolta deve essere un multiplo intero dell'unità di trasferimento minima. Il valore zero indica che deve essere usata l'unità di trasferimento minima predefinita. Per altre informazioni, vedere la descrizione del membro minimumTransferUnit
Exclusive
Indica se usare transazioni di ricezione DMA di sistema esclusivamente per gestire le richieste di scrittura (IRP_MJ_READ). Impostare su TRUE per indicare che le richieste di lettura devono usare esclusivamente transazioni di ricezione DMA di sistema. Impostare su false per indicare che le richieste di lettura possono usare una combinazione di transazioni di ricezione DMA di sistema e transazioni di ricezione PIO.
Impostare questo membro su TRUE solo se l'unità di trasferimento minima per le transazioni system-DMA-receive è di un byte, la lunghezza minima della transazione è di un byte e il buffer di lettura per la transazione può iniziare su qualsiasi limite di byte in memoria.
Se
Indipendentemente dal valore di questo membro, le transazioni di ricezione PIO vengono usate per salvare i dati non letti nella ricezione FIFO prima che il controller seriale esca dallo stato di alimentazione del dispositivo D0 per entrare in uno stato a basso consumo.
EvtSerCx2SystemDmaReceiveInitializeTransaction
Puntatore al driver implementato EvtSerCx2SystemDmaReceiveInitializeTransaction funzione di callback degli eventi. Questo membro è facoltativo e può essere impostato su NULL per indicare che il driver non implementa la funzione.
EvtSerCx2SystemDmaReceiveCleanupTransaction
Puntatore al driver implementato EvtSerCx2SystemDmaReceiveCleanupTransaction funzione di callback degli eventi. Questo membro è facoltativo e può essere impostato su NULL per indicare che il driver non implementa la funzione.
EvtSerCx2SystemDmaReceiveConfigureDmaChannel
Puntatore alla funzione di callback degli eventi implementata dal driver EvtSerCx2SystemDmaReceiveConfigureDmaChannel. Questo membro è facoltativo e può essere impostato su NULL per indicare che il driver non implementa la funzione.
EvtSerCx2SystemDmaReceiveEnableNewDataNotification
Puntatore al driver implementato EvtSerCx2SystemDmaReceiveEnableNewDataNotification funzione di callback degli eventi. Questo membro è facoltativo e può essere impostato su NULL per indicare che il driver non implementa la funzione. Tuttavia, un driver che implementa questa funzione deve implementare anche una funzione EvtSerCx2SystemDmaReceiveCancelNewDataNotification.
EvtSerCx2SystemDmaReceiveCancelNewDataNotification
Puntatore al driver implementato EvtSerCx2SystemDmaReceiveCancelNewDataNotification funzione di callback degli eventi. Questo membro è facoltativo e può essere impostato su NULL per indicare che il driver non implementa la funzione. Tuttavia, un driver che implementa questa funzione deve implementare anche una funzione EvtSerCx2SystemDmaReceiveEnableNewDataNotification.
Osservazioni
Il metodo SerCx2SystemDmaReceiveCreate accetta un puntatore a una struttura SERCX2_SYSTEM_DMA_RECEIVE_CONFIG come parametro di input. Prima di chiamare SerCx2SystemDmaReceiveCreate, chiamare la funzione SERCX2_SYSTEM_DMA_RECEIVE_CONFIG_INIT o SERCX2_SYSTEM_DMA_RECEIVE_CONFIG_INIT_NEW_DATA_NOTIFICATION per inizializzare questa struttura.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Supportato a partire da Windows 8.1. |
intestazione |
sercx.h |
Vedere anche
CM_PARTIAL_RESOURCE_DESCRIPTOR
EvtSerCx2SystemDmaReceiveCancelNewDataNotification
EvtSerCx2SystemDmaReceiveCleanupTransaction
EvtSerCx2SystemDmaReceiveConfigureDmaChannel
EvtSerCx2SystemDmaReceiveEnableNewDataNotification
EvtSerCx2SystemDmaReceiveInitializeTransaction
SERCX2_SYSTEM_DMA_RECEIVE_CONFIG_INIT