Commit Graph
14 Commits
Author SHA1 Message Date
Kyle W 0b148d19cf Fix corruption in x86 callback 2021-06-14 13:44:35 -07:00
Kevin Parsons 941861fe1a pkg/etw: Fix to build on windows/arm
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>
2021-03-24 15:05:25 -07:00
Kathryn Baldauf 68cdd9bd9d Merge pull request #191 from uhthomas/master
Add build guards for all Windows imports
2021-02-10 17:11:08 -08:00
Kyle Wojtaszek 652abba813 Removing unneeded NewProviderWithGroup function 2021-01-27 14:43:00 -08:00
Kyle Wojtaszek 30844eed75 Add ability to set provider group 2021-01-27 13:12:37 -08:00
Thomas Way 9d8277341f Add build guards for all Windows imports 2021-01-21 23:24:01 +00:00
Kevin Parsons c20fb68775 etw: Add test for provider name to GUID conversion
Also simplified the name to GUID conversion code, and improved the
comments.

Signed-off-by: Kevin Parsons <kevpar@microsoft.com>
2019-07-10 15:12:20 -07:00
Kevin Parsons a2a7cd6b7d Fix errors introduced with guid-by-value change
Signed-off-by: Kevin Parsons <kevpar@microsoft.com>
2019-05-08 16:43:22 -07:00
Kevin Parsons 0112307ab4 Fix ETW package to work on 386
The ETW registration handle is defined to be 64-bits on all platforms. The Go
type previously used a uintptr which created problems on 32-bit systems. This
change adds a new wrapper file which receives a 64-bit handle for the functions
defined in it, and correctly passes it to the native ETW functions either as-is
(on 64-bit) or as two 32-bit values (on 32-bit).

This required a minor change in mksyscall_windows.go, to allow multiple syscalls
that map to the same underlying function without causing a duplicate definition
error in the generated file.
2019-04-22 10:28:49 -07:00
Kevin Parsons a4918f0a0f Make ETW no-op on ARM
Proper support for ETW on ARM will require additional changes in Go to support
more than 16 bytes of arguments to a syscall callback. Until this work is done,
the ETW package is being changed to no-op on ARM.
2019-04-20 19:23:37 -07:00
Kevin Parsons dac77d8a7c etw: Fix panic when provider creation fails
There is a cleanup function deferred to remove the provider from the global
provider map. However, this function didn't bind the value of provider ahead of
time, so when the provider creation returned with nil for provider, we tried to
cleanup a nil provider, and panicked.
2019-04-19 10:43:53 -07:00
Kevin Parsons 88da7d1491 Add guid package 2019-04-01 16:07:14 -07:00
Kevin Parsons 9ea416ec01 Fix activity ID not being passed in ETW 2019-03-22 11:11:18 -07:00
Kevin Parsons ce5a3739bc Export etw package 2019-03-18 23:57:19 -07:00