NtRequestPort
NTSTATUS __fastcall NtRequestPort(UINT64 a1, __m256i *a2){
int v4;
_ETHREAD *CurrentThread;
_ALPC_DISPATCH_CONTEXT DispatchContext;
PVOID Object;
memset(&DispatchContext, 0i64, sizeof(DispatchContext));
Object = 0i64;
v4 = ObReferenceObjectByHandle(
(VOID *)a1,
1ui64,
AlpcPortObjectType,
KeGetCurrentThread()->PreviousMode,
&Object,
0i64);
if( v4 >= 0 )
{
DispatchContext.PortObject = (_ALPC_PORT *)Object;
DispatchContext.Flags = 0x10000;
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
--CurrentThread->Tcb.KernelApcDisable;
v4 = AlpcpSendMessage(&DispatchContext, (_PORT_MESSAGE *)a2, 0i64, KeGetCurrentThread()->PreviousMode);
KeLeaveCriticalRegionThread(KeGetCurrentThread());
HalPutDmaAdapter((PADAPTER_OBJECT)Object);
}
return v4;
}Referenced by:
No references.