DevHlp KillProc

DevHlp_KillProc kills a process unconditionally.

This is a special entry into DosKillProcess, which is more rigid in killing processes: the killed process won’t be able to execute its kill signal handler, thus open files might not be closed properly. A process currently operating in ring 0 will terminate as soon as it returns to ring 3 (this means, a process blocked in the kernel, e.g. on a pending I/O, can still not be killed). This devhlp corresponds to the SESKillProcess API.

C
There is no direct C calling Sequence.

Assembler
Calling Sequence in Assembler  MOV BX, pid MOV DL, DevHlp_KillProc

CALL [Device_Help] 

C
N/A

Assembler

 * BX = Pid of process to kill, 0 = current process
 * DL = 07dh

C
N/A

Assembler
Results in Assembler
 * C Clear if the process is killed. AX = zero.
 * C Set if error. AX = Error code.

Possible errors
 * 217 ERROR_ZOMBIE_PROCESS Process is already dead pending collection of result codes by parent.
 * 303 ERROR_INVALID_PROCID PID is invalid.

or:

CY=0, AX = 0, okay CY=1, AX = APIRET error code

Remarks
The process is killed unconditionally. Signal and exception handlers are not run. This Device Help may be called at Task Time only.

C
N/A