storport not support ioctl pass through

Use WDK10 and windows server 2019.

I created a physical miniport for storport, our miniport can received IOCTL_SCSI_MINIPORT request, but can’t receive IOCTL_SCSI_PASS_THROUGH.

I use the sg_utils to test my miniport disk and system disk,(sg_readcap use IOCTL_SCSI_PASS_THROUGH):
https://sg.danny.cz/sg/sg3_utils.html#__RefHeading___Toc611_3724309425 -->sg_pt_win32.c

sg_readcap.exe output for My miniport disk:
“Windows DeviceIoControl error=87”
“read capacity (10)”: transport: ???"

sg_readcap.exe output for system disk: Everything was in line with expectations
“Last Logical block address=167772159 (0x9ffffff), Number of blocks=167772160”
“Logical block length=512 bytes”

who can help me? why my miniport cann’t receive IOCTL_SCSI_PASS_THROUGH/IOCTL_SCSI_PASS_THROUGH_DIRECT request?

@Devic_wen said:
Use WDK10 and windows server 2019.

I created a physical miniport for storport, our miniport can received IOCTL_SCSI_MINIPORT request, but can’t receive IOCTL_SCSI_PASS_THROUGH.

I use the sg_utils to test my miniport disk and system disk,(sg_readcap use IOCTL_SCSI_PASS_THROUGH):
https://sg.danny.cz/sg/sg3_utils.html#__RefHeading___Toc611_3724309425 -->sg_pt_win32.c

sg_readcap.exe output for My miniport disk:
“Windows DeviceIoControl error=87”
“read capacity (10)”: transport: ???"

sg_readcap.exe output for system disk: Everything was in line with expectations
“Last Logical block address=167772159 (0x9ffffff), Number of blocks=167772160”
“Logical block length=512 bytes”

who can help me? why my miniport cann’t receive IOCTL_SCSI_PASS_THROUGH/IOCTL_SCSI_PASS_THROUGH_DIRECT request?

https://github.com/hreinecke/sg3_utils/blob/master/lib/sg_pt_win32.c

Storport actually handles IOCTL_SCSI_PASS_THROUGH/IOCTL_SCSI_PASS_THROUGH_DIRECT, creates an SRB w/ SRB_FUNCTION_EXECUTE_SCSI and then forwards them to miniport. So, your miniport always sees an SRB.
The stack trace in Windbg (breakpoint in your miniport’s BuildIo/StartIo) should show the details.