Condividi tramite


IOCTL_SCSI_MINIPORT_NVCACHE IOCTL (ntddscsi.h)

Le operazioni di gestione della cache NV definite qui possono essere richiamate dal codice dell'applicazione in modalità utente in esecuzione con privilegi di amministratore, usando DeviceIoControl e il codice di controllo IOCTL_SCSI_MINIPORT . In alternativa, il chiamante può essere codice driver in modalità kernel usando IoBuildDeviceIoControlRequest e il codice di controllo IOCTL_SCSI_MINIPORT.

La richiesta di funzione di gestione cache NV viene specificata in un campo nella struttura NVCACHE_REQUEST_BLOCK . L'input per IOCTL_SCSI_MINIPORT è una struttura di dati definita dall'utente che contiene una struttura SRB_IO_CONTROL seguita da una struttura NVCACHE_REQUEST_BLOCK . I dati specifici della funzione aggiuntivi potrebbero seguire facoltativamente la struttura NVCACHE_REQUEST_BLOCK .

L'interfaccia usata per la funzionalità di gestione cache NV è costituita da due livelli. Il primo livello è l'interfaccia tra un chiamante e il driver di porta, definito da IOCTL_SCSI_MINIPORT. Il secondo livello è l'interfaccia tra il chiamante e il dispositivo, definito dalla specifica ATA8-ACS e IOCTL_SCSI_MINIPORT_NVCACHE. L'API per il codice dell'applicazione in modalità utente è l'interfaccia DeviceIoControl. L'API per il codice driver in modalità kernel è l'interfaccia IoBuildDeviceIoControlRequest , che usa IOCTL_SCSI_MINIPORT.

Codice principale

IRP_MJ_DEVICE_CONTROL

Buffer di input

Il buffer in Irp-AssociatedIrp.SystemBuffer> contiene una struttura SRB_IO_CONTROL con il campo Signature impostato su "HYBRDISK" e il campo ControlCode impostato su IOCTL_SCSI_MINIPORT_NVCACHE. La struttura NVCACHE_REQUEST_BLOCK segue immediatamente la struttura SRB_IO_CONTROL . Qualsiasi buffer di dati specifico della funzione facoltativo segue immediatamente la struttura NVCACHE_REQUEST_BLOCK .

Lunghezza del buffer di input

Parameters.DeviceIoControl.InputBufferLength indica le dimensioni, in byte, di tutti i dati di input: SRB_IO_CONTROL, NVCACHE_REQUEST_BLOCK e buffer dati specifici della funzione combinati. La presenza o l'assenza di un buffer di dati è indicata dal campo NVCACHE_REQUEST_BLOCK**DataBufSize .

Buffer di output

Sono stati aggiornati SRB_IO_CONTROL SRB_IO_CONTROL**]() e NVCACHE_REQUEST_BLOCK strutture, nonché il buffer di dati specifico della funzione facoltativo, restituito al buffer in Irp-AssociatedIrp.SystemBuffer>.

Lunghezza del buffer di output

Lunghezza del buffer.

Blocco dello stato

Il campo Informazioni contiene il numero di byte restituiti nel buffer di output. Il campo Stato indica i risultati dell'operazione.

Requisiti

Requisito Valore
Intestazione ntddscsi.h (include Ntddscsi.h)

Vedi anche

IOCTL_SCSI_MINIPORT

IoBuildDeviceIoControlRequest

NVCACHE_REQUEST_BLOCK

SRB_IO_CONTROL