次の方法で共有


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_MJ_DEVICE_CONTROL

[入力バッファー]

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_CONTROLNVCACHE_REQUEST_BLOCK、関数固有のデータ バッファーの結合) をバイト単位で示します。 データ バッファーの有無は、 NVCACHE_REQUEST_BLOCK****DataBufSize フィールドによって示されます。

出力バッファー

SRB_IO_CONTROL SRB_IO_CONTROL**]() およびNVCACHE_REQUEST_BLOCK構造体、および省略可能な関数固有のデータ バッファーが、Irp-AssociatedIrp.SystemBuffer> のバッファーに返されます。

出力バッファーの長さ

バッファーの長さ。

ステータス ブロック

[情報] フィールドには、出力バッファーに返されるバイト数が含まれます。 [状態] フィールドは、操作の結果を示します。

要件

要件
Header ntddscsi.h (Ntddscsi.h を含む)

こちらもご覧ください

IOCTL_SCSI_MINIPORT

IoBuildDeviceIoControlRequest

NVCACHE_REQUEST_BLOCK

SRB_IO_CONTROL