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 を含む) |