For example:
[pascal]function CMyD3DApplication.ConfirmDevice(const pCaps: TD3DCaps9; dwBehavior: DWORD;
adapterFormat, backBufferFormat: TD3DFormat): HRESULT;
begin
Result:= E_FAIL;

// Minimum PS_2_0 are required
if (pCaps.PixelShaderVersion < D3DPS_VERSION(2,0)) then Exit;

if (pCaps.DeviceType = D3DDEVTYPE_REF) then Exit; // !!!!!

// We request software vertex processing to unify TextureTransform between different architectures...
if ((dwBehavior and D3DCREATE_SOFTWARE_VERTEXPROCESSING) <> D3DCREATE_SOFTWARE_VERTEXPROCESSING)
then Exit;

Result:= S_OK;
end;
[/pascal]