IOCTL_SCSI_MINIPORT_NVCACHE IOCTL (ntddscsi.h)
ここで定義されている NV キャッシュ管理操作は、DeviceIoControl と IOCTL_SCSI_MINIPORT コントロール コードを使用して、管理者特権で実行されているユーザー モード のアプリケーション コードによって呼び出すことができます。 または、呼び出し元は、 IoBuildDeviceIoControlRequest とIOCTL_SCSI_MINIPORTコントロール コードを使用してカーネル モード ドライバー コードにすることができます。
NV Cache Management 関数の要求は、 NVCACHE_REQUEST_BLOCK 構造体のフィールドで指定されます。 IOCTL_SCSI_MINIPORTへの入力は、SRB_IO_CONTROL構造体とそれに続くNVCACHE_REQUEST_BLOCK構造を含むユーザー定義のデータ構造です。 追加の関数固有のデータは、必要に応じて 、NVCACHE_REQUEST_BLOCK 構造に従う場合があります。
NV キャッシュ管理機能に使用されるインターフェイスは、2 つのレイヤーで構成されます。 最初のレイヤーは、呼び出し元とポート ドライバーの間のインターフェイスです。これは 、IOCTL_SCSI_MINIPORTによって定義されます。 2 番目のレイヤーは、呼び出し元とデバイスの間のインターフェイスであり、ATA8-ACS 仕様とIOCTL_SCSI_MINIPORT_NVCACHEによって定義されます。 ユーザー モード アプリケーション コードの API は DeviceIoControl インターフェイスです。 カーネル モード ドライバー コードの API は、IOCTL_SCSI_MINIPORTを使用する IoBuildDeviceIoControlRequest インターフェイスです。
メジャー コード
[入力バッファー]
Irp-AssociatedIrp.SystemBuffer> のバッファーには、Signature フィールドが "HYBRDISK" に設定され、ControlCode フィールドがIOCTL_SCSI_MINIPORT_NVCACHEに設定されたSRB_IO_CONTROL構造が含まれています。 NVCACHE_REQUEST_BLOCK構造体は、SRB_IO_CONTROL構造の直後にあります。 省略可能な関数固有のデータ バッファーは、 NVCACHE_REQUEST_BLOCK 構造体のすぐ後に格納されます。
入力バッファーの長さ
Parameters.DeviceIoControl.InputBufferLength は、すべての入力データのサイズ ( SRB_IO_CONTROL、 NVCACHE_REQUEST_BLOCK、関数固有のデータ バッファーの結合) をバイト単位で示します。 データ バッファーの有無は、 NVCACHE_REQUEST_BLOCK****DataBufSize フィールドによって示されます。
出力バッファー
SRB_IO_CONTROL SRB_IO_CONTROL**]() およびNVCACHE_REQUEST_BLOCK構造体、および省略可能な関数固有のデータ バッファーが、Irp-AssociatedIrp.SystemBuffer> のバッファーに返されます。
出力バッファーの長さ
バッファーの長さ。
ステータス ブロック
[情報] フィールドには、出力バッファーに返されるバイト数が含まれます。 [状態] フィールドは、操作の結果を示します。
要件
要件 | 値 |
---|---|
Header | ntddscsi.h (Ntddscsi.h を含む) |