1
0
mirror of https://github.com/fumiama/gozel.git synced 2026-06-23 03:50:30 +08:00

init: project framework

This commit is contained in:
源文雨
2026-03-11 00:17:13 +08:00
parent a91a6683f3
commit f39461341c
5 changed files with 157 additions and 0 deletions

37
ze_core_driver_windows.go Normal file
View File

@@ -0,0 +1,37 @@
package gozel
import (
"syscall"
"unsafe"
)
var procZeInitDrivers *syscall.Proc
// InitDrivers calls zeInitDrivers from ze_loader.dll.
// On success pCount contains the number of drivers and phDrivers (if non-nil)
// is filled with driver handles.
func InitDrivers(desc *ZeInitDriverTypeDesc) ([]ZeDriverHandle, error) {
var count uint32
r, _, _ := procZeInitDrivers.Call(
uintptr(unsafe.Pointer(&count)),
0,
uintptr(unsafe.Pointer(desc)),
)
if ZeResult(r) != ZeResultSuccess {
return nil, ZeResult(r)
}
if count == 0 {
return nil, nil
}
handles := make([]ZeDriverHandle, count)
r, _, _ = procZeInitDrivers.Call(
uintptr(unsafe.Pointer(&count)),
uintptr(unsafe.Pointer(&handles[0])),
uintptr(unsafe.Pointer(desc)),
)
if ZeResult(r) != ZeResultSuccess {
return nil, ZeResult(r)
}
return handles, nil
}