IFSMgr_GetLockState

IFSMgr_GetLockState(
 unsigned long Drive,
 unsigned long * pLockType,
 unsigned long * pLockFlags,
 unsigned long * pLockOwner
 )
 

This service returns information about volume locks on a given drive.

Drive
Supplies the 0-based drive number to query the volume lock information for.
pLockType
Supplies a pointer to the variable to contain the type of volume lock in effect.
pLockFlags
Supplies a pointer to the variable to contain flags for the volume lock in effect.
pLockOwner
Supplies a pointer to the variable to contain the process ID of the process owning the volume lock.
pLockType Returns the current lock level in effect. The lock level can take on the values listed below.

Lock Type Values:  
Value Meaning
-1 This indicates that no lock is currently in effect.
0 This indicates that a level 0 lock is currently in effect.
1 This indicates that a level 1 lock is currently in effect.
2 This indicates that a level 2 lock is currently in effect.
3 This indicates that a level 3 lock is currently in effect.

pLockFlags Returns flags operative for the current lock level, if any.

Lock Flag Values:  
Value Meaning
LOCKP_ALLOW_WRITES Indicates that the volume lock taken allows writes to happen while it is in effect. If this flag is not set and a volume lock is in effect, the volume lock does not allow writes to happen. This flag is not valid for a level 0 lock, it is valid on all other lock levels.
LOCKP_FAIL_MEM_MAPPING Indicates that memory-mapping operations cannot be done while the volume lock is effect. If this flag is not set and a volume lock is in effect, memory-mappings are allowed while the volume lock is operative. This flag is not valid for a level 0 lock, it is valid on all other lock levels.
LOCKP_LOCK_FOR_FORMAT Indicates that the volume is locked for a format operation. This flag is valid only when the lock level is 0. If this flag is not and a level 0 lock is in effect, the volume is not locked for formatting.

pLockOwner Returns the process ID of the process owning the lock. Note that this is an internally generated process ID and does not refer to any specific data structure. It is purely to be used for identification purposes without any interpretations done on it.