Building a Custom Read-Only iSCSI Target on Windows (Physical Disk Export)

I want to implement a custom iSCSI target on Windows Server 2019 that exports a physical disk (\\.\PhysicalDriveX) in strict read-only mode to a Windows client.

Requirements:

  • Disk should appear as a locally attached SCSI disk on the client.

  • Full disk layout visible (GPT/MBR, partitions).

  • All WRITE commands rejected.

  • No VHD/VHDX wrapper.

Questions:

  1. Is user-mode implementation (Winsock + raw disk reads) sufficient, or is a kernel-mode StorPort/virtual SCSI driver required?

  2. Which Windows components or tools are needed (Windows SDK, WDK)?

  3. If implemented as read-only at SCSI level, is it architecturally safe from disk corruption?

Looking for architectural guidance on the correct implementation path.