I was unable to write tests for this; it seems it doesn't consistently work on Windows. However, Rayman 3 seems to rely on it; it maps the same buffer twice immediately after creation, with DISCARD flags on both maps, and expects the same address to be returned.