What api is application using to talk to the device. Some cases applications use particular internal .dll's to talk devices. >From that case its building a layer that translates the windows calls to Linux calls. Can be done inside a dll.so in wine. When deal with linking to devices there is no simple way unless you are lucky enough to be using serial or something wine already support. .dll.so files of wine are permitted to be hybrid code. Ie windows calls provided to the application linux calls done inside. Borland code kind cuts out just merging linux commands into the application so little more sneaky method need. Another option is running a Linux program from wine. Also messy. Hacky ways like what I suggested could never make it into mainline wine. This is the other consideration coded so the device you are dealing with appears as a virtual device does stand a chance of going mainline and if other people are using other programs that interface with the same device more programmers to help keeping it working. There is no clear black or white correct answer here. Part comes down to how long you need to keep this program working for. Is it a short term patch until it can be replaced. Or will the program be around for ages.