In Mathematica, if I write something like:

Inverse[{{a, b}, {c, d}}]

I get the inverse:

{{d/(-b c + a d), -(b/(-b c + a d))}, {-(c/(-b c + a d)), 
  a/(-b c + a d)}}

This assumes that a,b,c,d are scalars. How can I tell Mathematica to treat a,b,c,d as matrices instead? So I would like to symbolically obtain a formula for the inverse of a block-matrix. Moreover, I also have additional information such that b == c^T, and that a,d are symmetric. Is there a way to let Mathematica exploit this sort of information to obtain a simpler expression?

This 2x2 example is just to illustrate what I want. My motivation is that I have a somewhat more complicated matrix that has some zero blocks, and I would like to know symbolically if a simple inverse can be obtained.