Einzelnen Beitrag anzeigen

Kas Ob.

Registriert seit: 3. Sep 2023
355 Beiträge
 
#37

AW: In Asm-Prozedur eine Exception auslösen

  Alt 11. Nov 2023, 09:57
@kas ob
First, the only Standard Interrupt on Windows is INT 3. It will be handled as/for Debug reason. This Interrupt is addressed into the GDT, and IDT Table (that is an Operating System Issue). I don't want go into the depth with this, because it will cover more things, that you don't understand.
There is more than one Interrupt https://www.felixcloutier.com/x86/intn:into:int3:int1
I do understand it all.

Again, you need to create a Instance of a Exception Class to "stack up" the Exception.
Each Exception (class) need then stack Prolog, and Epilog.
The Prolog is for clean "build stack", the Epilog is for clean "destroy stack". This is a very import memory thing, because each Exception "can" have Parameters like .Create(42); or .Create('foo'); or .Create('foo','fufu',42); or simply .Create;
You are confusing the exception and its class with the SEH structure that will trap the exception, exception will not have Prolog or Epilog, these are and should be for each function/procedure for the unwinder to unwind till reaching the last exception trap, and they has nothing to do with the exception itself or its parameter, except where it did raised and where to start to unwind, if the parameters of the context is known for the OS then it will handle it, otherwise it will pass these SEH, also exception not only raised manually, eg. most of the assembly code that access memory can and might raise Page Faults which also are exception, and none the less will be passed to last SEH, only if the OS decide to, does these have prolog or epilog !!? no is the answer, and they don't have exception class at all, the OS will build parameters then do the unwind then pass these parameters to the last SEH found, if the applicaiton have one then it is OK, if not then most likely the OS will kill that process/application.

Second, Microsoft Windows uses very often COM+ (Component Object Model) things.
That is based on the Terminal Server Services, and/or the Remote Access Services (RD Remote Desktop).
This services are for centralized the maintain flow of Enterprise/Corporation's firms Computerdesk.
Honestly, i have no idea what COM or COM+ or DCOM has to do here in this thread, but for the sake of clarification
https://stackoverflow.com/questions/...onent-services
https://www.geeksforgeeks.org/differ...com-and-dcom/#
So in very short sentences, COM is Windows way to overcome compatibility and portability for code over many or any programming language.
COM+ is advanced COM with extra layer of security and authentication.
DCOM is Distributed COM, provide the ability be for COM+ to be called and executed remotely, and by remotely not only over wire or Internet connection but also on different users accounts and different session, different domains also supported...etc.
That is it.
Kas
  Mit Zitat antworten Zitat