IOCTL_SCSI_MINIPORT_NVCACHE IOCTL (ntddscsi.h)
Die hier definierten NV-Cacheverwaltungsvorgänge können von Anwendungscode im Benutzermodus aufgerufen werden, der mit Administratorrechten ausgeführt wird, mithilfe von DeviceIoControl und dem IOCTL_SCSI_MINIPORT-Steuerelementcode. Oder der Aufrufer kann Kernelmodustreibercode mit IoBuildDeviceIoControlRequest und dem IOCTL_SCSI_MINIPORT Steuerelementcode sein.
Die NV-Cacheverwaltungsfunktionsanforderung wird in einem Feld in der NVCACHE_REQUEST_BLOCK-Struktur angegeben. Die Eingabe für IOCTL_SCSI_MINIPORT ist eine benutzerdefinierte Datenstruktur, die eine SRB_IO_CONTROL Struktur gefolgt von einer NVCACHE_REQUEST_BLOCK Struktur enthält. Zusätzliche funktionsspezifische Daten können optional der NVCACHE_REQUEST_BLOCK Struktur folgen.
Die Schnittstelle, die für die NV-Cacheverwaltungsfunktion verwendet wird, besteht aus zwei Ebenen. Die erste Ebene ist die Schnittstelle zwischen einem Aufrufer und dem Porttreiber, die durch IOCTL_SCSI_MINIPORTdefiniert wird. Die zweite Ebene ist die Schnittstelle zwischen dem Aufrufer und dem Gerät, die durch die ATA8-ACS Spezifikation und IOCTL_SCSI_MINIPORT_NVCACHE definiert wird. Die API für den Anwendungscode für den Benutzermodus ist die DeviceIoControl-Schnittstelle. Die API für Kernelmodustreibercode ist die IoBuildDeviceIoControlRequest Schnittstelle, die IOCTL_SCSI_MINIPORTverwendet.
Hauptcode
Eingabepuffer
Der Puffer bei Irp->AssociatedIrp.SystemBuffer enthält eine SRB_IO_CONTROL Struktur, wobei das Feld "Signature" auf "HYBRDISK" festgelegt ist, und das ControlCode-Feld auf IOCTL_SCSI_MINIPORT_NVCACHE festgelegt ist. Die NVCACHE_REQUEST_BLOCK Struktur folgt unmittelbar der SRB_IO_CONTROL Struktur. Jeder optionale funktionsspezifische Datenpuffer folgt unmittelbar der NVCACHE_REQUEST_BLOCK Struktur.
Eingabepufferlänge
Parameters.DeviceIoControl.InputBufferLength gibt die Größe aller Eingabedaten in Bytes an: SRB_IO_CONTROL, NVCACHE_REQUEST_BLOCKund funktionsspezifischen Datenpuffer kombiniert. Das Vorhandensein oder Fehlen eines Datenpuffers wird durch das feld NVCACHE_REQUEST_BLOCK****DataBufSize angegeben.
Ausgabepuffer
Aktualisierte SRB_IO_CONTROLSRB_IO_CONTROL**]() und NVCACHE_REQUEST_BLOCK Strukturen sowie der optionale funktionsspezifische Datenpuffer werden an den Puffer bei Irp->AssociatedIrp.SystemBufferzurückgegeben.
Länge des Ausgabepuffers
Die Länge des Puffers.
Statusblock
Das Feld Information enthält die Anzahl der im Ausgabepuffer zurückgegebenen Bytes. Das Feld Status gibt die Ergebnisse des Vorgangs an.
Anforderungen
Anforderung | Wert |
---|---|
Header- | ntddscsi.h (include Ntddscsi.h) |