mstsgu
import "github.com/TheManticoreProject/Manticore/windows/protocols/ms-tsgu"
Index
- type PCHANNEL_CONTEXT_HANDLE_NOSERIALIZE
- type PCHANNEL_CONTEXT_HANDLE_SERIALIZE
- type PTUNNEL_CONTEXT_HANDLE_NOSERIALIZE
- type PTUNNEL_CONTEXT_HANDLE_SERIALIZE
- type TSENDPOINTINFO
- type TSG_CAPABILITIES_UNION
- type TSG_CAPABILITY_NAP
- type TSG_INITIAL_PACKET_TYPE_UNION
- type TSG_PACKET
- type TSG_PACKET_AUTH
- type TSG_PACKET_CAPABILITIES
- type TSG_PACKET_CAPS_RESPONSE
- type TSG_PACKET_HEADER
- type TSG_PACKET_MSG_REQUEST
- type TSG_PACKET_MSG_RESPONSE
- type TSG_PACKET_QUARCONFIGREQUEST
- type TSG_PACKET_QUARENC_RESPONSE
- type TSG_PACKET_QUARREQUEST
- type TSG_PACKET_REAUTH
- type TSG_PACKET_REAUTH_MESSAGE
- type TSG_PACKET_RESPONSE
- type TSG_PACKET_STRING_MESSAGE
- type TSG_PACKET_TYPE_MESSAGE_UNION
- type TSG_PACKET_TYPE_UNION
- type TSG_PACKET_VERSIONCAPS
- type TSG_REDIRECTION_FLAGS
type PCHANNEL\_CONTEXT\_HANDLE\_NOSERIALIZE
PCHANNEL_CONTEXT_HANDLE_NOSERIALIZE is an RPC context handle: 20 bytes ([MS-RPCE] 2.3.2.2, [MS-TSGU]).
type PCHANNEL_CONTEXT_HANDLE_NOSERIALIZE [20]byte
type PCHANNEL\_CONTEXT\_HANDLE\_SERIALIZE
PCHANNEL_CONTEXT_HANDLE_SERIALIZE is an alias for PCHANNEL_CONTEXT_HANDLE_NOSERIALIZE ([MS-TSGU]).
type PCHANNEL_CONTEXT_HANDLE_SERIALIZE = PCHANNEL_CONTEXT_HANDLE_NOSERIALIZE
type PTUNNEL\_CONTEXT\_HANDLE\_NOSERIALIZE
PTUNNEL_CONTEXT_HANDLE_NOSERIALIZE is an RPC context handle: 20 bytes ([MS-RPCE] 2.3.2.2, [MS-TSGU]).
type PTUNNEL_CONTEXT_HANDLE_NOSERIALIZE [20]byte
type PTUNNEL\_CONTEXT\_HANDLE\_SERIALIZE
PTUNNEL_CONTEXT_HANDLE_SERIALIZE is an alias for PTUNNEL_CONTEXT_HANDLE_NOSERIALIZE ([MS-TSGU]).
type PTUNNEL_CONTEXT_HANDLE_SERIALIZE = PTUNNEL_CONTEXT_HANDLE_NOSERIALIZE
type TSENDPOINTINFO
TSENDPOINTINFO ([MS-TSGU]). Generated by tools/idlgen; verify pointer/array tags.
type TSENDPOINTINFO struct {
ResourceName []*ndr.WSTR `ndr:"elem=unique,unique,size_is=NumResourceNames"`
NumResourceNames ndr.DWORD
AlternateResourceNames []*ndr.WSTR `ndr:"elem=unique,unique,size_is=NumAlternateResourceNames"`
NumAlternateResourceNames uint16
Port ndr.DWORD
}
type TSG\_CAPABILITIES\_UNION
TSG_CAPABILITIES_UNION is the [switch_type(unsigned long)] union of capability structures ([MS-TSGU] 2.2.9.2.1.1). Tag carries the discriminant (capabilityType) inline, followed by the selected arm ([C706] 14.3.8). The single defined arm is a value (not a pointer), as declared in the IDL.
type TSG_CAPABILITIES_UNION struct {
Tag ndr.DWORD `ndr:"switch"`
// case TSG_CAPABILITY_TYPE_NAP (0x00000001)
TSGCapNap TSG_CAPABILITY_NAP `ndr:"case=0x00000001"`
}
type TSG\_CAPABILITY\_NAP
TSG_CAPABILITY_NAP ([MS-TSGU]). Generated by tools/idlgen; verify pointer/array tags.
type TSG_CAPABILITY_NAP struct {
Capabilities ndr.DWORD
}
type TSG\_INITIAL\_PACKET\_TYPE\_UNION
TSG_INITIAL_PACKET_TYPE_UNION is the [switch_type(unsigned long)] union of the packets a reauthentication may carry ([MS-TSGU] 2.2.9.2.1.7). Tag carries the discriminant (packetId) inline, followed by the selected arm ([C706] 14.3.8). Each arm is a unique pointer to its packet structure, as declared in the IDL.
type TSG_INITIAL_PACKET_TYPE_UNION struct {
Tag ndr.DWORD `ndr:"switch"`
// case TSG_PACKET_TYPE_VERSIONCAPS (0x00005643)
PacketVersionCaps *TSG_PACKET_VERSIONCAPS `ndr:"case=0x00005643,unique"`
// case TSG_PACKET_TYPE_AUTH (0x00004054)
PacketAuth *TSG_PACKET_AUTH `ndr:"case=0x00004054,unique"`
}
type TSG\_PACKET
TSG_PACKET ([MS-TSGU]). Generated by tools/idlgen; verify pointer/array tags.
type TSG_PACKET struct {
PacketId ndr.DWORD
TSGPacket TSG_PACKET_TYPE_UNION
}
type TSG\_PACKET\_AUTH
TSG_PACKET_AUTH ([MS-TSGU]). Generated by tools/idlgen; verify pointer/array tags.
type TSG_PACKET_AUTH struct {
TSGVersionCaps TSG_PACKET_VERSIONCAPS
CookieLen ndr.DWORD
Cookie []uint8 `ndr:"unique,size_is=CookieLen"`
}
type TSG\_PACKET\_CAPABILITIES
TSG_PACKET_CAPABILITIES ([MS-TSGU]). Generated by tools/idlgen; verify pointer/array tags.
type TSG_PACKET_CAPABILITIES struct {
CapabilityType ndr.DWORD
TSGPacket TSG_CAPABILITIES_UNION
}
type TSG\_PACKET\_CAPS\_RESPONSE
TSG_PACKET_CAPS_RESPONSE is the capabilities response returned by the RDG server ([MS-TSGU] 2.2.9.2.1.6): the quarantine-encapsulated response followed by the consent/service message response.
Wire-order caveat: PktQuarEncResponse carries unique pointers (CertChainData, VersionCaps) whose referent bodies are deferred to the end of this struct, while PktConsentMessage embeds a union (TSG_PACKET_TYPE_MESSAGE_UNION) whose pointer arm is flushed locally by the codec (network/dcerpc/ndr/union.go). When both the QUARENC pointers and the message-union arm are populated at once, the arm body is emitted ahead of the QUARENC referent bodies rather than in strict field order. This is a shared-codec deferral limitation for a union nested beside sibling pointers, not a modeling error here; round-trips are self-consistent, but this specific mix is not wire-validated against a live RDG server.
type TSG_PACKET_CAPS_RESPONSE struct {
PktQuarEncResponse TSG_PACKET_QUARENC_RESPONSE
PktConsentMessage TSG_PACKET_MSG_RESPONSE
}
type TSG\_PACKET\_HEADER
TSG_PACKET_HEADER ([MS-TSGU]). Generated by tools/idlgen; verify pointer/array tags.
type TSG_PACKET_HEADER struct {
ComponentId uint16
PacketId uint16
}
type TSG\_PACKET\_MSG\_REQUEST
TSG_PACKET_MSG_REQUEST ([MS-TSGU]). Generated by tools/idlgen; verify pointer/array tags.
type TSG_PACKET_MSG_REQUEST struct {
MaxMessagesPerBatch ndr.DWORD
}
type TSG\_PACKET\_MSG\_RESPONSE
TSG_PACKET_MSG_RESPONSE ([MS-TSGU]). Generated by tools/idlgen; verify pointer/array tags.
type TSG_PACKET_MSG_RESPONSE struct {
MsgID ndr.DWORD
MsgType ndr.DWORD
IsMsgPresent int32
MessagePacket TSG_PACKET_TYPE_MESSAGE_UNION
}
type TSG\_PACKET\_QUARCONFIGREQUEST
TSG_PACKET_QUARCONFIGREQUEST ([MS-TSGU]). Generated by tools/idlgen; verify pointer/array tags.
type TSG_PACKET_QUARCONFIGREQUEST struct {
Flags ndr.DWORD
}
type TSG\_PACKET\_QUARENC\_RESPONSE
TSG_PACKET_QUARENC_RESPONSE is the quarantine-encapsulated response ([MS-TSGU] 2.2.9.2.1.5). CertChainData is a [string] (conformant-varying) wide-char array sized by CertChainLen; VersionCaps is a unique pointer to the server’s version caps.
Nonce is msdtyp.GUID, the 16-octet NDR GUID (Data1/2/3 + Data4[8]). windows/guid.GUID must NOT be used on the wire: its uint64 tail over-aligns the struct and marshals to 24 octets under NDR. Convert with msdtyp.NewGUID / (msdtyp.GUID).GUID().
type TSG_PACKET_QUARENC_RESPONSE struct {
Flags ndr.DWORD
CertChainLen ndr.DWORD
CertChainData []uint16 `ndr:"unique,varying,size_is=CertChainLen"`
Nonce msdtyp.GUID
VersionCaps *TSG_PACKET_VERSIONCAPS `ndr:"unique"`
}
type TSG\_PACKET\_QUARREQUEST
TSG_PACKET_QUARREQUEST is the health/quarantine request packet ([MS-TSGU] 2.2.9.2.1.4). MachineName is a [string] (conformant-varying) wide-char array sized by NameLength; Data is a unique conformant byte blob sized by DataLen.
type TSG_PACKET_QUARREQUEST struct {
Flags ndr.DWORD
MachineName []uint16 `ndr:"unique,varying,size_is=NameLength"`
NameLength ndr.DWORD
Data []uint8 `ndr:"unique,size_is=DataLen"`
DataLen ndr.DWORD
}
type TSG\_PACKET\_REAUTH
TSG_PACKET_REAUTH ([MS-TSGU]). Generated by tools/idlgen; verify pointer/array tags.
type TSG_PACKET_REAUTH struct {
TunnelContext uint64
PacketId ndr.DWORD
TSGInitialPacket TSG_INITIAL_PACKET_TYPE_UNION
}
type TSG\_PACKET\_REAUTH\_MESSAGE
TSG_PACKET_REAUTH_MESSAGE ([MS-TSGU]). Generated by tools/idlgen; verify pointer/array tags.
type TSG_PACKET_REAUTH_MESSAGE struct {
TunnelContext uint64
}
type TSG\_PACKET\_RESPONSE
TSG_PACKET_RESPONSE ([MS-TSGU]). Generated by tools/idlgen; verify pointer/array tags.
type TSG_PACKET_RESPONSE struct {
Flags ndr.DWORD
Reserved ndr.DWORD
ResponseData []uint8 `ndr:"unique,size_is=ResponseDataLen"`
ResponseDataLen ndr.DWORD
RedirectionFlags TSG_REDIRECTION_FLAGS
}
type TSG\_PACKET\_STRING\_MESSAGE
TSG_PACKET_STRING_MESSAGE ([MS-TSGU]). Generated by tools/idlgen; verify pointer/array tags.
type TSG_PACKET_STRING_MESSAGE struct {
IsDisplayMandatory int32
IsConsentMandatory int32
MsgBytes ndr.DWORD
MsgBuffer []uint16 `ndr:"unique,size_is=MsgBytes"`
}
type TSG\_PACKET\_TYPE\_MESSAGE\_UNION
TSG_PACKET_TYPE_MESSAGE_UNION is the [switch_type(unsigned long)] union of administrative-message packets ([MS-TSGU] 2.2.9.2.1.8). Tag carries the discriminant (msgType) inline, followed by the selected arm ([C706] 14.3.8). Each arm is a unique pointer to its message structure, as declared in the IDL.
type TSG_PACKET_TYPE_MESSAGE_UNION struct {
Tag ndr.DWORD `ndr:"switch"`
// case TSG_ASYNC_MESSAGE_CONSENT_MESSAGE (0x00000001)
ConsentMessage *TSG_PACKET_STRING_MESSAGE `ndr:"case=0x00000001,unique"`
// case TSG_ASYNC_MESSAGE_SERVICE_MESSAGE (0x00000002)
ServiceMessage *TSG_PACKET_STRING_MESSAGE `ndr:"case=0x00000002,unique"`
// case TSG_ASYNC_MESSAGE_REAUTH (0x00000003)
ReauthMessage *TSG_PACKET_REAUTH_MESSAGE `ndr:"case=0x00000003,unique"`
}
type TSG\_PACKET\_TYPE\_UNION
TSG_PACKET_TYPE_UNION is the [switch_type(unsigned long)] union that carries the body of a TSG_PACKET ([MS-TSGU] 2.2.9.2.1.9). Tag carries the discriminant (packetId) inline, followed by the selected arm ([C706] 14.3.8). Each arm is a unique pointer to its packet structure, as declared in the IDL.
type TSG_PACKET_TYPE_UNION struct {
Tag ndr.DWORD `ndr:"switch"`
// case TSG_PACKET_TYPE_HEADER (0x00004844)
PacketHeader *TSG_PACKET_HEADER `ndr:"case=0x00004844,unique"`
// case TSG_PACKET_TYPE_VERSIONCAPS (0x00005643)
PacketVersionCaps *TSG_PACKET_VERSIONCAPS `ndr:"case=0x00005643,unique"`
// case TSG_PACKET_TYPE_QUARCONFIGREQUEST (0x00005143)
PacketQuarConfigRequest *TSG_PACKET_QUARCONFIGREQUEST `ndr:"case=0x00005143,unique"`
// case TSG_PACKET_TYPE_QUARREQUEST (0x00005152)
PacketQuarRequest *TSG_PACKET_QUARREQUEST `ndr:"case=0x00005152,unique"`
// case TSG_PACKET_TYPE_RESPONSE (0x00005052)
PacketResponse *TSG_PACKET_RESPONSE `ndr:"case=0x00005052,unique"`
// case TSG_PACKET_TYPE_QUARENC_RESPONSE (0x00004552)
PacketQuarEncResponse *TSG_PACKET_QUARENC_RESPONSE `ndr:"case=0x00004552,unique"`
// case TSG_PACKET_TYPE_CAPS_RESPONSE (0x00004350)
PacketCapsResponse *TSG_PACKET_CAPS_RESPONSE `ndr:"case=0x00004350,unique"`
// case TSG_PACKET_TYPE_MSGREQUEST_PACKET (0x00004752)
PacketMsgRequest *TSG_PACKET_MSG_REQUEST `ndr:"case=0x00004752,unique"`
// case TSG_PACKET_TYPE_MESSAGE_PACKET (0x00004750)
PacketMsgResponse *TSG_PACKET_MSG_RESPONSE `ndr:"case=0x00004750,unique"`
// case TSG_PACKET_TYPE_AUTH (0x00004054)
PacketAuth *TSG_PACKET_AUTH `ndr:"case=0x00004054,unique"`
// case TSG_PACKET_TYPE_REAUTH (0x00005250)
PacketReauth *TSG_PACKET_REAUTH `ndr:"case=0x00005250,unique"`
}
type TSG\_PACKET\_VERSIONCAPS
TSG_PACKET_VERSIONCAPS ([MS-TSGU]). Generated by tools/idlgen; verify pointer/array tags.
type TSG_PACKET_VERSIONCAPS struct {
TsgHeader TSG_PACKET_HEADER
TSGCaps []TSG_PACKET_CAPABILITIES `ndr:"unique,size_is=NumCapabilities"`
NumCapabilities ndr.DWORD
MajorVersion uint16
MinorVersion uint16
QuarantineCapabilities uint16
}
type TSG\_REDIRECTION\_FLAGS
TSG_REDIRECTION_FLAGS ([MS-TSGU]). Generated by tools/idlgen; verify pointer/array tags.
type TSG_REDIRECTION_FLAGS struct {
EnableAllRedirections ndr.BOOL
DisableAllRedirections ndr.BOOL
DriveRedirectionDisabled ndr.BOOL
PrinterRedirectionDisabled ndr.BOOL
PortRedirectionDisabled ndr.BOOL
Reserved ndr.BOOL
ClipboardRedirectionDisabled ndr.BOOL
PnpRedirectionDisabled ndr.BOOL
}