SPIN_LOCK_ALREADY_OWNED
Code: 0xf (15)
As HRESULT:- S: 0 (Success)
- C: 0 (Microsoft-defined)
- N: 0 (Not an NTSTATUS value)
- Facility: 0x000 (FACILITY_NULL: Default)
- Code: 0x000f (15)
- Sev: 0 (STATUS_SEVERITY_SUCCESS)
- C: 0 (Microsoft-defined)
- Facility: 0x000 (Default)
- Code: 0x000f (15)
Description
The SPIN_LOCK_ALREADY_OWNED bug check has a value of 0x0000000F. This indicates that a request for a spin lock has been initiated when the spin lock was already owned.
Important
This article is for programmers. If you're a customer who has received a blue screen error code while using your computer, see Troubleshoot blue screen errors.
SPIN_LOCK_ALREADY_OWNED Parameters
None
Cause
Typically, this error is caused by a recursive request for a spin lock. It can also occur if something similar to a recursive request for a spin lock has been initiated--for example, when a spin lock has been acquired by a thread, and then that same thread calls a function, which also tries to acquire a spin lock. The second attempt to acquire a spin lock is not blocked in this case because doing so would result in an unrecoverable deadlock. If the calls are made on more than one processor, then one processor will be blocked until the other processor releases the lock.
This error can also occur, without explicit recursion, when all threads and all spin locks are assigned an IRQL. Spin lock IRQLs are always greater than or equal to DPC level, but this is not true for threads. However, a thread that is holding a spin lock must maintain an IRQL greater than or equal to that of the spin lock. Decreasing the thread IRQL below the IRQL level of the spin lock that it is holding allows another thread to be scheduled on the processor. This new thread could then attempt to acquire the same spin lock.
Resolution
Ensure that you are not recursively acquiring the lock. And, for threads that hold a spin lock, ensure that you are not decreasing the thread IRQL to a level below the IRQL of the spin lock that it is holding.
Article text from the Windows driver documentation (opens in a new tab), by Microsoft, under the CC BY 4.0 (opens in a new tab) licence.
Associated Modules
| Module | Code | Found in | Description |
|---|---|---|---|
| ESENT.dll | 0xf | 8.11011 | Resource Failure Simulation |
| EventCreate.exe | 0xf | 78.11011 | %1 |
| KernelBase.dll | 0xf | 78.1 | The system cannot find the drive specified. |
| NetTCPIP.dll | 0xf | 1011 | Invalid parameter %1 |
| VSSVC.exe | 0xf | 1011 | The user name %1 specified in registry (%2) does not map to a real user name. The entry is ignored. It must have a valid username as name, be of type REG_DWORD, and value either '0' or '1'. %3 |
| WinSAT.exe | 0xf | 1011 | WinSAT is already running. |
| cipher.exe | 0xf | 78.11011 | Setting the directory %1 not to encrypt new files |
| compact.exe | 0xf | 78.11011 | Uncompressing files in %1 |
| cscui.dll | 0xf | 1011 | Decryption of the Offline Files cache completed successfully. |
| deviceaccess.dll | 0xf | 8.1 | Task %1 request failed. %2 cannot access device %4 in the background because: %7. |
| dsreg.dll | 0xf | 1011 | The complete join response operation failed with exit code: %1. |
| dssec.dll | 0xf | 78.11011 | Unused |
| ehepgres.dll | 0xf | 7 | %1 |
| findstr.exe | 0xf | 78.11011 | %1: Error reading file %2. |
| finger.exe | 0xf | 78.1 | Server port %1!d! in use! |
| fontview.exe | 0xf | 78.11011 | %1 & %2 |
| ftp.exe | 0xf | 78.1 | Server port %1!d! in use! |
| hostname.exe | 0xf | 78.1 | Server port %1!d! in use! |
| kernel32.dll | 0xf | 78.11011 | The system cannot find the drive specified. |
| microsoft-windows-hal-events.dll | 0xf | 10 | The iommu has detected an error. |
| microsoft-windows-hal-events.dll | 0xf | 11 | The IOMMU has detected an error. Device: %1 FaultInformation: %2 FaultReason: %3 ExtendedData: %4 |
| mountvol.exe | 0xf | 78.11011 | This volume does not support this operation. Dynamic volumes and removable volumes do not support this operation. |
| msprivs.dll | 0xf | 78.11011 | Create a pagefile |
| netcfg.exe | 0xf | 1011 | %1 ----------------- |
| netdacim.dll | 0xf | 8.11011 | Only the following prefix lengths are allowed for NAT64: 32, 40, 48, 56, 64, and 96. |
| netnccim.dll | 0xf | 8.11011 | Only the following prefix lengths are allowed for NAT64: 32, 40, 48, 56, 64, and 96. |
| netttcim.dll | 0xf | 8.11011 | Only the following prefix lengths are allowed for NAT64: 32, 40, 48, 56, 64, and 96. |
| nslookup.exe | 0xf | 78.11011 | Host or domain name |
| powershell.exe | 0xf | 78.11011 | Cannot locate the required element ConsoleSchemaVersion in the Windows PowerShell console file "%1!ls!". |
| reagentc.exe | 0xf | 1011 | Configure the system to start the Windows Recovery Environment (Windows RE)
next time the system starts up. This command can only be used from the running
operating system.
%1 /boottore [/logpath |
| reagentc.exe | 0xf | 8.1 | Configure the system to start the Windows Recovery Environment (Windows RE) next time the system starts up. This command can only be used from the running operating system. %1 /boottore Example: %1 /boottore |
| sc.exe | 0xf | 78.11011 | DESCRIPTION:
Retrieves the actions performed on service failure.
USAGE:
sc |
| sstpsvc.dll | 0xf | 1011 | The Secure Socket Tunneling Protocol service could not get the network address of the remote server. This address is required for establishing the route for redirecting the traffic over the VPN interface. The detailed error message is provided below. Correct the problem and try again. %1 |
| tpm.sys | 0xf | 1011 | The device driver for the Trusted Platform Module (TPM) encountered a non-recoverable error in the TPM hardware, which prevents TPM services (such as data encryption) from being used. For further help, please contact the computer manufacturer. |
| w32time.dll | 0xf | 1011 | The time provider NtpClient was unable to find a domain controller to use as a time source. NtpClient will fall back to the remaining configured time sources, if any are available. The error was: %1 |
| webservices.dll | 0xf | 78.11011 | The field offset/size was outside of the containing structure. |
| wecutil.exe | 0xf | 78.11011 | Failed to set %1!s! property. |
| wevtutil.exe | 0xf | 78.11011 | Too many arguments are specified. |
| wfascim.dll | 0xf | 1011 | Tunnel mode properties cannot be applied to transport-mode rules. |
| win32k.sys | 0xf | 78.1 | WheelScrollChars |
| win32kbase.sys | 0xf | 1011 | WheelScrollChars |
| wininit.exe | 0xf | 10 | Credential Guard is configured but the secure kernel is not running; continuing without Credential Guard. |
| wininit.exe | 0xf | 11 | Credential Guard and/or VBS Key Isolation are configured but the secure kernel is not running; continuing without them. |
| wscsvc.dll | 0xf | 1011 | Updated %1 status successfully to %2. |
| 44 entries | |||