enumerazione SPB_TRANSFER_DIRECTION (spb.h)
L'enumerazione SPB_TRANSFER_DIRECTION descrive la direzione (lettura o scrittura) di un singolo trasferimento in una sequenza di trasferimento I/O .
Sintassi
typedef enum SPB_TRANSFER_DIRECTION {
SpbTransferDirectionNone,
SpbTransferDirectionFromDevice,
SpbTransferDirectionToDevice,
SpbTransferDirectionMax
} *PSPB_TRANSFER_DIRECTION;
Costanti
SpbTransferDirectionNone La direzione di trasferimento dei dati non è definita. |
SpbTransferDirectionFromDevice La direzione del trasferimento dei dati è dal dispositivo alla memoria di sistema (letta dal dispositivo). |
SpbTransferDirectionToDevice La direzione del trasferimento dei dati è dalla memoria di sistema al dispositivo (scrittura nel dispositivo). |
SpbTransferDirectionMax Riservato per l'uso dal sistema operativo. |
Osservazioni
I valori di questa enumerazione indicano le direzioni dei singoli trasferimenti in una sequenza di trasferimento di I/O. Il buffer di input per una richiesta di controllo I/O IOCTL_SPB_EXECUTE_SEQUENCE è una struttura SPB_TRANSFER_LIST che specifica un elenco di trasferimenti per la sequenza. Ogni trasferimento è descritto da una struttura SPB_TRANSFER_LIST_ENTRY che contiene i parametri di trasferimento, che includono la direzione di trasferimento. La direzione di trasferimento è SpbTransferDirectionFromDevice per un'operazione di lettura ed è SpbTransferDirectionToDevice per un'operazione di scrittura.
Il driver del controller SPB può chiamare il metodo SpbRequestGetParameters per recuperare un set di parametri specifici di SPB da una richiesta di I/O. Uno di questi parametri è un valore di enumerazione SPB_TRANSFER_DIRECTION che indica la direzione di trasferimento della richiesta di I/O precedente. Il driver del controller SPB può usare questo valore di direzione per determinare se la richiesta corrente di lettura o scrittura (IRP_MJ_READ o IRP_MJ_WRITE) richiede una modifica nella direzione di trasferimento sul bus.
Inoltre, SpbRequestGetParameters recupera un valore di posizione che indica la posizione relativa di una richiesta di lettura o scrittura nell'elenco dei trasferimenti per la sequenza di richieste multiple. Se una richiesta di lettura o una richiesta di scrittura ha un valore di posizione pari a SpbRequestSequencePositionSingle o SpbRequestSequencePositionFirst, il valore di direzione per il trasferimento precedente è SpbTransferDirectionNone (ovvero non esiste alcuna direzione di trasferimento precedente). Per una richiesta di lettura o scrittura con valore di posizione SpbRequestSequencePositionMiddle o SpbRequestSequencePositionLast, il valore di direzione indica se il trasferimento precedente è stato letto o scritto. Per una richiesta di sblocco (IOCTL_SPB_UNLOCK_CONTROLLER) con valore di posizione SpbRequestSequencePositionLast, il valore della direzione indica se l'ultimo trasferimento nella sequenza è stato letto o scritto.
Una richiesta di blocco (IOCTL_SPB_LOCK_CONTROLLER) non ha una direzione precedente. Analogamente, una richiesta di controllo I/O passata alla EvtSpbControllerIoOther funzione di callback non ha una direzione precedente. Per una di queste richieste, il valore di direzione precedente recuperato da SpbRequestGetParameters è SpbTransferDirectionNone.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Supportato a partire da Windows 8. |
intestazione | spb.h |