We don't support actually using ETW on windows/arm, but to make things easier for downstream dependencies, we want to still allow the package to compile and just no-op on this architecture. We do this by returning a nil Provider, and implementing its methods to no-op when the receiver is nil. Previously this was implemented by putting NewProviderWithID in provider_unsupported.go, but when we refactored the code so that the actual work was done in NewProviderWithOptions instead, we didn't fix up provider_unsupported. This change fixes this by putting only NewProviderWithOptions in provider_unsupported.go, since the other provider creation functions call into this one. Signed-off-by: Kevin Parsons <kevpar@microsoft.com>
go-winio
This repository contains utilities for efficiently performing Win32 IO operations in Go. Currently, this is focused on accessing named pipes and other file handles, and for using named pipes as a net transport.
This code relies on IO completion ports to avoid blocking IO on system threads, allowing Go to reuse the thread to schedule another goroutine. This limits support to Windows Vista and newer operating systems. This is similar to the implementation of network sockets in Go's net package.
Please see the LICENSE file for licensing information.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.
Thanks to natefinch for the inspiration for this library. See https://github.com/natefinch/npipe for another named pipe implementation.