共用方式為


IOCTL_SCSI_MINIPORT_DSM IOCTL (storport.h)

數據集管理 (DSM) 通知會傳送至 IOCTL_SCSI_MINIPORT_DSM 控制程式代碼要求中的迷你埠驅動程式。 IOCTL_SCSI_MINIPORT_DSM 要求是 IOCTL_SCSI_MINIPORT的子 IOCTL。 StorPort 所產生的這個 IOCTL,以回應 DSM 動作,然後以 STORAGE_REQUEST_BLOCK (SRB) 的形式傳送至迷你埠,其函式類型為 SRB_FUNCTION_IO_CONTROL。 輸入和輸出數據包含在 SRB 數據區塊中。

注意 SCSI 連接埠驅動程式和 SCSI 迷你埠驅動程式模型未來可能會改變或無法使用。 相反地,我們建議使用 Storport 驅動程式Storport miniport 驅動程式模型。
 

主要程序代碼

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 結構的長度。

狀態區塊

函式要求的結果狀態是在 SrbStatus 成員 SRB_IO_CONTROL中設定。 以下是 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 範圍包含在 DataSetRanges 中, 成員 DSM_NOTIFICATION_REQUEST_BLOCK 做為 MP_DEVICE_DATA_SET_RANGE 結構的陣列。 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。
標頭 storport.h (include Ntddscsi.h, Storport.h)

另請參閱

IOCTL_SCSI_MINIPORT

SRB_IO_CONTROL

STORAGE_REQUEST_BLOCK