PKCS #12 File Types: Portable Protected Keys in .NET (de Michel I. Gallant)

CryptAcquireContext( &m_hProvider, m_wszContainer, AesProviders[m_nIndex].params.lpwsz,
AesProviders[m_nIndex].params.dwType, CRYPT_DELETEKEYSET );
ici aussi

Example C Program: Using CryptAcquireContext
CryptAcquireContext with CRYPT_DELETEKEYSET physically deletes the container and all data associated with it, so to say keys, names etc.
Some CSPs won’t care, and will let you delete an active container. Others care very much
Even better, since you don’t need to save the keys, use the CRYPT_VERIFYCONTEXT flag on your initial call to CryptAcquireContext — that way it doesn’t create a persisted container at all,

Voir aussi :
I have done considerable searching and have not found a way to
remove un-needed private key containers from: C:\Documents and Settings\All Users\Application Data \Microsoft\Crypto\RSA\MachineKeys.

CryptAcquireContext flag CRYPT_MACHINEKEYSET: you ned it for machine keys