1) There's a nice call StarBurn_CdvdBurnerGrabber_GetDVDProtectionSystem(...) doing pretty much what you want. Check it and
set of definitions DVD_PROTECTION_XXX. Key to your issue
2) API call you use should return with failure if you set "p__BOOLEAN__IsBadBlockIgnore" parameter to FALSE. So I'd like to see StarBurn logs to find out where StarBurn core locks up. I suspect you use TRUE and core simply does a long and painful read of scrambled and unreadable blocks in a loop. May look like a hang. Which is really not.
3) It would be better if you'd parse TOC (not a big deal for single track DVD-Video with encryption) and use set of calls to
- Find out is disc protected or not (key point for you)
- If it's CSS protected you have to issue StarBurn_CdvdBurnerGrabber_AuthorizeDVD(...) or StarBurn_CdvdBurnerGrabber_AuthorizeDVDEx(...) API call to "unlock" the disc (in this case you'll be able to READ scrambled CSS sectors, for unauthorized disc you'll get slow processed and painful read errors)
- Issue a serie of the StarBurn_ISO9660JolietFileTree_Read(...) calls in a loop to read the content. You'll be able to manually
process unprotected and protected discs in the different way.