IOCTL_SCSI_MINIPORT_DSM IOCTL (storport.h)
Pemberitahuan Manajemen Himpunan Data (DSM) ditransfer ke driver miniport dalam permintaan kode kontrol IOCTL_SCSI_MINIPORT_DSM . Permintaan IOCTL_SCSI_MINIPORT_DSM adalah sub-IOCTL IOCTL_SCSI_MINIPORT. IOCTL ini dihasilkan oleh StorPort sebagai respons terhadap tindakan DSM, lalu dikirim ke miniport sebagai STORAGE_REQUEST_BLOCK (SRB) dengan jenis fungsi SRB_FUNCTION_IO_CONTROL. Data input dan output terkandung dalam blok data SRB.
Kode utama
Buffer input
Buffer yang ditentukan dalam anggota DataBuffer SRB harus berisi struktur SRB_IO_CONTROL dan struktur DSM_NOTIFICATION_REQUEST_BLOCK .
Panjang buffer input
DataTransferLength menunjukkan ukuran, dalam byte, dari buffer, yang harus setidaknya ukuranof (SRB_IO_CONTROL) + sizeof(DSM_NOTIFICATION_REQUEST_BLOCK), dengan penyimpanan tambahan untuk struktur MP_DEVICE_DATA_SET_RANGE disertakan.
Buffer output
Struktur SRB_IO_CONTROL yang diperbarui dikembalikan ke buffer data di SRB. SrbStatus berisi hasil pemrosesan permintaan miniport.
Panjang buffer output
Panjang struktur SRB_IO_CONTROL .
Blok status
Status yang dihasilkan dari permintaan fungsi diatur dalam anggota SrbStatusdari SRB_IO_CONTROL. Berikut ini adalah kode status IOCTL disk DSM.
SRB Status | Deskripsi |
---|---|
SRB_STATUS_SUCCESS | Permintaan berhasil diselesaikan. |
SRB_STATUS_INVALID_REQUEST | Permintaan berisi ukuran buffer yang tidak valid |
Keterangan
DSM_NOTIFICATION_REQUEST_BLOCK
Struktur DSM_NOTIFICATION_REQUEST_BLOCK segera mengikuti struktur SRB_IO_CONTROL dalam buffer data SRB. DSM_NOTIFICATION_REQUEST_BLOCK didefinisikan dalam ntddscsi.h sebagai berikut.
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
Rentang LBA disertakan dalam anggota DataSetRangesdari DSM_NOTIFICATION_REQUEST_BLOCK sebagai array struktur MP_DEVICE_DATA_SET_RANGE . MP_DEVICE_DATA_SET_RANGE didefinisikan dalam ntddscsi.h sebagai berikut.
typedef struct _MP_DEVICE_DATA_SET_RANGE {
LONGLONG StartingOffset;
ULONGLONG LengthInBytes;
} MP_DEVICE_DATA_SET_RANGE, *PMP_DEVICE_DATA_SET_RANGE;
Struktur DSM_NOTIFICATION_REQUEST_BLOCK terletak setelah struktur SRB_IO_CONTROL di DataBuffer SRB.
Struktur SRB_IO_CONTROL untuk IOCTL ini berisi IOCTL_MINIPORT_SIGNATURE_DSM_NOTIFICATION di anggota Tanda Tangan dan IOCTL_SCSI_MINIPORT_DSM di anggota ControlCode .
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 8.1. |
Header | storport.h (termasuk Ntddscsi.h, Storport.h) |