To create a safe MBR hook for translation, you can either write an MBR hooker and a corresponding VSD or just write an MBR hooker that sets the smhflgs member to 1. In either case, the MBR hooker must have a SafeMBRHook structure at the beginning of its hook routine, as described in About Vendor-Supplied Drivers.
You do not have to write a VSD if the MBR hooker only has functionality that the Windows 95 IDE driver already supports. In this case, the MBR hooker can set the smhflgs member to 1 on its own so that Windows 95 can take over in protect mode.
If the MBR hooker has functionality that is not already supported by Windows 95, for example, encryption, you must write a VSD or leave your MBR hooker marked as unsafe. If you write a VSD to support the extra functionality in protect mode, the VSD is responsible for setting the smhflgs member to 1 to indicate to Windows 95 that it is safe to take over in protect mode.