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 da IOCTL_SCSI_MINIPORT è una struttura di dati definita dall'utente che contiene una struttura SRB_IO_CONTROL seguita da una struttura NVCACHE_REQUEST_BLOCK. Facoltativamente, i dati specifici della funzione potrebbero seguire la struttura NVCACHE_REQUEST_BLOCK.

L'interfaccia usata per la funzionalità di gestione della 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 corrispondenza di 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 facoltativo specifico della funzione 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_BLOCKe il buffer di dati specifico della funzione combinati. La presenza o l'assenza di un buffer di dati è indicata dal campo NVCACHE_REQUEST_BLOCK DataBufSize.

Buffer di output

Le strutture SRB_IO_CONTROLSRB_IO_CONTROL**]() e NVCACHE_REQUEST_BLOCK aggiornate, nonché il buffer di dati facoltativo specifico della funzione, vengono restituite al buffer in Irp->AssociatedIrp.SystemBuffer.

Lunghezza del buffer di output

Lunghezza del buffer.

Blocco di stato

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

Fabbisogno

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

Vedere anche

IOCTL_SCSI_MINIPORT

IoBuildDeviceIoControlRequest

NVCACHE_REQUEST_BLOCK

SRB_IO_CONTROL