Error Occurs when interoperating with D3D render target texture by GTX295

I append this code fragment in RegisterD3D9ResourceWithCUDA function of simpleD3D9Texture

IDirect3DTexture9 * texture;

	 g_pD3DDevice->CreateTexture(640,480,0,D3DUSAGE_RENDERTARGET,D3DFMT_X8R8G8B8,D3DPOOL_

DEFAULT,&texture,NULL);

	 cudaD3D9RegisterResource(texture,cudaD3D9RegisterFlagsNone);

	 cutilSafeCallNoSync(cudaD3D9MapResources(1,(IDirect3DResource9 **)&texture));

	 cutilCheckMsg("cudaD3D9RegisterResource (texture) failed"); 

	 cudaD3D9UnmapResources(1,(IDirect3DResource9 **)&texture);

	cudaD3D9UnregisterResource(texture);

cudaErrorLaunchFailure will be returned from cutilCheckMsg function when calling cudaThreadSynchronize.

However,I set D3DUSAGE to 0,It works fine.

my desktop system configuration:

System: Intel Core i7, 2GB RAM, WinXP with all latest service packs installed

GPUs: GTX295

CUDA version: CUDA 2.3 release toolkit and SDK

Driver version: 190.38

Compiler: Visual studio 2008

I run the same program on a laptop with GFORCE 8400MGS, It works fine too.

laptop system configuration:

System: Intel Core2 Duo 2GB RAM, WinXP with all latest service packs installed

CUDA version: CUDA 2.2 release toolkit and SDK

Driver version: 185.85

Compiler: Visual studio 2008

The error remains,after I reinstalled the xp system in desktop,and restored the driver to 185.85and cuda2.2.

Is this a driver or hardware bug or I misused something??? Any help will be appreciated.