IFSMgr_RemoveLocks


IFSMgr_RemoveLocks(
 void ** ppFSDLockListHead,
 unsigned long LockOwner,
 void *  pOpenFileInstance
 )

This service is called to remove the locks on a file.

ppFSDLockListHead

Supplies a pointer to a variable that contains the pointer to the list of locks.

LockOwner

Supplies the process id of the process requesting the lock. A special process id of 0 can be passed in to remove all locks for a given file instance. Typically, this special value would be passed in when a process is terminating and its open file instance is being closed but there are still other processes that have the file open.

pOpenFileInstance

Supplies a pointer to the structure that describes the current open file instance. A special value of 0 can be passed in to remove the locks by the specified process for all instances of the open file.

ppFSDLockListHead

The lock list head stored in this variable might have been updated or set to NULL.


There is one special case. If both the LockOwner and the pOpenFileInstance parameters are passed in as 0, then all active locks on the file are removed. This would usually be done when there are no open instances for an open file and the open file structure is being freed. If an open file is deleted, that would be another situation where all active locks on the file need to be removed.