Bagikan melalui


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.

Catatan Driver port SCSI dan model driver miniport SCSI dapat diubah atau tidak tersedia di masa mendatang. Sebagai gantinya, sebaiknya gunakan driver Storport dan model driver miniport Storport .
 

Kode utama

IRP_MJ_DEVICE_CONTROL

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)

Lihat juga

IOCTL_SCSI_MINIPORT

SRB_IO_CONTROL

STORAGE_REQUEST_BLOCK