IoQueryInterface

NTSTATUS __fastcall IoQueryInterface(
        INT64 a1,
        INT8 a2,
        INT64 a3,
        UINT16 a4,
        INT16 a5,
        INT64 InterfaceSpecificData,
        INT64 Interface){
  if( (a2 & 1) != 0 )
    return IopQueryInterfaceRecurseUp(
             (_DEVICE_OBJECT *)a1,
             (_GUID *)a3,
             a4,
             a5,
             (PVOID)InterfaceSpecificData,
             (_INTERFACE *)Interface);
  else
    return PnpQueryInterface(
             (PDEVICE_OBJECT)a1,
             (_IO_SECURITY_CONTEXT *)a3,
             a5,
             a4,
             InterfaceSpecificData,
             (VOID *)Interface);
}

Referenced by:

ExShareAddressSpaceWithDevice
HalpDmaGetIommuInterface
HalpGetCacheCoherency
HalpIommuGetDeviceId