Multi-platform .NET bindings to the Ultralight project.
1using System;
2using System.Runtime.InteropServices;
3using ImpromptuNinjas.UltralightSharp;
4
5namespace Nvidia.Nsight.Injection {
6
7 public enum NsightInjectionResult {
8
9 Ok = 0,
10
11 Failure = -1,
12
13 InvalidArgument = -2,
14
15 InjectionFailed = -3,
16
17 AlreadyInjected = -4,
18
19 NotInjected = -5,
20
21 DriverStillLoaded = -6,
22
23 }
24
25 public enum NsightSku {
26
27 Unknown,
28
29 Public,
30
31 Pro,
32
33 Internal,
34
35 }
36
37 public unsafe partial struct NsightInjectionInstallationInfo {
38
39 public NsightSku Sku;
40
41 [NativeTypeName("uint16_t")]
42 public ushort VersionMajor;
43
44 [NativeTypeName("uint16_t")]
45 public ushort VersionMinor;
46
47 [NativeTypeName("uint16_t")]
48 public ushort VersionPatch;
49
50 [NativeTypeName("const NGFX_Injection_PathChar *")]
51 public ushort* InstallationPath;
52
53 }
54
55 public enum NsightInjectionActivityType {
56
57 Unknown,
58
59 FrameDebugger,
60
61 FrameProfiler,
62
63 GenerateCppCapture,
64
65 GpuTrace,
66
67 }
68
69 public unsafe partial struct NsightInjectionActivity {
70
71 public NsightInjectionActivityType Type;
72
73 [NativeTypeName("const char *")]
74 public sbyte* Description;
75
76 }
77
78 public static unsafe partial class Nsight {
79
80 [DllImport("NGFX_Injection", CallingConvention = CallingConvention.Cdecl, EntryPoint = "NGFX_Injection_EnumerateInstallations", ExactSpelling = true)]
81 public static extern NsightInjectionResult EnumerateInstallations([NativeTypeName("uint32_t *")] uint* pCount, [NativeTypeName("NGFX_Injection_InstallationInfo *")]
82 NsightInjectionInstallationInfo* pInstallations);
83
84 [DllImport("NGFX_Injection", CallingConvention = CallingConvention.Cdecl, EntryPoint = "NGFX_Injection_EnumerateActivities", ExactSpelling = true)]
85 public static extern NsightInjectionResult EnumerateActivities([NativeTypeName("const NGFX_Injection_InstallationInfo *")]
86 NsightInjectionInstallationInfo* pInstallation, [NativeTypeName("uint32_t *")] uint* pCount, [NativeTypeName("NGFX_Injection_Activity *")]
87 NsightInjectionActivity* pActivities);
88
89 [DllImport("NGFX_Injection", CallingConvention = CallingConvention.Cdecl, EntryPoint = "NGFX_Injection_InjectToProcess", ExactSpelling = true)]
90 public static extern NsightInjectionResult InjectToProcess([NativeTypeName("const NGFX_Injection_InstallationInfo *")]
91 NsightInjectionInstallationInfo* pInstallation, [NativeTypeName("const NGFX_Injection_Activity *")]
92 NsightInjectionActivity* pActivity);
93
94 [DllImport("NGFX_Injection", CallingConvention = CallingConvention.Cdecl, EntryPoint = "NGFX_Injection_ExecuteActivityCommand", ExactSpelling = true)]
95 public static extern NsightInjectionResult ExecuteActivityCommand();
96
97 [NativeTypeName("#define NGFX_Injection_API_VersionMajor 0")]
98 public const int VersionMajor = 0;
99
100 [NativeTypeName("#define NGFX_Injection_API_VersionMinor 7")]
101 public const int VersionMinor = 7;
102
103 [NativeTypeName("#define NGFX_Injection_API_VersionPatch 0")]
104 public const int VersionPatch = 0;
105
106 [NativeTypeName("#define NGFX_Injection_API_Version ((NGFX_Injection_API_VersionMajor*1000) + (NGFX_Injection_API_VersionMinor*10) + NGFX_Injection_API_VersionPatch)")]
107 public const int Version = ((0 * 1000) + (7 * 10) + 0);
108
109 [NativeTypeName("#define NGFX_Injection_API_VersionString NGFX_Injection_API_MK_STR(NGFX_Injection_API_VersionMajor) \".\" NGFX_Injection_API_MK_STR(NGFX_Injection_API_VersionMinor) \".\" NGFX_Injection_API_MK_STR(NGFX_Injection_API_VersionPatch)")]
110 public static ReadOnlySpan<byte> NgfxInjectionApiVersionStringUtf8
111 => new byte[] {0x30, 0x2E, 0x37, 0x2E, 0x30, 0x00};
112
113 [NativeTypeName("#define NGFX_Injection_API_VersionString NGFX_Injection_API_MK_STR(NGFX_Injection_API_VersionMajor) \".\" NGFX_Injection_API_MK_STR(NGFX_Injection_API_VersionMinor) \".\" NGFX_Injection_API_MK_STR(NGFX_Injection_API_VersionPatch)")]
114 public static string NgfxInjectionApiVersionStringUtf16
115 => $"{VersionMajor}.{VersionMinor}.{VersionPatch}";
116
117 }
118
119}