Initial commit: Null DRM Official
Capture, decrypt, and restream toolkit with compiled-in app modules (RTE, TG4, BBC), on-device MITM proxy, streamd control plane, and www. BBC module.yaml is published (clear streams); other module values stay local.
This commit is contained in:
commit
2fa8f2435f
121 changed files with 17802 additions and 0 deletions
35
apps/streamd/internal/supervisor/proc_windows.go
Normal file
35
apps/streamd/internal/supervisor/proc_windows.go
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
//go:build windows
|
||||
|
||||
package supervisor
|
||||
|
||||
import (
|
||||
"os"
|
||||
"os/exec"
|
||||
"syscall"
|
||||
)
|
||||
|
||||
func hideWindow(cmd *exec.Cmd) {
|
||||
cmd.SysProcAttr = &syscall.SysProcAttr{
|
||||
HideWindow: true,
|
||||
CreationFlags: 0x08000000, // CREATE_NO_WINDOW
|
||||
}
|
||||
}
|
||||
|
||||
func processDead(pid int) bool {
|
||||
p, err := os.FindProcess(pid)
|
||||
if err != nil {
|
||||
return true
|
||||
}
|
||||
// On Windows, FindProcess always succeeds; OpenProcess is needed.
|
||||
// tasklist-style: try duplicate handle via Signal is unsupported.
|
||||
// Use Windows API indirectly: if Wait with timeout 0 isn't available,
|
||||
// check via tasklist is heavy — use syscall OpenProcess.
|
||||
const PROCESS_QUERY_LIMITED_INFORMATION = 0x1000
|
||||
h, err := syscall.OpenProcess(PROCESS_QUERY_LIMITED_INFORMATION, false, uint32(pid))
|
||||
if err != nil {
|
||||
return true
|
||||
}
|
||||
_ = p
|
||||
syscall.CloseHandle(h)
|
||||
return false
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue