SPIN_LOCK_ALREADY_OWNED

Code: 0xf (15)

As HRESULT:As NTSTATUS:

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

ModuleCodeFound inDescription
ESENT.dll0xf8.11011Resource Failure Simulation
EventCreate.exe0xf78.11011%1
KernelBase.dll0xf78.1The system cannot find the drive specified.
NetTCPIP.dll0xf1011Invalid parameter %1
VSSVC.exe0xf1011The 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.exe0xf1011WinSAT is already running.
cipher.exe0xf78.11011Setting the directory %1 not to encrypt new files
compact.exe0xf78.11011Uncompressing files in %1
cscui.dll0xf1011Decryption of the Offline Files cache completed successfully.
deviceaccess.dll0xf8.1Task %1 request failed. %2 cannot access device %4 in the background because: %7.
dsreg.dll0xf1011The complete join response operation failed with exit code: %1.
dssec.dll0xf78.11011Unused
ehepgres.dll0xf7%1
findstr.exe0xf78.11011%1: Error reading file %2.
finger.exe0xf78.1Server port %1!d! in use!
fontview.exe0xf78.11011%1 & %2
ftp.exe0xf78.1Server port %1!d! in use!
hostname.exe0xf78.1Server port %1!d! in use!
kernel32.dll0xf78.11011The system cannot find the drive specified.
microsoft-windows-hal-events.dll0xf10The iommu has detected an error.
microsoft-windows-hal-events.dll0xf11The IOMMU has detected an error. Device: %1 FaultInformation: %2 FaultReason: %3 ExtendedData: %4
mountvol.exe0xf78.11011This volume does not support this operation. Dynamic volumes and removable volumes do not support this operation.
msprivs.dll0xf78.11011Create a pagefile
netcfg.exe0xf1011%1 -----------------
netdacim.dll0xf8.11011Only the following prefix lengths are allowed for NAT64: 32, 40, 48, 56, 64, and 96.
netnccim.dll0xf8.11011Only the following prefix lengths are allowed for NAT64: 32, 40, 48, 56, 64, and 96.
netttcim.dll0xf8.11011Only the following prefix lengths are allowed for NAT64: 32, 40, 48, 56, 64, and 96.
nslookup.exe0xf78.11011Host or domain name
powershell.exe0xf78.11011Cannot locate the required element ConsoleSchemaVersion in the Windows PowerShell console file "%1!ls!".
reagentc.exe0xf1011Configure 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 ] /logpath - Specifies the path of log file. If this argument is not specified, the default path is Windows\Logs\ Reagent\Reagent.log. Example: %1 /boottore /logpath C:\Temp\Reagent.log
reagentc.exe0xf8.1Configure 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.exe0xf78.11011DESCRIPTION: Retrieves the actions performed on service failure. USAGE: sc qfailure [service name]
sstpsvc.dll0xf1011The 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.sys0xf1011The 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.dll0xf1011The 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.dll0xf78.11011The field offset/size was outside of the containing structure.
wecutil.exe0xf78.11011Failed to set %1!s! property.
wevtutil.exe0xf78.11011Too many arguments are specified.
wfascim.dll0xf1011Tunnel mode properties cannot be applied to transport-mode rules.
win32k.sys0xf78.1WheelScrollChars
win32kbase.sys0xf1011WheelScrollChars
wininit.exe0xf10Credential Guard is configured but the secure kernel is not running; continuing without Credential Guard.
wininit.exe0xf11Credential Guard and/or VBS Key Isolation are configured but the secure kernel is not running; continuing without them.
wscsvc.dll0xf1011Updated %1 status successfully to %2.
44 entries