次の方法で共有


NVCACHE_REQUEST_BLOCK 構造体 (ntddscsi.h)

NVCACHE_REQUEST_BLOCK構造は、ハイブリッド ハード ディスク ドライブ (H-HDD) デバイス (Microsoft ReadyDrive テクノロジなど) を管理するためのIOCTL_SCSI_MINIPORT要求と組み合わせて使用されます。 このトピックでは、NV キャッシュ マネージャーへの呼び出しの入力データと出力データの両方の一般的な構造を定義します。 呼び出し元は、DeviceIoControl または IoBuildDeviceIoControlRequest を呼び出す前に、すべての必須フィールドに入力する必要があります。 ミニポート ドライバーは、要求された関数が完了した後、およびが返される前に同じ操作を行う必要があります。

構文

typedef struct _NVCACHE_REQUEST_BLOCK {
  ULONG     NRBSize;
  USHORT    Function;
  ULONG     NRBFlags;
  ULONG     NRBStatus;
  ULONG     Count;
  ULONGLONG LBA;
  ULONG     DataBufSize;
  ULONG     NVCacheStatus;
  ULONG     NVCacheSubStatus;
} NVCACHE_REQUEST_BLOCK, *PNVCACHE_REQUEST_BLOCK;

メンバー

NRBSize

sizeof(NVCACHE_REQUEST_BLOCK)。

Function

実行する操作を指定します。次のいずれかの値を指定できます。

意味
NRB_FUNCTION_NVCACHE_INFO NV Cache Manager 機能のサポート情報をデバイスから取得します。 この関数が正常に完了すると、必要なデータ フィールドが呼び出し元に返されます。 戻り値のデータ構造が NV_FEATURE_PARAMETER
NRB_FUNCTION_SPINDLE_STATUS デバイスが現在スピンアップまたはスピンダウンしているかどうかを確認します。 ATA デバイスの場合、デバイスのスピンドルの状態を取得するには、電源モードの確認コマンドが必要です。 SCSI デバイスの場合、Mode Sense コマンドを使用して、デバイスの現在の電源モードを照会できます。
NRB_FUNCTION_NVCACHE_POWER_MODE_SET NV キャッシュ マネージャーの電源モードをオンにします。
NRB_FUNCTION_NVCACHE_POWER_MODE_RESET NV キャッシュ マネージャーの電源モードをオフにします。
NRB_FUNCTION_FLUSH_NVCACHE NV キャッシュ メモリに現在固定されているデータをフラッシュして、必要な NV キャッシュ メモリ領域を使用できるようにします。
NRB_FUNCTION_QUERY_PINNED_SET NV キャッシュ マネージャー固定セットに現在含まれている論理ブロック アドレス (LBA) 範囲を取得します。
NRB_FUNCTION_QUERY_CACHE_MISS 1 つの 512 バイト ブロック内の LBA 範囲の NV キャッシュ ミスをデバイスが報告することを要求します。
NRB_FUNCTION_ADD_LBAS_PINNED_SET NV キャッシュ マネージャー セット データで指定されている LBA を NV キャッシュ マネージャー固定セットに追加します (まだ存在しない場合)。
NRB_FUNCTION_REMOVE_LBAS_PINNED_SET NV キャッシュ セット データで指定されている LBA を NV Cache 固定セットから削除します。
NRB_FUNCTION_QUERY_HYBRID_DISK_STATUS 将来利用するために予約されています。
NRB_FUNCTION_PASS_HINT_PAYLOAD IO ヒントを SATA デバイスに渡します。

NRBFlags

将来利用するために予約されています。

NRBStatus

ドライバーからの NV Cache Manager 関数要求の状態を示します。 次のいずれかの値を指定できます。

意味
NRB_SUCCESS エラーなし。
NRB_ILLEGAL_REQUEST ポート ドライバーによって無効な要求が検出されました。
NRB_INVALID_PARAMETER ポート ドライバーに渡されたパラメーターが無効です。
NRB_INPUT_DATA_OVERRUN ポート ドライバーに提供されるデータが多すぎます。
NRB_INPUT_DATA_UNDERRUN ポート ドライバーに提供されるデータが不足しています。
NRB_OUTPUT_DATA_OVERRUN ポート ドライバーから返されるデータが多すぎます。
NRB_OUTPUT_DATA_UNDERRUN ポート ドライバーから返されるデータが不足しています。

Count

指定された関数で転送される 512 バイト ブロックの数。

LBA

指定した関数のデバイスの LBA を開始します。

DataBufSize

データ バッファーのサイズ (バイト単位)。

NVCacheStatus

デバイスから返される状態。 ATA デバイスの場合、この値はタスク ファイル内の Status Register の内容です。 SCSI デバイスの場合、この値はデバイスから返されるセンス コードです。

NVCacheSubStatus

デバイスから返されたエラー コード。 ATA デバイスの場合、この値はタスク ファイル内のエラー レジスタの内容です。 SCSI デバイスの場合、この値はデバイスから返されるセンス キーです。

注釈

関数の動作の詳細については、ATA8-ACS 仕様のセクション 7.20 を参照してください。

要件

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

こちらもご覧ください

IOCTL_SCSI_MINIPORT

IOCTL_SCSI_MINIPORT_NVCACHE