GssmPlugin.dll
What this program actually does
GssmPlugin.dll is the GameSeat Security Metrics (GSSM) plugin. It collects GPU metrics, downloads ML/manifest artifacts from AWS S3, subscribes to SSLM (seat lifecycle manager) session events, and publishes GssmServiceAPI process/GPU telemetry consumed by UadPlugin and cloud analytics.
It detects session integrity violations (mandatory plugins leaving/joining bus after session activation) and coordinates with GSConfigurator for seat config. MB endpoint: GssmPlugin. Build: version 1.0 2026-04-07-b253f97.
Architecture / control flow
NvContainerGcis.exe
└─ GssmPlugin.dll
├─ GcisPluginTaskQueue / GSConfigClient
├─ GssmServiceAPI handler (protobuf)
│ └─ Event.ProcessEvent — outbound to UadPlugin
├─ AWS integration
│ ├─ S3 — manifest/model download
│ └─ Credential chain (GSEC_GSSM_Error_AwsCredentialsNotDefined)
├─ GpuMetricsLogger / collector initialization
├─ SSLM subscription tracker (shared gsprerequisites)
└─ GsecTasTelemetryKey RTTI: GssmServiceAPI, AWSClient, S3ClientConfiguration, Connector@tas@gs@gfn@nv.
External interfaces
GssmServiceAPI (protobuf)
| Message | Purpose |
|---|---|
GssmServiceAPI.Event.ProcessEvent | Process path, parent, user, digital signature → UadPlugin |
GssmServiceAPI.Event (domain messages) | GPU/session anomaly events |
Feature control via GCISServiceAPI_GCISRequest_GssmFeatureControl | Proxied through GciPlugin |
AWS S3
- Manifest URL from config (
GSEC_GSSM_Error_ManifestUrlNotDefined) - Model download (
GSEC_GSSM_Error_ModelDownloadError,GSEC_GSSM_Error_ManifestError) - Shared
UnableToDownloadS3Filecommon error path
Message Bus / SSLM
- Endpoint:
GssmPlugin SslmSubscriptionTracker— tracks SSLM peer on bus (logged by all GCIS plugins)- Integrity checks:
MandatoryPluginsJoinedMessageBusAfterSessionActivation,MandatoryPluginsLeftMessageBusAfterSessionActivation
Seat config
Requires GcisConfigData blob with GSSM-specific thresholds, S3 URLs, GPU collector settings.
Runtime timeline
| Time (UTC) | Event | Source |
|---|---|---|
| 19:04:52.072 | Secure-load GssmPlugin 1.0.0.0 | NvContainerGcis.log |
| 19:04:52.624 | Init OK, seat info logged | GssmPluginCurrent.log |
| 19:04:52.883 | PluginStart: telemetry + TAS session | GssmPluginCurrent.log |
| 19:04:53.025 | GcisConfigData not found → start failure | GssmPluginCurrent.log |
| 19:04:53.031 | Mandatory plugin Starting failure | NvContainerGcis.log |
GssmPluginData.log present for metric dumps when plugin runs successfully (empty/minimal in failed snapshot).
First GCIS run (18:43): GssmPlugin would have received GcisConfigData alongside siblings.
Failure modes
| Error string | Meaning |
|---|---|
GSEC_GSSM_Error_AwsCredentialsNotDefined | No IAM/credential config on seat |
GSEC_GSSM_Error_ManifestUrlNotDefined | S3 manifest URL missing |
GSEC_GSSM_Error_ConfigError / NoConfigReceivedError | GSSM config section invalid |
GSEC_GSSM_Error_GetGpuMetricsFailed | GPU telemetry query failed |
GSEC_GSSM_Error_UnableToInitializeGpuMetricsLogger | Collector init failed |
GSEC_GSSM_Error_SessionAnomalyDetected | Unexpected session state |
GSEC_GSSM_Error_IntegrityViolationDetected | Post-activation bus membership change |
GSEC_GSSM_Error_FailedToParseGssmServiceApiDomainMessage | Malformed inbound API message |
GSEC_GSSM_Warning_ModuleDisabled / ServiceDisarmed | Feature toggled off |
Missing GcisConfigData | PluginStart abort (observed) |
Not verified
- Exact S3 bucket/prefix for [REDACTED_BASE_ENV] [REDACTED_ZONE] seats.
- GPU metric sampling interval and NVAPI/PDH backend choice.
- Full GssmServiceAPI event catalog beyond ProcessEvent.
- SSLM subscription payload semantics.
Evidence
strings/ RTTI onservices/GCIS/plugins/GssmPlugin.dlllogs/GCIS/GssmPluginCurrent.log,GssmPluginOld.log,GssmPluginData.loglogs/GCIS/NvContainerGcis.loglogs/GSP/GSConfiguratorPluginCurrent.log