ObpPostInterceptHandleCreate

NTSTATUS __stdcall ObpPostInterceptHandleCreate(
        VOID *Object,
        UINT8 KernelHandle,
        INT64 Status,
        UINT64 GrantedAccess,
        _LIST_ENTRY *ThreadCallbackListHead){
  unsigned __int64 v5; 
  _OB_POST_OPERATION_INFORMATION PostOperationInfo; 
  int v8; 

  PostOperationInfo.CallContext = 0i64;
  PostOperationInfo.Object = Object;
  PostOperationInfo.Parameters = (POB_POST_OPERATION_PARAMETERS)&v8;
  *(&PostOperationInfo.ReturnStatus + 1) = 0;
  PostOperationInfo.Operation = 1;
  PostOperationInfo.ReturnStatus = Status;
  PostOperationInfo.Flags = KernelHandle & 1;
  v5 = (unsigned __int8)*((char *)Object - 24) ^ (unsigned __int64)(unsigned __int8)((unsigned __int16)((_WORD)Object - 48) >> 8);
  v8 = GrantedAccess;
  PostOperationInfo.ObjectType = (POBJECT_TYPE)ObTypeIndexTable[(unsigned __int8)ObHeaderCookie ^ v5];
  ObpCallPostOperationCallbacks(&PostOperationInfo, ThreadCallbackListHead);
  return 0;
}

Referenced by:

ObpCreateHandle