次の方法で共有


IOCTL_SCSI_MINIPORT_DSM IOCTL (scsi.h)

Data Set Management (DSM) 通知は、 IOCTL_SCSI_MINIPORT_DSM コントロール コード要求でミニポート ドライバーに転送されます。 IOCTL_SCSI_MINIPORT_DSM要求は、IOCTL_SCSI_MINIPORTのサブ IOCTL です。 DSM アクションに応答して StorPort によって生成されたこの IOCTL は、SRB_FUNCTION_IO_CONTROLの関数型を持つ STORAGE_REQUEST_BLOCK (SRB) としてミニポートに送信されます。 入力データと出力データは、SRB データ ブロックに含まれています。

メモ SCSI ポート ドライバーと SCSI ミニポート ドライバー モデルは、今後変更または使用できない可能性があります。 代わりに、 Storport ドライバーStorport ミニポート ドライバー モデルを使用することをお勧めします。
 

メジャー コード

IRP_MJ_DEVICE_CONTROL

[入力バッファー]

SRB の DataBuffer メンバーで指定されたバッファーには、 SRB_IO_CONTROL 構造体と DSM_NOTIFICATION_REQUEST_BLOCK 構造体が含まれている必要があります。

入力バッファーの長さ

DataTransferLength は、バッファーのサイズ (バイト単位) を示します。バッファーのサイズは、少なくとも sizeof (SRB_IO_CONTROL) + sizeof(DSM_NOTIFICATION_REQUEST_BLOCK) である必要があり、 MP_DEVICE_DATA_SET_RANGE 構造体の追加ストレージが含まれます。

出力バッファー

更新 されたSRB_IO_CONTROL 構造体が SRB のデータ バッファーに返されます。 SrbStatus には、ミニポートの要求の処理の結果が含まれています。

出力バッファーの長さ

SRB_IO_CONTROL構造体の長さ。

ステータス ブロック

関数要求の結果の状態は、SRB_IO_CONTROLの SrbStatus メンバーに設定 されます。 DSM ディスク IOCTL 状態コードを次に示します。

SRB の状態 説明
SRB_STATUS_SUCCESS 要求が正常に完了しました。
SRB_STATUS_INVALID_REQUEST 要求に無効なバッファー サイズが含まれている

注釈

DSM_NOTIFICATION_REQUEST_BLOCK

DSM_NOTIFICATION_REQUEST_BLOCK構造体は、SRB のデータ バッファー内のSRB_IO_CONTROL構造の直後にあります。 DSM_NOTIFICATION_REQUEST_BLOCK は ntddscsi.h で次のように定義されています。

typedef struct _DSM_NOTIFICATION_REQUEST_BLOCK {
    ULONG   Version;
    ULONG   Size;
    ULONG   NotifyFLags;
    ULONG   DataSetProfile;
    ULONG   Reserved[3];
    ULONG   DataSetRangesCount;
    MP_DEVICE_DATA_SET_RANGE DataSetRanges[ANYSIZE_ARRAY];
} DSM_NOTIFICATION_REQUEST_BLOCK, *PDSM_NOTIFICATION_REQUEST_BLOCK;

MP_DEVICE_DATA_SET_RANGE

LBA 範囲は、MP_DEVICE_DATA_SET_RANGE構造体の配列として、DSM_NOTIFICATION_REQUEST_BLOCKDataSetRanges メンバー含まれています。 MP_DEVICE_DATA_SET_RANGE は ntddscsi.h で次のように定義されています。

typedef struct _MP_DEVICE_DATA_SET_RANGE {
    LONGLONG    StartingOffset;
    ULONGLONG   LengthInBytes;
} MP_DEVICE_DATA_SET_RANGE, *PMP_DEVICE_DATA_SET_RANGE;

DSM_NOTIFICATION_REQUEST_BLOCK構造体は、SRB の DataBuffer 内の SRB_IO_CONTROL 構造体の後にあります。

この IOCTL のSRB_IO_CONTROL構造体には、Signature メンバーにIOCTL_MINIPORT_SIGNATURE_DSM_NOTIFICATIONが含まれており、ControlCode メンバーにIOCTL_SCSI_MINIPORT_DSM

要件

要件
サポートされている最小のクライアント Windows 8.1以降で使用できます。
Header scsi.h (Ntddscsi.h、Storport.h を含む)

こちらもご覧ください

IOCTL_SCSI_MINIPORT

SRB_IO_CONTROL

STORAGE_REQUEST_BLOCK