共用方式為


IOCTL_SCSI_MINIPORT_DSM IOCTL (storport.h)

數據集管理 (DSM) 通知會傳送至 IOCTL_SCSI_MINIPORT_DSM 控制程式代碼要求中的迷你埠驅動程式。 IOCTL_SCSI_MINIPORT_DSM要求是IOCTL_SCSI_MINIPORT的子 IOCTL。 StorPort 所產生的這個 IOCTL 會回應 DSM 動作,然後將此 IOCTL 傳送至迷你埠作為 STORAGE_REQUEST_BLOCK (SRB) ,且函式類型為 SRB_FUNCTION_IO_CONTROL。 輸入和輸出數據包含在 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 狀態 Description
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 (包含 Ntddscsi.h、Storport.h)

另請參閱

IOCTL_SCSI_MINIPORT

SRB_IO_CONTROL

STORAGE_REQUEST_BLOCK