A locking programming interface (LPI) which prevents piracy of
device-related user software. An LPI Code is generated from a variety of
different parameters, including a software product ID, a Production Key,
and a number of device-specific parameters for the device that the user
software supports. The LPI Code is burned into a memory of the device
using a Production Utility process which utilizes the Production Key
supplied by the software manufacturer. When the user software is
installed in a host machine such as a user's computer system, the
software performs basic device validation and then validates the LPI Code
burned into the device against codes embedded into the user software.