NtAlpcDisconnectPort
NTSTATUS __stdcall NtAlpcDisconnectPort(VOID *PortHandle, UINT64 Flags){
_ETHREAD *CurrentThread;
unsigned int v3;
int v4;
_ALPC_PORT *AlpcPort;
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
v3 = Flags;
--CurrentThread->Tcb.KernelApcDisable;
if( (Flags & 0xFFFFFFFE) != 0 )
{
v4 = -1073741811;
}
else
{
AlpcPort = 0i64;
v4 = ObReferenceObjectByHandle(
PortHandle,
1ui64,
AlpcPortObjectType,
KeGetCurrentThread()->PreviousMode,
(VOID **)&AlpcPort,
0i64);
if( v4 >= 0 )
{
v4 = AlpcpDisconnectPort(AlpcPort, v3);
HalPutDmaAdapter((PADAPTER_OBJECT)AlpcPort);
}
}
KeLeaveCriticalRegionThread(KeGetCurrentThread());
return v4;
}Referenced by:
No references.