public override SystemService FindService(int vector, ProcessorState state, SegmentMap segmentMap) { if (vector == 0x20) { // Dynamic VxD call. //$TODO: look up the call to determine what parameters it uses. var addr = state.InstructionPointer + 2; var dwService = state.GetMemoryValue(addr + 2, PrimitiveType.Word32, segmentMap); return(new SystemService { Name = $"SVC${dwService:X8}", Signature = FunctionType.Action(), Characteristics = new ProcedureCharacteristics { ReturnAddressAdjustment = 6, } }); } return(null); }