NtQueryInformationPort
NTSTATUS __stdcall NtQueryInformationPort(
VOID *PortHandle,
PORT_INFORMATION_CLASS PortInformationClass,
VOID *PortInformation,
UINT64 Length,
UINT64 *ReturnLength){
char PreviousMode;
__int64 v7;
int v8;
PVOID Object;
PreviousMode = KeGetCurrentThread()->PreviousMode;
if( PreviousMode )
{
ProbeForWrite((UINT64)PortInformation, (unsigned int)Length, 4i64);
if( ReturnLength )
{
v7 = 0x7FFFFFFF0000i64;
if( (unsigned __int64)ReturnLength < 0x7FFFFFFF0000i64 )
v7 = (__int64)ReturnLength;
*(_DWORD *)v7 = *(_DWORD *)v7;
}
}
if( !PortHandle )
return -1073741821;
Object = 0i64;
v8 = ObReferenceObjectByHandle(PortHandle, 0x20000ui64, AlpcPortObjectType, PreviousMode, &Object, 0i64);
if( v8 >= 0 )
{
if( ReturnLength )
*(_DWORD *)ReturnLength = 0;
HalPutDmaAdapter((PADAPTER_OBJECT)Object);
}
return v8;
}Referenced by:
No references.