I am integrating a third party C-based SDK into my .NET application. The application will run as a Windows service on a server, so it should not interact with the user in a
You could use an editor to find the location of this and remove the call from their binary. But that may or may not be allowable under the usage limitations with the software. Certainly if you re-distribute it it may cause problems - you should ask the vendor and report it as a defect and suggest that you have a workaround for your own use.
For people used to do this kind of thing (cracking licenses or other reverse engineering) this is pretty straightforward, but the real question is, what happens if it is ignored - does it still continue to work?
This is not very easy. I would think the only way is to write a message hook to trap messages pumped through all the windows message loops on the system. But I'm not even sure that a service can create a message hook given it does not have access to the default window station under its default credentials (LocalSystem). So task # one would be to see if that would actually work.
But here is a rough sketch of how I would try to do it outside of a service context and you can see if it applies:
This is all very dicey mind you, but it is the path that seems like it has any chance to me.
Check out Detours from Microsoft Research. It allows you to detour arbitrary Windows API functions. C/C++ programming is required to make it work though. You won't need much.