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 di 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 (lettura dal dispositivo). |
SpbTransferDirectionToDevice La direzione del trasferimento dei dati è dalla memoria di sistema al dispositivo (scrittura nel dispositivo). |
SpbTransferDirectionMax Riservato per l'uso da parte del sistema operativo. |
Commenti
I valori in 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 viene 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 del bus.
SpbRequestGetParameters recupera inoltre un valore di posizione che indica la posizione relativa di una richiesta di lettura o scrittura nell'elenco di trasferimenti per la sequenza di richieste multiple. Se una richiesta di lettura o una richiesta di scrittura ha un valore di posizione SpbRequestSequencePositionSingle o SpbRequestSequencePositionFirst, il valore della direzione per il trasferimento precedente è SpbTransferDirectionNone , ovvero non esiste alcuna direzione di trasferimento precedente. Per una richiesta di lettura o scrittura con un valore di posizione SpbRequestSequencePositionMiddle o SpbRequestSequencePositionLast, il valore di direzione indica se il trasferimento precedente è una lettura o una scrittura. Per una richiesta di sblocco (IOCTL_SPB_UNLOCK_CONTROLLER), che ha un valore di posizione SpbRequestSequencePositionLast, il valore di 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 funzione di callback EvtSpbControllerIoOther non ha una direzione precedente. Per una di queste richieste, il valore della direzione precedente recuperato da SpbRequestGetParameters è SpbTransferDirectionNone.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Supportato a partire da Windows 8. |
Intestazione | spb.h |