AlpcpGetPortNameInformation
INT64 __fastcall AlpcpGetPortNameInformation(
VOID *PortObject,
OBJECT_NAME_INFORMATION **PortNameInformation,
UINT64 *PortNameLength){
unsigned int v3;
int v7;
OBJECT_NAME_INFORMATION *PoolWithTag;
OBJECT_NAME_INFORMATION *v9;
SIZE_T NumberOfBytes;
v3 = *(_DWORD *)PortNameLength;
LODWORD(NumberOfBytes) = 0;
v7 = ObQueryNameStringMode(PortObject, 0i64, 0i64, &NumberOfBytes, 0);
if( v7 == -1073741820 )
{
if( (unsigned int)NumberOfBytes <= v3 )
{
PoolWithTag = (OBJECT_NAME_INFORMATION *)ExAllocatePoolWithTag(
PagedPool,
(unsigned int)NumberOfBytes,
0x43504C41ui64);
v9 = PoolWithTag;
if( PoolWithTag )
{
v7 = ObQueryNameStringMode(PortObject, PoolWithTag, (unsigned int)NumberOfBytes, &NumberOfBytes, 0);
if( v7 < 0 )
ExFreePoolWithTag(v9, 0);
else
*PortNameInformation = v9;
}
else
{
v7 = -1073741801;
}
}
*(_DWORD *)PortNameLength = NumberOfBytes;
}
return(unsigned int)v7;
}Referenced by:
AlpcpLogWaitForNewMessage
AlpcpPortQueryServerInfo