次の方法で共有


IOCTL_SCSI_MINIPORT_DSM IOCTL (scsi.h)

データ セット管理 (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_CONTROLSrbStatus メンバーで設定されます。 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_BLOCK のメンバー DataSetRanges に含まれています。 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 の DataBufferSRB_IO_CONTROL 構造体の後に配置されます。

この IOCTL の SRB_IO_CONTROL 構造体には、Signature メンバーのIOCTL_MINIPORT_SIGNATURE_DSM_NOTIFICATIONと、ControlCode メンバーの IOCTL_SCSI_MINIPORT_DSM が含まれています。

必要条件

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

関連項目

IOCTL_SCSI_MINIPORT

SRB_IO_CONTROL

STORAGE_REQUEST_BLOCK