mkwinsyscall Golang 官方提供将windows系统调用生成GO函数的工具。

golang.org/x/sysgolang.org/x/sys
go get -u golang.org/x/sys

使用方式如下

go run golang.org/x/sys/windows/mkwinsyscall [flags] [path ...]

这里进行快速入门详细说明请参考 mkwinsyscall 文档

系统调用API生成步骤

mkwinsyscall//sysmkwinsyscall

实例:

conversion_windows.go
//sys	convertInterfaceLUIDToGUID(interfaceLUID *uint64, interfaceGUID *windows.GUID) (ret error) = iphlpapi.ConvertInterfaceLuidToGuid

规则: sys Go函数名称(Go参数列表) 返还值= 动态库名称.动态库提供的函数名称

详细规则请参考: 官方GO Doc

接下来是运行工具生成封装的系统调用:

go run golang.org/x/sys/windows/mkwinsyscall -output zsyscall_windows.go conversion_windows.go
go run golang.org/x/sys/windows/mkwinsyscall-outputzsyscall_windows.gomkwinsyscall//sys