I've written some interop code that somewhat stresses the highlevelnrfjprog.dll using C# interop code. Since there is no apparent primary way of detecting if a device has been disconnected from the debugger or not, I was polling the NRFJPROG_get_device_info method to look for failures. During one of these polling sessions, Windows crashed with a BSOD. I've attached the dump file but everything points to there being some issue within the jlink_nrf_worker process referencing an invalid address:
IRQL_NOT_LESS_OR_EQUAL (a) An attempt was made to access a pageable (or completely invalid) address at an interrupt request level (IRQL) that is too high. This is usually caused by drivers using improper addresses. If a kernel debugger is available get the stack backtrace. Arguments: Arg1: 0000000000000000, memory referenced Arg2: 0000000000000002, IRQL Arg3: 0000000000000000, bitfield : bit 0 : value 0 = read operation, 1 = write operation bit 3 : value 0 = not an execute operation, 1 = execute operation (only on chips which support this level of status) Arg4: fffff8036183246b, address which referenced memory .... PROCESS_NAME: jlinkarm_nrf_w
It looks like I can't upload the dump file here so I added a .pdf extension