diff --git a/BurnOutSharp/ProtectionType/WinLock.cs b/BurnOutSharp/ProtectionType/WinLock.cs
new file mode 100644
index 00000000..640e9ace
--- /dev/null
+++ b/BurnOutSharp/ProtectionType/WinLock.cs
@@ -0,0 +1,45 @@
+using System.Collections.Concurrent;
+using System.Collections.Generic;
+using BurnOutSharp.Interfaces;
+using BurnOutSharp.Matching;
+
+namespace BurnOutSharp.ProtectionType
+{
+ ///
+ /// WinLock (by B16MCC) is a program that allows the user to create a CD-R with intentional errors.
+ /// It does this by modifying an existing cuesheet to include 3 additional tracks that wiould be created from the file "WinLock.PSX".
+ /// It then allows the user to automatically modify that file while the CD-R is being burnt, causing there to be errors at the end of the disc.
+ /// Note that no additional files are written to the disc itself, the additional tracks created are invalid.
+ /// Based on the included "WinLock.txt", this is intended specifically for PSX discs.
+ /// The website appears to have relied heavily on Java, none of which appears to be archived online (https://web.archive.org/web/20010221030118/http://www.diamondcdroms.co.uk:80/).
+ /// Download: https://cmw.mobiletarget.net/?f=winlock.zip.
+ /// https://www.cdmediaworld.com/hardware/cdrom/cd_news_0001.shtml
+ /// Doesn't appear to be related to https://www.crystaloffice.com/winlock/.
+ ///
+ public class WinLock : IPathCheck
+ {
+ ///
+ public ConcurrentQueue CheckDirectoryPath(string path, IEnumerable files)
+ {
+ var matchers = new List
+ {
+ // This is the temporary dummy file created in the C: drive.
+ new PathMatchSet(new PathMatch("WinLock.PSX", useEndsWith: true), "WinLock"),
+ };
+
+ return MatchUtil.GetAllMatches(files, matchers, any: true);
+ }
+
+ ///
+ public string CheckFilePath(string path)
+ {
+ var matchers = new List
+ {
+ // This is the temporary dummy file created in the C: drive.
+ new PathMatchSet(new PathMatch("WinLock.PSX", useEndsWith: true), "WinLock"),
+ };
+
+ return MatchUtil.GetFirstMatch(path, matchers, any: true);
+ }
+ }
+}
diff --git a/BurnOutSharp/ProtectionType/Winlock.cs b/BurnOutSharp/ProtectionType/Winlock.cs
deleted file mode 100644
index 73a3eb00..00000000
--- a/BurnOutSharp/ProtectionType/Winlock.cs
+++ /dev/null
@@ -1,32 +0,0 @@
-using System.Collections.Concurrent;
-using System.Collections.Generic;
-using BurnOutSharp.Interfaces;
-using BurnOutSharp.Matching;
-
-namespace BurnOutSharp.ProtectionType
-{
- public class Winlock : IPathCheck
- {
- ///
- public ConcurrentQueue CheckDirectoryPath(string path, IEnumerable files)
- {
- var matchers = new List
- {
- new PathMatchSet(new PathMatch("WinLock.PSX", useEndsWith: true), "Winlock (Unconfirmed - Please report to us on Github)"),
- };
-
- return MatchUtil.GetAllMatches(files, matchers, any: true);
- }
-
- ///
- public string CheckFilePath(string path)
- {
- var matchers = new List
- {
- new PathMatchSet(new PathMatch("WinLock.PSX", useEndsWith: true), "Winlock (Unconfirmed - Please report to us on Github)"),
- };
-
- return MatchUtil.GetFirstMatch(path, matchers, any: true);
- }
- }
-}
diff --git a/README.md b/README.md
index 85c3ec7b..41c57ed4 100644
--- a/README.md
+++ b/README.md
@@ -92,7 +92,7 @@ Below is a list of protections detected by BurnOutSharp. The two columns explain
| TZCopyProtection | False | True | Partially unconfirmed² |
| Uplay | True | True | |
| Windows Media Data Session DRM | True | True | |
-| Winlock | False | True | Unconfirmed¹ |
+| Winlock | False | True | |
| WTM CD Protect | True | True | |
| XCP | True | True | |
| Zzxzz | False | True | |