else
{
- AFSProcessDestroy( ParentId,
- ProcessId);
+ AFSProcessDestroy( ProcessId);
}
return;
else
{
- AFSProcessDestroy( CreateInfo->ParentProcessId,
- ProcessId);
+ AFSProcessDestroy( ProcessId);
}
}
}
void
-AFSProcessDestroy( IN HANDLE ParentId,
- IN HANDLE ProcessId)
+AFSProcessDestroy( IN HANDLE ProcessId)
{
NTSTATUS ntStatus = STATUS_SUCCESS;
ullProcessID);
ntStatus = AFSLocateHashEntry( pDeviceExt->Specific.Control.ProcessTree.TreeHead,
- (ULONGLONG)ullProcessID,
+ ullProcessID,
(AFSBTreeEntry **)&pProcessCB);
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);
- ASSERT( FALSE);
AFSReleaseResource( pDeviceExt->Specific.Control.ProcessTree.TreeLock);
+
try_return( ntStatus = STATUS_UNSUCCESSFUL);
}