Before even the actual interview, the recruiter has asked me expected range of salary. Is it advisable to give the expected salary to recruiter before even getting any offer?
Safe answer is always "negotiable"
Discuss now because you will be disappointed when you hear how low the offers are.
Try to find out pay ranges for the position your interviewing for. Learn how your current pay fits in that scale. The more information you have going into a negotiation, the better.
levels.fyi would be a good starting point
No. Never.
Never give the first number in a salary expectation/ negotiation
Tell them it depends entirely on how Microsoft's offer compares to others.
I was asked the same. I said would discuss this in the later stages of interview and recruiter was ok with that