Freigeben über


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

IRP_MJ_DEVICE_CONTROL

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)

Siehe auch

IOCTL_SCSI_MINIPORT

IoBuildDeviceIoControlRequest

NVCACHE_REQUEST_BLOCK

SRB_IO_CONTROL