Well, one obvious thing would be you do have permissions for the device, right? I doubt it could be that simple though. I kind of figured this was going to happen sometime, as I still havent' been able to get Adaptec Easy CD Creator working either. Like your program, I think it may not like the output from SC_HA_INQUIRY. Fortunately, that means I have a program exhibiting similar behavior so I at least have a decent test case. I'll start debugging this problem this weekend and see if I can come up with a solution. For one thing, last time I checked, the DLLs LibMain was not being called correctly by Wine (I think this is a known problem in Wine). Although for right now the only side effect of that is that I can't free up everything when the DLL is unloaded because I don't even know when the DLL is unloaded (and half the time it somehow manages to unload the DLL more times than loading it). There are only 4 functions for WNASPI32. GetASPI32SupportInfo, SendASPI32Command, GetASPI32DLLVersion, and an ordinal only export 7. I have no idea what ordinal 7 is supposed to do, but maybe it has something to do with these problems. The GetASPI32DLLVersion always returns 1 (which should be according to spec, and I think is also what the real WNASPI32.DLL returns). The GetASPI32SupportInfo Function returns 1 controller present and SS_COMP which is not really correct, but should be fine for your situation. All that's left really is SendASPI32Command which has several cases, each of which either prints a TRACE or FIXME. I'll try adding some traces to the GetASPI32DLLVersion and GetASPI32SupportInfo functions and see what I come up with. Also, one major problem is that the way WNASPI32 is implemented, all commands complete before returning, which is not supposed to happen, but it seems to work for most stuff. Anyway, those are just some ideas I am throwing out if you would like to pursue the problem a little further. Have a good day, -Dave P.S. Thanks for the good debug info. (which I snipped in this reply)