pProcessCB == NULL)
{
- AFSProcessCreate( 0,
- ProcessId,
- 0,
- 0);
- }
+ AFSReleaseResource( pDeviceExt->Specific.Control.ProcessTree.TreeLock);
- if( !NT_SUCCESS( ntStatus) ||
- pProcessCB == NULL)
- {
+ AFSAcquireExcl( pDeviceExt->Specific.Control.ProcessTree.TreeLock,
+ TRUE);
- AFSDbgLogMsg( AFS_SUBSYSTEM_AUTHGROUP_PROCESSING,
- AFS_TRACE_LEVEL_ERROR,
- "%s Failed to locate process entry for ProcessID %I64X\n",
- __FUNCTION__,
- ullProcessID);
+ ntStatus = AFSLocateHashEntry( pDeviceExt->Specific.Control.ProcessTree.TreeHead,
+ ullProcessID,
+ (AFSBTreeEntry **)&pProcessCB);
- AFSReleaseResource( pDeviceExt->Specific.Control.ProcessTree.TreeLock);
+ if( !NT_SUCCESS( ntStatus) ||
+ pProcessCB == NULL)
+ {
+
+ AFSProcessCreate( 0,
+ ProcessId,
+ 0,
+ 0);
+ }
+
+ if( !NT_SUCCESS( ntStatus) ||
+ pProcessCB == NULL)
+ {
+
+ AFSDbgLogMsg( AFS_SUBSYSTEM_AUTHGROUP_PROCESSING,
+ AFS_TRACE_LEVEL_ERROR,
+ "%s Failed to locate process entry for ProcessID %I64X\n",
+ __FUNCTION__,
+ ullProcessID);
+
+ AFSReleaseResource( pDeviceExt->Specific.Control.ProcessTree.TreeLock);
+
+ try_return( ntStatus = STATUS_UNSUCCESSFUL);
+ }
- try_return( ntStatus = STATUS_UNSUCCESSFUL);
+ AFSConvertToShared( pDeviceExt->Specific.Control.ProcessTree.TreeLock);
}
//