My system has two GPU cards: K20C and GTX 580 with Windows 7 64-bit Enterprise OS. cudaGetDeviceCount() and cudaGetDeviceProperties() are called within a C# Window Service via DllImport method. cudaGetDeviceCount() return one GPU card, and cudaGetDeviceProperties() return the OK for device 0. If I call cudaGetDeviceProperties() for device 1, cuda error is returned with error code = 10 and error message = invalid device ordinal.
If instead the cuda APIs are called within a C# console application, cudaGetDeviceCount() return 2 cards and cudaGetDeicePropoerties() return the right properties for both cards.