Is using SHA256 to extract entropy from a p-rand nonce a good way to create keying material?
CryptGenRandom is supposed to produce cryptographically strong random numbers, so you shouldn't need to process it before using as a key.

However, if you want to treat it as of suspect quality, I would go with SP 800-90B recommendations: assume it has entropy at least half the bits, so request double what you need. Then run it through HMAC with a suitable hash function.