Commit 9d899c75 authored by Zebediah Figura's avatar Zebediah Figura Committed by Alexandre Julliard

ntoskrnl.exe: Implement IoReleaseRemoveLockEx().

parent 2a929517
......@@ -448,7 +448,7 @@
@ stdcall IoRegisterShutdownNotification(ptr)
@ stdcall IoReleaseCancelSpinLock(long)
@ stdcall IoReleaseRemoveLockAndWaitEx(ptr ptr long)
@ stub IoReleaseRemoveLockEx
@ stdcall IoReleaseRemoveLockEx(ptr ptr long)
@ stub IoReleaseVpbSpinLock
@ stub IoRemoveShareAccess
@ stub IoReportDetectedDevice
......
......@@ -1224,3 +1224,18 @@ NTSTATUS WINAPI IoAcquireRemoveLockEx( IO_REMOVE_LOCK *lock, void *tag,
InterlockedIncrement( &lock->Common.IoCount );
return STATUS_SUCCESS;
}
/***********************************************************************
* IoReleaseRemoveLockEx (NTOSKRNL.EXE.@)
*/
void WINAPI IoReleaseRemoveLockEx( IO_REMOVE_LOCK *lock, void *tag, ULONG size )
{
LONG count;
TRACE("lock %p, tag %p, size %u.\n", lock, tag, size);
if (!(count = InterlockedDecrement( &lock->Common.IoCount )))
KeSetEvent( &lock->Common.RemoveEvent, IO_NO_INCREMENT, FALSE );
else if (count < 0)
ERR("Lock %p is not acquired!\n", lock);
}
......@@ -1603,6 +1603,7 @@ void WINAPI IoInvalidateDeviceRelations(PDEVICE_OBJECT,DEVICE_RELATION_TYPE
void WINAPI IoQueueWorkItem(PIO_WORKITEM,PIO_WORKITEM_ROUTINE,WORK_QUEUE_TYPE,void*);
NTSTATUS WINAPI IoRegisterDeviceInterface(PDEVICE_OBJECT,const GUID*,PUNICODE_STRING,PUNICODE_STRING);
void WINAPI IoReleaseCancelSpinLock(KIRQL);
void WINAPI IoReleaseRemoveLockEx(IO_REMOVE_LOCK*,void*,ULONG);
NTSTATUS WINAPI IoSetDeviceInterfaceState(UNICODE_STRING*,BOOLEAN);
NTSTATUS WINAPI IoWMIRegistrationControl(PDEVICE_OBJECT,ULONG);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment