PspRelinquishUmsThreadSpecialApc

VOID __stdcall PspRelinquishUmsThreadSpecialApc(
        INT64 a1,
        INT64 a2,
        INT64 a3,
        PFN_WDFDMATRANSACTIONSETCHANNELCONFIGURATIONCALLBACK *a4,
        OPERATION_ID *a5){
  INT64 *v6; 
  PFN_WDFDMATRANSACTIONSETCHANNELCONFIGURATIONCALLBACK CurrentThread; 
  NTSTATUS v8; 

  v6 = *(INT64 **)(a1 + 88);
  CurrentThread = *a4;
  v8 = 0;
  if( !*a4 )
    CurrentThread = (PFN_WDFDMATRANSACTIONSETCHANNELCONFIGURATIONCALLBACK)KeGetCurrentThread();
  if( *((char *)CurrentThread + 3) < 0 )
    v8 = PspDisassociateUmsThreadFromPrimary((PETHREAD)*a4, *(PVOID *)a5, v6);
  else
    *(_DWORD *)v6 |= 2u;
  *(_DWORD *)(a1 + 96) = v8;
  KeSignalGate((_KGATE *)(a1 + 104), 1i64);
}

Referenced by:

No references.