IopTranslateBusAddress
NTSTATUS __stdcall IopTranslateBusAddress(
PHYSICAL_ADDRESS SourceAddress,
UINT8 SourceResourceType,
_LARGE_INTEGER *TargetAddress,
UINT8 *TargetResourceType){
ULONG v6;
_LARGE_INTEGER TranslatedAddress;
if( ((SourceResourceType - 3) & 0xFB) != 0 )
{
if( SourceResourceType != 1 )
return -1073741811;
v6 = 1;
}
else
{
v6 = 0;
}
TranslatedAddress.anonymous_0.LowPart = v6;
if( !(unsigned __int8)HalTranslateBusAddress(Isa, 0, SourceAddress, &TranslatedAddress) )
return -1073741823;
if( (TranslatedAddress.anonymous_0.LowPart & 0xFFFFFFF9) == 0 )
{
if( !v6 && SourceResourceType == 7 )
*TargetResourceType = 7;
else
*TargetResourceType = 3;
return 0;
}
if( ((TranslatedAddress.anonymous_0.LowPart - 1) & 0xFFFFFFFD) == 0 )
{
*TargetResourceType = 1;
return 0;
}
return -1073741811;
}Referenced by:
IopGenericTranslateOrdering