/// <summary> /// Deletes the key associated with the handle specified in <paramref name="request"/>. /// </summary> /// <param name="request"></param> /// <returns></returns> public virtual NativeResultCode DeleteKey(RegistryRequest request) { using (_keysSynchronizationLock.EnterDisposableWriteLock()) { request.Handle = EnsureHandleIsNoAlias(request.Handle); if (!_keys.ContainsKey(request.Handle)) { return(NativeResultCode.InvalidHandle); } RemoveAliasesFor(request.Handle); _keys.Remove(request.Handle); } _indexGenerator.Release(request.Handle); return(NativeResultCode.Success); }