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

   
Client minimo supportato Supportato a partire da Windows 8.
Intestazione spb.h

Vedi anche