Handling the E_INVALIDARG Return Value
Typically, a user-mode display driver cannot fail any of its functions by returning E_INVALIDARG. However, if the user-mode display driver receives the E_INVALIDARG return value when it calls one of the Microsoft Direct3D runtime-supplied functions (because of a programming error in the driver or malicious code that runs in the operating system), the driver must return E_INVALIDARG back to the Direct3D runtime after the runtime calls one of the driver's functions. Otherwise, the user-mode display driver should never return E_INVALIDARG to the Direct3D runtime.