MCPcopy Create free account
hub / github.com/SamNet-dev/snix / Open

Function Open

platform/windows/windivert_api.go:97–116  ·  view source on GitHub ↗

Open invokes WinDivertOpen. Returns a handle or an error.

(filter string, layer uint32, priority int16, flags uint64)

Source from the content-addressed store, hash-verified

95
96// Open invokes WinDivertOpen. Returns a handle or an error.
97func Open(filter string, layer uint32, priority int16, flags uint64) (handleRaw, error) {
98 if err := dll.Load(); err != nil {
99 return invalidHandle, fmt.Errorf("snix/windows: WinDivert.dll not loadable: %w (install WinDivert and ensure the DLL is on PATH or next to snix.exe)", err)
100 }
101 fptr, err := windows.BytePtrFromString(filter)
102 if err != nil {
103 return invalidHandle, err
104 }
105 r1, _, e1 := procWinDivertOpen.Call(
106 uintptr(unsafe.Pointer(fptr)),
107 uintptr(layer),
108 uintptr(uint16(priority)),
109 uintptr(flags),
110 )
111 h := handleRaw(r1)
112 if h == invalidHandle {
113 return invalidHandle, fmt.Errorf("WinDivertOpen: %w", translateErr(e1))
114 }
115 return h, nil
116}
117
118// Recv fetches the next packet into buf. Returns the number of bytes and
119// the address metadata. On error, n is undefined.

Callers 1

OpenMethod · 0.85

Calls 2

handleRawTypeAlias · 0.85
translateErrFunction · 0.85

Tested by

no test coverage detected