what does unity_CameraInvProjection actually is?how to transform point from ndc space to view space?

As far as I know, I can get the ndc position by using projection matrix times the position at view space and use perspective division on the result. But when I get the ndc position I lose the information of the w component. I saw a method to get position in view space by (1) mul(unity_CameraInvProjection, ndcPos) (2) divide the result by the reuslt.w component. It really confuses me that the unity_CameraInvProjection seems not be the inverse of the projection matrix because if it is the inverse of matrix I should get the position at view space by mul(unity_CameraInvProjection, ndcPos * the w component I lose). I got a method that I can use the image effect by shooting ray to four corners and use the interpolated ray and the ndcPos to get position at view space. But I think that method only works when using image effect and I really want to get the position from ndc to view space generally. If someone can tell me what unity_CameraInvProjection actually is, I can convince myself to use mul(unity_CameraInvProjection, ndcPos) and divide it by the w component.

I find that mul(unity_CameraInvProjection, ndcPos) and divide its w component actually works and unity_CameraInvProjection is actually is inverse of projection matrix. What makes me misunderstand that method is I neglect the fact that the w component in view space is 1.

As I said in my question, mul(unity_CameraInvProjection, ndcPos * wc (which means w component in clip space) ) = viewPos. Because wc is a scalar, this equation can changed as mul(unity_CameraInvProjection, ndcPos) = viewPos/wc. Even though wc is unknown, the viewPos must be in (x, y, z, 1) form, so temp = viewPos/wc = (x/wc, y/wc, z/wc, 1/wc). As a result, temp/temp.w = temp * wc = (x, y, z, 1) = viewPos. That is actually what I want.

Hope it helps for others.