IOCTL_ATA_PASS_XXXX can send command to disk , but SATA can not ?

I use IOCTL_ATA_PASS_XXX can send ATA~ATAPI command to ATA disk .
so What IOCTL can send command to SATA disk ???
I send 0x20H command to ATA disk read sector is success ! but SATA disk is no success !