See Joe Duffy's book, Parallel Programming on Windows, page 289.
The short answer to your question is "almost." There is semantics with recursively acquired CRITICAL_SECTION, which differ for SRWL. If your program has taken advantage of these characteristics of critical Win32 partitions, then you cannot easily switch to SRWL. However, you could wrap SRWL in a wrapper to provide CS as semantics, but there are tons of subtleties, so you'd better stick with CS if you are dependent on this behavior.
Kenny Kerr 's article describes a little about how both are implemented internally.
Mark oskin
source share