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
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) |