Generated from Manticore v1.1.5 • 201 packages. View on pkg.go.dev

structures

import "github.com/TheManticoreProject/Manticore/network/dcerpc/interfaces/4b324fc8-1670-01d3-1278-5a47bf6ee188/3.0/structures"

Index

type ADT\_SECURITY\_DESCRIPTOR

ADT_SECURITY_DESCRIPTOR holds a marshalled self-relative security descriptor ([MS-SRVS] 2.2.4.83). Buffer is a unique pointer to a conformant byte array sized by Length.

type ADT_SECURITY_DESCRIPTOR struct {
    Length ndr.DWORD
    Buffer []byte `ndr:"unique,size_is=Length"`
}

type CONNECTION\_INFO\_0

CONNECTION_INFO_0 contains the identifier of a connection ([MS-SRVS] 2.2.4.1).

type CONNECTION_INFO_0 struct {
    Coni0Id ndr.DWORD
}

type CONNECTION\_INFO\_1

CONNECTION_INFO_1 contains the details of a connection ([MS-SRVS] 2.2.4.2). coni1_username and coni1_netname are [string] wchar_t* fields (pointer_default unique); a nil WSTR is a NULL pointer on the wire.

type CONNECTION_INFO_1 struct {
    Coni1Id       ndr.DWORD
    Coni1Type     ndr.DWORD
    Coni1NumOpens ndr.DWORD
    Coni1NumUsers ndr.DWORD
    Coni1Time     ndr.DWORD
    Coni1Username ndr.WSTR `ndr:"unique"`
    Coni1Netname  ndr.WSTR `ndr:"unique"`
}

type CONNECT\_ENUM\_STRUCT

CONNECT_ENUM_STRUCT is the connection enumeration structure ([MS-SRVS] 2.2.4.6). Level selects the arm of the embedded CONNECT_ENUM_UNION (which carries its own switch discriminant).

type CONNECT_ENUM_STRUCT struct {
    Level       ndr.DWORD
    ConnectInfo CONNECT_ENUM_UNION
}

type CONNECT\_ENUM\_UNION

CONNECT_ENUM_UNION is the [switch_type(DWORD)] union of connection enumeration containers ([MS-SRVS] 2.2.4.5). Tag carries the discriminant (the level) inline, followed by the selected arm. Each arm is a unique pointer to its container.

type CONNECT_ENUM_UNION struct {
    Tag    ndr.DWORD                 `ndr:"switch"`
    Level0 *CONNECT_INFO_0_CONTAINER `ndr:"case=0,unique"`
    Level1 *CONNECT_INFO_1_CONTAINER `ndr:"case=1,unique"`
}

type CONNECT\_INFO\_0\_CONTAINER

CONNECT_INFO_0_CONTAINER is the level-0 connection enumeration container ([MS-SRVS] 2.2.4.3). Buffer is a unique pointer to a conformant array of CONNECTION_INFO_0 sized by EntriesRead.

type CONNECT_INFO_0_CONTAINER struct {
    EntriesRead ndr.DWORD
    Buffer      []CONNECTION_INFO_0 `ndr:"unique,size_is=EntriesRead"`
}

type CONNECT\_INFO\_1\_CONTAINER

CONNECT_INFO_1_CONTAINER is the level-1 connection enumeration container ([MS-SRVS] 2.2.4.4). Buffer is a unique pointer to a conformant array of CONNECTION_INFO_1 sized by EntriesRead.

type CONNECT_INFO_1_CONTAINER struct {
    EntriesRead ndr.DWORD
    Buffer      []CONNECTION_INFO_1 `ndr:"unique,size_is=EntriesRead"`
}

type DFS\_SITELIST\_INFO

DFS_SITELIST_INFO contains the list of sites associated with a server ([MS-SRVS] 2.2.4.91). Site is an embedded conformant array (not a pointer) sized by CSites, so it must be the final field of the structure.

type DFS_SITELIST_INFO struct {
    CSites ndr.DWORD
    Site   []DFS_SITENAME_INFO `ndr:"conformant,size_is=CSites"`
}

type DFS\_SITENAME\_INFO

DFS_SITENAME_INFO contains the site name of a server and associated flags ([MS-SRVS] 2.2.4.90). SiteName is a [string,unique] WCHAR*.

type DFS_SITENAME_INFO struct {
    SiteFlags ndr.DWORD
    SiteName  ndr.WSTR `ndr:"unique"`
}

type DISK\_ENUM\_CONTAINER

DISK_ENUM_CONTAINER is the disk enumeration container ([MS-SRVS] 2.2.4.87). Buffer is a unique pointer to a conformant-varying array of DISK_INFO whose maximum and actual counts are both EntriesRead (size_is and length_is).

type DISK_ENUM_CONTAINER struct {
    EntriesRead ndr.DWORD
    Buffer      []DISK_INFO `ndr:"unique,varying,size_is=EntriesRead,length_is=EntriesRead"`
}

type DISK\_INFO

DISK_INFO contains the drive letter of a disk on the server ([MS-SRVS] 2.2.4.86). Disk is a fixed array of three WCHARs (drive letter, ‘:’ and a null terminator).

type DISK_INFO struct {
    Disk [3]uint16
}

type FILE\_ENUM\_STRUCT

FILE_ENUM_STRUCT is the file enumeration structure ([MS-SRVS] 2.2.4.11). Level selects the arm of the embedded FILE_ENUM_UNION (which carries its own switch discriminant).

type FILE_ENUM_STRUCT struct {
    Level    ndr.DWORD
    FileInfo FILE_ENUM_UNION
}

type FILE\_ENUM\_UNION

FILE_ENUM_UNION is the [switch_type(DWORD)] union of file enumeration containers ([MS-SRVS] 2.2.4.10). Tag carries the discriminant (the level) inline, followed by the selected arm. Each arm is a unique pointer to its container.

type FILE_ENUM_UNION struct {
    Tag    ndr.DWORD              `ndr:"switch"`
    Level2 *FILE_INFO_2_CONTAINER `ndr:"case=2,unique"`
    Level3 *FILE_INFO_3_CONTAINER `ndr:"case=3,unique"`
}

type FILE\_INFO

FILE_INFO is the [switch_type(unsigned long)] union returned by NetrFileGetInfo ([MS-SRVS] 2.2.3.2). Tag carries the discriminant (the level) inline, followed by the selected arm. Each arm is a unique pointer to the file information struct.

type FILE_INFO struct {
    Tag       ndr.DWORD    `ndr:"switch"`
    FileInfo2 *FILE_INFO_2 `ndr:"case=2,unique"`
    FileInfo3 *FILE_INFO_3 `ndr:"case=3,unique"`
}

type FILE\_INFO\_2

FILE_INFO_2 contains the identifier of an open file, device, or pipe ([MS-SRVS] 2.2.4.6, file info level 2).

type FILE_INFO_2 struct {
    Fi2Id ndr.DWORD
}

type FILE\_INFO\_2\_CONTAINER

FILE_INFO_2_CONTAINER is the level-2 file enumeration container ([MS-SRVS] 2.2.4.8). Buffer is a unique pointer to a conformant array of FILE_INFO_2 sized by EntriesRead.

type FILE_INFO_2_CONTAINER struct {
    EntriesRead ndr.DWORD
    Buffer      []FILE_INFO_2 `ndr:"unique,size_is=EntriesRead"`
}

type FILE\_INFO\_3

FILE_INFO_3 contains the details of an open file, device, or pipe ([MS-SRVS] 2.2.4.7). fi3_pathname and fi3_username are [string] wchar_t* fields (pointer_default unique); a nil WSTR is a NULL pointer on the wire.

type FILE_INFO_3 struct {
    Fi3Id          ndr.DWORD
    Fi3Permissions ndr.DWORD
    Fi3NumLocks    ndr.DWORD
    Fi3Pathname    ndr.WSTR `ndr:"unique"`
    Fi3Username    ndr.WSTR `ndr:"unique"`
}

type FILE\_INFO\_3\_CONTAINER

FILE_INFO_3_CONTAINER is the level-3 file enumeration container ([MS-SRVS] 2.2.4.9). Buffer is a unique pointer to a conformant array of FILE_INFO_3 sized by EntriesRead.

type FILE_INFO_3_CONTAINER struct {
    EntriesRead ndr.DWORD
    Buffer      []FILE_INFO_3 `ndr:"unique,size_is=EntriesRead"`
}

type NET\_DFS\_ENTRY\_ID

NET_DFS_ENTRY_ID identifies a DFS root or link by GUID and prefix ([MS-SRVS] 2.2.4.88). Uid is an inline GUID value; Prefix is a [string] WCHAR* (pointer_default unique).

type NET_DFS_ENTRY_ID struct {
    Uid    dtyp.GUID
    Prefix ndr.WSTR `ndr:"unique"`
}

type NET\_DFS\_ENTRY\_ID\_CONTAINER

NET_DFS_ENTRY_ID_CONTAINER is the DFS entry-id container ([MS-SRVS] 2.2.4.89). Buffer is a unique pointer to a conformant array of NET_DFS_ENTRY_ID sized by Count.

type NET_DFS_ENTRY_ID_CONTAINER struct {
    Count  ndr.DWORD
    Buffer []NET_DFS_ENTRY_ID `ndr:"unique,size_is=Count"`
}

type SERVER\_ALIAS\_ENUM\_STRUCT

SERVER_ALIAS_ENUM_STRUCT is the server alias enumeration structure ([MS-SRVS] 2.2.4.106). Level selects the arm of the embedded SERVER_ALIAS_ENUM_UNION (which carries its own switch discriminant).

type SERVER_ALIAS_ENUM_STRUCT struct {
    Level           ndr.DWORD
    ServerAliasInfo SERVER_ALIAS_ENUM_UNION
}

type SERVER\_ALIAS\_ENUM\_UNION

SERVER_ALIAS_ENUM_UNION is the [switch_is(Level)] union declared inline in SERVER_ALIAS_ENUM_STRUCT ([MS-SRVS] 2.2.4.106), modeled here as a named type. Tag carries the discriminant (the level) inline, followed by the selected arm. The case-0 arm is a unique pointer to a SERVER_ALIAS_INFO_0_CONTAINER.

type SERVER_ALIAS_ENUM_UNION struct {
    Tag    ndr.DWORD                      `ndr:"switch"`
    Level0 *SERVER_ALIAS_INFO_0_CONTAINER `ndr:"case=0,unique"`
}

type SERVER\_ALIAS\_INFO

SERVER_ALIAS_INFO is the [switch_type(unsigned long)] union used by the server alias Get and Set Info methods ([MS-SRVS] 2.2.3.8). Tag carries the discriminant (the level) inline, followed by the selected arm. The case-0 arm is a unique pointer to a SERVER_ALIAS_INFO_0.

type SERVER_ALIAS_INFO struct {
    Tag              ndr.DWORD            `ndr:"switch"`
    ServerAliasInfo0 *SERVER_ALIAS_INFO_0 `ndr:"case=0,unique"`
}

type SERVER\_ALIAS\_INFO\_0

SERVER_ALIAS_INFO_0 contains the alias name and target server name ([MS-SRVS] 2.2.4.104). Srvai0Alias and Srvai0Target are [string] LMSTR (pointer_default unique).

type SERVER_ALIAS_INFO_0 struct {
    Srvai0Alias    ndr.WSTR `ndr:"unique"`
    Srvai0Target   ndr.WSTR `ndr:"unique"`
    Srvai0Default  bool
    Srvai0Reserved ndr.DWORD
}

type SERVER\_ALIAS\_INFO\_0\_CONTAINER

SERVER_ALIAS_INFO_0_CONTAINER is the level-0 server alias enumeration container ([MS-SRVS] 2.2.4.105). Buffer is a unique pointer to a conformant array of SERVER_ALIAS_INFO_0 sized by EntriesRead.

type SERVER_ALIAS_INFO_0_CONTAINER struct {
    EntriesRead ndr.DWORD
    Buffer      []SERVER_ALIAS_INFO_0 `ndr:"unique,size_is=EntriesRead"`
}

type SERVER\_INFO

SERVER_INFO is the SERVER_INFO union used by NetrServerGetInfo and NetrServerSetInfo ([MS-SRVS] 2.2.3.7). It is switched on an unsigned long (the method’s Level argument); the discriminant is transmitted inline as a 4-byte DWORD ahead of the selected arm. Every arm is an LP pointer to its SERVER_INFO_<level> structure, modeled here as a unique pointer (nil when not selected). Set Tag to the level and populate the matching arm before marshalling.

type SERVER_INFO struct {
    Tag            ndr.DWORD         `ndr:"switch"`
    ServerInfo100  *SERVER_INFO_100  `ndr:"case=100,unique"`
    ServerInfo101  *SERVER_INFO_101  `ndr:"case=101,unique"`
    ServerInfo102  *SERVER_INFO_102  `ndr:"case=102,unique"`
    ServerInfo103  *SERVER_INFO_103  `ndr:"case=103,unique"`
    ServerInfo502  *SERVER_INFO_502  `ndr:"case=502,unique"`
    ServerInfo503  *SERVER_INFO_503  `ndr:"case=503,unique"`
    ServerInfo599  *SERVER_INFO_599  `ndr:"case=599,unique"`
    ServerInfo1005 *SERVER_INFO_1005 `ndr:"case=1005,unique"`
    ServerInfo1107 *SERVER_INFO_1107 `ndr:"case=1107,unique"`
    ServerInfo1010 *SERVER_INFO_1010 `ndr:"case=1010,unique"`
    ServerInfo1016 *SERVER_INFO_1016 `ndr:"case=1016,unique"`
    ServerInfo1017 *SERVER_INFO_1017 `ndr:"case=1017,unique"`
    ServerInfo1018 *SERVER_INFO_1018 `ndr:"case=1018,unique"`
    ServerInfo1501 *SERVER_INFO_1501 `ndr:"case=1501,unique"`
    ServerInfo1502 *SERVER_INFO_1502 `ndr:"case=1502,unique"`
    ServerInfo1503 *SERVER_INFO_1503 `ndr:"case=1503,unique"`
    ServerInfo1506 *SERVER_INFO_1506 `ndr:"case=1506,unique"`
    ServerInfo1510 *SERVER_INFO_1510 `ndr:"case=1510,unique"`
    ServerInfo1511 *SERVER_INFO_1511 `ndr:"case=1511,unique"`
    ServerInfo1512 *SERVER_INFO_1512 `ndr:"case=1512,unique"`
    ServerInfo1513 *SERVER_INFO_1513 `ndr:"case=1513,unique"`
    ServerInfo1514 *SERVER_INFO_1514 `ndr:"case=1514,unique"`
    ServerInfo1515 *SERVER_INFO_1515 `ndr:"case=1515,unique"`
    ServerInfo1516 *SERVER_INFO_1516 `ndr:"case=1516,unique"`
    ServerInfo1518 *SERVER_INFO_1518 `ndr:"case=1518,unique"`
    ServerInfo1523 *SERVER_INFO_1523 `ndr:"case=1523,unique"`
    ServerInfo1528 *SERVER_INFO_1528 `ndr:"case=1528,unique"`
    ServerInfo1529 *SERVER_INFO_1529 `ndr:"case=1529,unique"`
    ServerInfo1530 *SERVER_INFO_1530 `ndr:"case=1530,unique"`
    ServerInfo1533 *SERVER_INFO_1533 `ndr:"case=1533,unique"`
    ServerInfo1534 *SERVER_INFO_1534 `ndr:"case=1534,unique"`
    ServerInfo1535 *SERVER_INFO_1535 `ndr:"case=1535,unique"`
    ServerInfo1536 *SERVER_INFO_1536 `ndr:"case=1536,unique"`
    ServerInfo1538 *SERVER_INFO_1538 `ndr:"case=1538,unique"`
    ServerInfo1539 *SERVER_INFO_1539 `ndr:"case=1539,unique"`
    ServerInfo1540 *SERVER_INFO_1540 `ndr:"case=1540,unique"`
    ServerInfo1541 *SERVER_INFO_1541 `ndr:"case=1541,unique"`
    ServerInfo1542 *SERVER_INFO_1542 `ndr:"case=1542,unique"`
    ServerInfo1543 *SERVER_INFO_1543 `ndr:"case=1543,unique"`
    ServerInfo1544 *SERVER_INFO_1544 `ndr:"case=1544,unique"`
    ServerInfo1545 *SERVER_INFO_1545 `ndr:"case=1545,unique"`
    ServerInfo1546 *SERVER_INFO_1546 `ndr:"case=1546,unique"`
    ServerInfo1547 *SERVER_INFO_1547 `ndr:"case=1547,unique"`
    ServerInfo1548 *SERVER_INFO_1548 `ndr:"case=1548,unique"`
    ServerInfo1549 *SERVER_INFO_1549 `ndr:"case=1549,unique"`
    ServerInfo1550 *SERVER_INFO_1550 `ndr:"case=1550,unique"`
    ServerInfo1552 *SERVER_INFO_1552 `ndr:"case=1552,unique"`
    ServerInfo1553 *SERVER_INFO_1553 `ndr:"case=1553,unique"`
    ServerInfo1554 *SERVER_INFO_1554 `ndr:"case=1554,unique"`
    ServerInfo1555 *SERVER_INFO_1555 `ndr:"case=1555,unique"`
    ServerInfo1556 *SERVER_INFO_1556 `ndr:"case=1556,unique"`
}

type SERVER\_INFO\_100

SERVER_INFO_100 contains information about a server ([MS-SRVS] 2.2.4.40). It is referenced by the SERVER_INFO union (case 100) but is defined in the specification rather than the interface IDL. Sv100Name is a [string] wchar_t* field (pointer_default unique); a nil WSTR is a NULL pointer on the wire.

type SERVER_INFO_100 struct {
    Sv100PlatformId ndr.DWORD
    Sv100Name       ndr.WSTR `ndr:"unique"`
}

type SERVER\_INFO\_1005

SERVER_INFO_1005 contains the server comment ([MS-SRVS] 2.2.4.47). Sv1005Comment is a [string] wchar_t* field (pointer_default unique); a nil WSTR is a NULL pointer on the wire.

type SERVER_INFO_1005 struct {
    Sv1005Comment ndr.WSTR `ndr:"unique"`
}

type SERVER\_INFO\_101

SERVER_INFO_101 contains information about a server ([MS-SRVS] 2.2.4.41). It is referenced by the SERVER_INFO union (case 101) but is defined in the specification rather than the interface IDL. Sv101Name and Sv101Comment are [string] wchar_t* fields (pointer_default unique); a nil WSTR is a NULL pointer on the wire.

type SERVER_INFO_101 struct {
    Sv101PlatformId   ndr.DWORD
    Sv101Name         ndr.WSTR `ndr:"unique"`
    Sv101VersionMajor ndr.DWORD
    Sv101VersionMinor ndr.DWORD
    Sv101Type         ndr.DWORD
    Sv101Comment      ndr.WSTR `ndr:"unique"`
}

type SERVER\_INFO\_1010

SERVER_INFO_1010 contains the auto-disconnect time in minutes ([MS-SRVS] 2.2.4.49). Sv1010Disc is an IDL long (signed 32-bit).

type SERVER_INFO_1010 struct {
    Sv1010Disc int32
}

type SERVER\_INFO\_1016

SERVER_INFO_1016 indicates whether the server is hidden ([MS-SRVS] 2.2.4.50). Sv1016Hidden is an IDL int (signed 32-bit).

type SERVER_INFO_1016 struct {
    Sv1016Hidden int32
}

type SERVER\_INFO\_1017

SERVER_INFO_1017 contains the server announce rate ([MS-SRVS] 2.2.4.51).

type SERVER_INFO_1017 struct {
    Sv1017Announce ndr.DWORD
}

type SERVER\_INFO\_1018

SERVER_INFO_1018 contains the server announce-rate delta ([MS-SRVS] 2.2.4.52).

type SERVER_INFO_1018 struct {
    Sv1018Anndelta ndr.DWORD
}

type SERVER\_INFO\_102

SERVER_INFO_102 contains information about a server ([MS-SRVS] 2.2.4.42). Sv102Name, Sv102Comment and Sv102Userpath are [string] wchar_t* fields (pointer_default unique); a nil WSTR is a NULL pointer on the wire. Sv102Disc is an IDL long and Sv102Hidden an IDL int, both signed 32-bit.

type SERVER_INFO_102 struct {
    Sv102PlatformId   ndr.DWORD
    Sv102Name         ndr.WSTR `ndr:"unique"`
    Sv102VersionMajor ndr.DWORD
    Sv102VersionMinor ndr.DWORD
    Sv102Type         ndr.DWORD
    Sv102Comment      ndr.WSTR `ndr:"unique"`
    Sv102Users        ndr.DWORD
    Sv102Disc         int32
    Sv102Hidden       int32
    Sv102Announce     ndr.DWORD
    Sv102Anndelta     ndr.DWORD
    Sv102Licenses     ndr.DWORD
    Sv102Userpath     ndr.WSTR `ndr:"unique"`
}

type SERVER\_INFO\_103

SERVER_INFO_103 contains information about a server, including capabilities ([MS-SRVS] 2.2.4.43). Sv103Name, Sv103Comment and Sv103Userpath are [string] wchar_t* fields (pointer_default unique); a nil WSTR is a NULL pointer on the wire. Sv103Disc is an IDL LONG and Sv103Hidden an IDL BOOL, both signed 32-bit.

type SERVER_INFO_103 struct {
    Sv103PlatformId   ndr.DWORD
    Sv103Name         ndr.WSTR `ndr:"unique"`
    Sv103VersionMajor ndr.DWORD
    Sv103VersionMinor ndr.DWORD
    Sv103Type         ndr.DWORD
    Sv103Comment      ndr.WSTR `ndr:"unique"`
    Sv103Users        ndr.DWORD
    Sv103Disc         int32
    Sv103Hidden       int32
    Sv103Announce     ndr.DWORD
    Sv103Anndelta     ndr.DWORD
    Sv103Licenses     ndr.DWORD
    Sv103Userpath     ndr.WSTR `ndr:"unique"`
    Sv103Capabilities ndr.DWORD
}

type SERVER\_INFO\_1107

SERVER_INFO_1107 contains the count of users with simultaneous access to the server ([MS-SRVS] 2.2.4.48).

type SERVER_INFO_1107 struct {
    Sv1107Users ndr.DWORD
}

type SERVER\_INFO\_1501

SERVER_INFO_1501 is a one-field SERVER_INFO level ([MS-SRVS] 2.2.4), carrying Sv1501Sessopens.

type SERVER_INFO_1501 struct {
    Sv1501Sessopens ndr.DWORD
}

type SERVER\_INFO\_1502

SERVER_INFO_1502 is a one-field SERVER_INFO level ([MS-SRVS] 2.2.4), carrying Sv1502Sessvcs.

type SERVER_INFO_1502 struct {
    Sv1502Sessvcs ndr.DWORD
}

type SERVER\_INFO\_1503

SERVER_INFO_1503 is a one-field SERVER_INFO level ([MS-SRVS] 2.2.4), carrying Sv1503Opensearch.

type SERVER_INFO_1503 struct {
    Sv1503Opensearch ndr.DWORD
}

type SERVER\_INFO\_1506

SERVER_INFO_1506 is a one-field SERVER_INFO level ([MS-SRVS] 2.2.4), carrying Sv1506Maxworkitems.

type SERVER_INFO_1506 struct {
    Sv1506Maxworkitems ndr.DWORD
}

type SERVER\_INFO\_1510

SERVER_INFO_1510 is a one-field SERVER_INFO level ([MS-SRVS] 2.2.4), carrying Sv1510Sessusers.

type SERVER_INFO_1510 struct {
    Sv1510Sessusers ndr.DWORD
}

type SERVER\_INFO\_1511

SERVER_INFO_1511 is a one-field SERVER_INFO level ([MS-SRVS] 2.2.4), carrying Sv1511Sessconns.

type SERVER_INFO_1511 struct {
    Sv1511Sessconns ndr.DWORD
}

type SERVER\_INFO\_1512

SERVER_INFO_1512 is a one-field SERVER_INFO level ([MS-SRVS] 2.2.4), carrying Sv1512Maxnonpagedmemoryusage.

type SERVER_INFO_1512 struct {
    Sv1512Maxnonpagedmemoryusage ndr.DWORD
}

type SERVER\_INFO\_1513

SERVER_INFO_1513 is a one-field SERVER_INFO level ([MS-SRVS] 2.2.4), carrying Sv1513Maxpagedmemoryusage.

type SERVER_INFO_1513 struct {
    Sv1513Maxpagedmemoryusage ndr.DWORD
}

type SERVER\_INFO\_1514

SERVER_INFO_1514 is a one-field SERVER_INFO level ([MS-SRVS] 2.2.4), carrying Sv1514Enablesoftcompat.

type SERVER_INFO_1514 struct {
    Sv1514Enablesoftcompat int32
}

type SERVER\_INFO\_1515

SERVER_INFO_1515 is a one-field SERVER_INFO level ([MS-SRVS] 2.2.4), carrying Sv1515Enableforcedlogoff.

type SERVER_INFO_1515 struct {
    Sv1515Enableforcedlogoff int32
}

type SERVER\_INFO\_1516

SERVER_INFO_1516 is a one-field SERVER_INFO level ([MS-SRVS] 2.2.4), carrying Sv1516Timesource.

type SERVER_INFO_1516 struct {
    Sv1516Timesource int32
}

type SERVER\_INFO\_1518

SERVER_INFO_1518 is a one-field SERVER_INFO level ([MS-SRVS] 2.2.4), carrying Sv1518Lmannounce.

type SERVER_INFO_1518 struct {
    Sv1518Lmannounce int32
}

type SERVER\_INFO\_1523

SERVER_INFO_1523 is a one-field SERVER_INFO level ([MS-SRVS] 2.2.4), carrying Sv1523Maxkeepsearch.

type SERVER_INFO_1523 struct {
    Sv1523Maxkeepsearch ndr.DWORD
}

type SERVER\_INFO\_1528

SERVER_INFO_1528 is a one-field SERVER_INFO level ([MS-SRVS] 2.2.4), carrying Sv1528Scavtimeout.

type SERVER_INFO_1528 struct {
    Sv1528Scavtimeout ndr.DWORD
}

type SERVER\_INFO\_1529

SERVER_INFO_1529 is a one-field SERVER_INFO level ([MS-SRVS] 2.2.4), carrying Sv1529Minrcvqueue.

type SERVER_INFO_1529 struct {
    Sv1529Minrcvqueue ndr.DWORD
}

type SERVER\_INFO\_1530

SERVER_INFO_1530 is a one-field SERVER_INFO level ([MS-SRVS] 2.2.4), carrying Sv1530Minfreeworkitems.

type SERVER_INFO_1530 struct {
    Sv1530Minfreeworkitems ndr.DWORD
}

type SERVER\_INFO\_1533

SERVER_INFO_1533 is a one-field SERVER_INFO level ([MS-SRVS] 2.2.4), carrying Sv1533Maxmpxct.

type SERVER_INFO_1533 struct {
    Sv1533Maxmpxct ndr.DWORD
}

type SERVER\_INFO\_1534

SERVER_INFO_1534 is a one-field SERVER_INFO level ([MS-SRVS] 2.2.4), carrying Sv1534Oplockbreakwait.

type SERVER_INFO_1534 struct {
    Sv1534Oplockbreakwait ndr.DWORD
}

type SERVER\_INFO\_1535

SERVER_INFO_1535 is a one-field SERVER_INFO level ([MS-SRVS] 2.2.4), carrying Sv1535Oplockbreakresponsewait.

type SERVER_INFO_1535 struct {
    Sv1535Oplockbreakresponsewait ndr.DWORD
}

type SERVER\_INFO\_1536

SERVER_INFO_1536 is a one-field SERVER_INFO level ([MS-SRVS] 2.2.4), carrying Sv1536Enableoplocks.

type SERVER_INFO_1536 struct {
    Sv1536Enableoplocks int32
}

type SERVER\_INFO\_1538

SERVER_INFO_1538 is a one-field SERVER_INFO level ([MS-SRVS] 2.2.4), carrying Sv1538Enablefcbopens.

type SERVER_INFO_1538 struct {
    Sv1538Enablefcbopens int32
}

type SERVER\_INFO\_1539

SERVER_INFO_1539 is a one-field SERVER_INFO level ([MS-SRVS] 2.2.4), carrying Sv1539Enableraw.

type SERVER_INFO_1539 struct {
    Sv1539Enableraw int32
}

type SERVER\_INFO\_1540

SERVER_INFO_1540 is a one-field SERVER_INFO level ([MS-SRVS] 2.2.4), carrying Sv1540Enablesharednetdrives.

type SERVER_INFO_1540 struct {
    Sv1540Enablesharednetdrives int32
}

type SERVER\_INFO\_1541

SERVER_INFO_1541 is a one-field SERVER_INFO level ([MS-SRVS] 2.2.4), carrying Sv1541Minfreeconnections.

type SERVER_INFO_1541 struct {
    Sv1541Minfreeconnections int32
}

type SERVER\_INFO\_1542

SERVER_INFO_1542 is a one-field SERVER_INFO level ([MS-SRVS] 2.2.4), carrying Sv1542Maxfreeconnections.

type SERVER_INFO_1542 struct {
    Sv1542Maxfreeconnections int32
}

type SERVER\_INFO\_1543

SERVER_INFO_1543 is a one-field SERVER_INFO level ([MS-SRVS] 2.2.4), carrying Sv1543Initsesstable.

type SERVER_INFO_1543 struct {
    Sv1543Initsesstable ndr.DWORD
}

type SERVER\_INFO\_1544

SERVER_INFO_1544 is a one-field SERVER_INFO level ([MS-SRVS] 2.2.4), carrying Sv1544Initconntable.

type SERVER_INFO_1544 struct {
    Sv1544Initconntable ndr.DWORD
}

type SERVER\_INFO\_1545

SERVER_INFO_1545 is a one-field SERVER_INFO level ([MS-SRVS] 2.2.4), carrying Sv1545Initfiletable.

type SERVER_INFO_1545 struct {
    Sv1545Initfiletable ndr.DWORD
}

type SERVER\_INFO\_1546

SERVER_INFO_1546 is a one-field SERVER_INFO level ([MS-SRVS] 2.2.4), carrying Sv1546Initsearchtable.

type SERVER_INFO_1546 struct {
    Sv1546Initsearchtable ndr.DWORD
}

type SERVER\_INFO\_1547

SERVER_INFO_1547 is a one-field SERVER_INFO level ([MS-SRVS] 2.2.4), carrying Sv1547Alertschedule.

type SERVER_INFO_1547 struct {
    Sv1547Alertschedule ndr.DWORD
}

type SERVER\_INFO\_1548

SERVER_INFO_1548 is a one-field SERVER_INFO level ([MS-SRVS] 2.2.4), carrying Sv1548Errorthreshold.

type SERVER_INFO_1548 struct {
    Sv1548Errorthreshold ndr.DWORD
}

type SERVER\_INFO\_1549

SERVER_INFO_1549 is a one-field SERVER_INFO level ([MS-SRVS] 2.2.4), carrying Sv1549Networkerrorthreshold.

type SERVER_INFO_1549 struct {
    Sv1549Networkerrorthreshold ndr.DWORD
}

type SERVER\_INFO\_1550

SERVER_INFO_1550 is a one-field SERVER_INFO level ([MS-SRVS] 2.2.4), carrying Sv1550Diskspacethreshold.

type SERVER_INFO_1550 struct {
    Sv1550Diskspacethreshold ndr.DWORD
}

type SERVER\_INFO\_1552

SERVER_INFO_1552 is a one-field SERVER_INFO level ([MS-SRVS] 2.2.4), carrying Sv1552Maxlinkdelay.

type SERVER_INFO_1552 struct {
    Sv1552Maxlinkdelay ndr.DWORD
}

type SERVER\_INFO\_1553

SERVER_INFO_1553 is a one-field SERVER_INFO level ([MS-SRVS] 2.2.4), carrying Sv1553Minlinkthroughput.

type SERVER_INFO_1553 struct {
    Sv1553Minlinkthroughput ndr.DWORD
}

type SERVER\_INFO\_1554

SERVER_INFO_1554 is a one-field SERVER_INFO level ([MS-SRVS] 2.2.4), carrying Sv1554Linkinfovalidtime.

type SERVER_INFO_1554 struct {
    Sv1554Linkinfovalidtime ndr.DWORD
}

type SERVER\_INFO\_1555

SERVER_INFO_1555 is a one-field SERVER_INFO level ([MS-SRVS] 2.2.4), carrying Sv1555Scavqosinfoupdatetime.

type SERVER_INFO_1555 struct {
    Sv1555Scavqosinfoupdatetime ndr.DWORD
}

type SERVER\_INFO\_1556

SERVER_INFO_1556 is a one-field SERVER_INFO level ([MS-SRVS] 2.2.4), carrying Sv1556Maxworkitemidletime.

type SERVER_INFO_1556 struct {
    Sv1556Maxworkitemidletime ndr.DWORD
}

type SERVER\_INFO\_502

SERVER_INFO_502 contains information about a server ([MS-SRVS] 2.2.4.44). The five trailing fields are IDL int (signed 32-bit); all others are DWORD.

type SERVER_INFO_502 struct {
    Sv502Sessopens              ndr.DWORD
    Sv502Sessvcs                ndr.DWORD
    Sv502Opensearch             ndr.DWORD
    Sv502Sizreqbuf              ndr.DWORD
    Sv502Initworkitems          ndr.DWORD
    Sv502Maxworkitems           ndr.DWORD
    Sv502Rawworkitems           ndr.DWORD
    Sv502Irpstacksize           ndr.DWORD
    Sv502Maxrawbuflen           ndr.DWORD
    Sv502Sessusers              ndr.DWORD
    Sv502Sessconns              ndr.DWORD
    Sv502Maxpagedmemoryusage    ndr.DWORD
    Sv502Maxnonpagedmemoryusage ndr.DWORD
    Sv502Enablesoftcompat       int32
    Sv502Enableforcedlogoff     int32
    Sv502Timesource             int32
    Sv502Acceptdownlevelapis    int32
    Sv502Lmannounce             int32
}

type SERVER\_INFO\_503

SERVER_INFO_503 contains information about a server ([MS-SRVS] 2.2.4.45). Sv503Domain is a [string] wchar_t* field (pointer_default unique); a nil WSTR is a NULL pointer on the wire. The fields declared as IDL int are signed 32-bit; all others are DWORD.

type SERVER_INFO_503 struct {
    Sv503Sessopens               ndr.DWORD
    Sv503Sessvcs                 ndr.DWORD
    Sv503Opensearch              ndr.DWORD
    Sv503Sizreqbuf               ndr.DWORD
    Sv503Initworkitems           ndr.DWORD
    Sv503Maxworkitems            ndr.DWORD
    Sv503Rawworkitems            ndr.DWORD
    Sv503Irpstacksize            ndr.DWORD
    Sv503Maxrawbuflen            ndr.DWORD
    Sv503Sessusers               ndr.DWORD
    Sv503Sessconns               ndr.DWORD
    Sv503Maxpagedmemoryusage     ndr.DWORD
    Sv503Maxnonpagedmemoryusage  ndr.DWORD
    Sv503Enablesoftcompat        int32
    Sv503Enableforcedlogoff      int32
    Sv503Timesource              int32
    Sv503Acceptdownlevelapis     int32
    Sv503Lmannounce              int32
    Sv503Domain                  ndr.WSTR `ndr:"unique"`
    Sv503Maxcopyreadlen          ndr.DWORD
    Sv503Maxcopywritelen         ndr.DWORD
    Sv503Minkeepsearch           ndr.DWORD
    Sv503Maxkeepsearch           ndr.DWORD
    Sv503Minkeepcomplsearch      ndr.DWORD
    Sv503Maxkeepcomplsearch      ndr.DWORD
    Sv503Threadcountadd          ndr.DWORD
    Sv503Numblockthreads         ndr.DWORD
    Sv503Scavtimeout             ndr.DWORD
    Sv503Minrcvqueue             ndr.DWORD
    Sv503Minfreeworkitems        ndr.DWORD
    Sv503Xactmemsize             ndr.DWORD
    Sv503Threadpriority          ndr.DWORD
    Sv503Maxmpxct                ndr.DWORD
    Sv503Oplockbreakwait         ndr.DWORD
    Sv503Oplockbreakresponsewait ndr.DWORD
    Sv503Enableoplocks           int32
    Sv503Enableoplockforceclose  int32
    Sv503Enablefcbopens          int32
    Sv503Enableraw               int32
    Sv503Enablesharednetdrives   int32
    Sv503Minfreeconnections      ndr.DWORD
    Sv503Maxfreeconnections      ndr.DWORD
}

type SERVER\_INFO\_599

SERVER_INFO_599 contains information about a server ([MS-SRVS] 2.2.4.46). Sv599Domain is a [string] wchar_t* field (pointer_default unique); a nil WSTR is a NULL pointer on the wire. The fields declared as IDL int are signed 32-bit; all others are DWORD.

type SERVER_INFO_599 struct {
    Sv599Sessopens               ndr.DWORD
    Sv599Sessvcs                 ndr.DWORD
    Sv599Opensearch              ndr.DWORD
    Sv599Sizreqbuf               ndr.DWORD
    Sv599Initworkitems           ndr.DWORD
    Sv599Maxworkitems            ndr.DWORD
    Sv599Rawworkitems            ndr.DWORD
    Sv599Irpstacksize            ndr.DWORD
    Sv599Maxrawbuflen            ndr.DWORD
    Sv599Sessusers               ndr.DWORD
    Sv599Sessconns               ndr.DWORD
    Sv599Maxpagedmemoryusage     ndr.DWORD
    Sv599Maxnonpagedmemoryusage  ndr.DWORD
    Sv599Enablesoftcompat        int32
    Sv599Enableforcedlogoff      int32
    Sv599Timesource              int32
    Sv599Acceptdownlevelapis     int32
    Sv599Lmannounce              int32
    Sv599Domain                  ndr.WSTR `ndr:"unique"`
    Sv599Maxcopyreadlen          ndr.DWORD
    Sv599Maxcopywritelen         ndr.DWORD
    Sv599Minkeepsearch           ndr.DWORD
    Sv599Maxkeepsearch           ndr.DWORD
    Sv599Minkeepcomplsearch      ndr.DWORD
    Sv599Maxkeepcomplsearch      ndr.DWORD
    Sv599Threadcountadd          ndr.DWORD
    Sv599Numblockthreads         ndr.DWORD
    Sv599Scavtimeout             ndr.DWORD
    Sv599Minrcvqueue             ndr.DWORD
    Sv599Minfreeworkitems        ndr.DWORD
    Sv599Xactmemsize             ndr.DWORD
    Sv599Threadpriority          ndr.DWORD
    Sv599Maxmpxct                ndr.DWORD
    Sv599Oplockbreakwait         ndr.DWORD
    Sv599Oplockbreakresponsewait ndr.DWORD
    Sv599Enableoplocks           int32
    Sv599Enableoplockforceclose  int32
    Sv599Enablefcbopens          int32
    Sv599Enableraw               int32
    Sv599Enablesharednetdrives   int32
    Sv599Minfreeconnections      ndr.DWORD
    Sv599Maxfreeconnections      ndr.DWORD
    Sv599Initsesstable           ndr.DWORD
    Sv599Initconntable           ndr.DWORD
    Sv599Initfiletable           ndr.DWORD
    Sv599Initsearchtable         ndr.DWORD
    Sv599Alertschedule           ndr.DWORD
    Sv599Errorthreshold          ndr.DWORD
    Sv599Networkerrorthreshold   ndr.DWORD
    Sv599Diskspacethreshold      ndr.DWORD
    Sv599Reserved                ndr.DWORD
    Sv599Maxlinkdelay            ndr.DWORD
    Sv599Minlinkthroughput       ndr.DWORD
    Sv599Linkinfovalidtime       ndr.DWORD
    Sv599Scavqosinfoupdatetime   ndr.DWORD
    Sv599Maxworkitemidletime     ndr.DWORD
}

type SERVER\_TRANSPORT\_INFO\_0

SERVER_TRANSPORT_INFO_0 contains information about a server transport ([MS-SRVS] 2.2.4.94). Svti0Transportaddress is a unique pointer to a conformant byte array sized by Svti0Transportaddresslength. The string fields are [string] wchar_t* (pointer_default unique).

type SERVER_TRANSPORT_INFO_0 struct {
    Svti0Numberofvcs            ndr.DWORD
    Svti0Transportname          ndr.WSTR `ndr:"unique"`
    Svti0Transportaddress       []byte   `ndr:"unique,size_is=Svti0Transportaddresslength"`
    Svti0Transportaddresslength ndr.DWORD
    Svti0Networkaddress         ndr.WSTR `ndr:"unique"`
}

type SERVER\_TRANSPORT\_INFO\_1

SERVER_TRANSPORT_INFO_1 contains information about a server transport ([MS-SRVS] 2.2.4.95). Svti1Transportaddress is a unique pointer to a conformant byte array sized by Svti1Transportaddresslength. The string fields are [string] wchar_t* (pointer_default unique).

type SERVER_TRANSPORT_INFO_1 struct {
    Svti1Numberofvcs            ndr.DWORD
    Svti1Transportname          ndr.WSTR `ndr:"unique"`
    Svti1Transportaddress       []byte   `ndr:"unique,size_is=Svti1Transportaddresslength"`
    Svti1Transportaddresslength ndr.DWORD
    Svti1Networkaddress         ndr.WSTR `ndr:"unique"`
    Svti1Domain                 ndr.WSTR `ndr:"unique"`
}

type SERVER\_TRANSPORT\_INFO\_2

SERVER_TRANSPORT_INFO_2 contains information about a server transport ([MS-SRVS] 2.2.4.96). Svti2Transportaddress is a unique pointer to a conformant byte array sized by Svti2Transportaddresslength. The string fields are [string] wchar_t* (pointer_default unique).

type SERVER_TRANSPORT_INFO_2 struct {
    Svti2Numberofvcs            ndr.DWORD
    Svti2Transportname          ndr.WSTR `ndr:"unique"`
    Svti2Transportaddress       []byte   `ndr:"unique,size_is=Svti2Transportaddresslength"`
    Svti2Transportaddresslength ndr.DWORD
    Svti2Networkaddress         ndr.WSTR `ndr:"unique"`
    Svti2Domain                 ndr.WSTR `ndr:"unique"`
    Svti2Flags                  ndr.DWORD
}

type SERVER\_TRANSPORT\_INFO\_3

SERVER_TRANSPORT_INFO_3 contains information about a server transport ([MS-SRVS] 2.2.4.97). Svti3Transportaddress is a unique pointer to a conformant byte array sized by Svti3Transportaddresslength. Svti3Password is a fixed 256-byte array. The string fields are [string] wchar_t* (pointer_default unique).

type SERVER_TRANSPORT_INFO_3 struct {
    Svti3Numberofvcs            ndr.DWORD
    Svti3Transportname          ndr.WSTR `ndr:"unique"`
    Svti3Transportaddress       []byte   `ndr:"unique,size_is=Svti3Transportaddresslength"`
    Svti3Transportaddresslength ndr.DWORD
    Svti3Networkaddress         ndr.WSTR `ndr:"unique"`
    Svti3Domain                 ndr.WSTR `ndr:"unique"`
    Svti3Flags                  ndr.DWORD
    Svti3Passwordlength         ndr.DWORD
    Svti3Password               [256]byte
}

type SERVER\_XPORT\_ENUM\_STRUCT

SERVER_XPORT_ENUM_STRUCT is the server transport enumeration structure ([MS-SRVS] 2.2.4.103). Level selects the arm of the embedded SERVER_XPORT_ENUM_UNION (which carries its own switch discriminant).

type SERVER_XPORT_ENUM_STRUCT struct {
    Level     ndr.DWORD
    XportInfo SERVER_XPORT_ENUM_UNION
}

type SERVER\_XPORT\_ENUM\_UNION

SERVER_XPORT_ENUM_UNION is the [switch_type(DWORD)] union of server transport enumeration containers ([MS-SRVS] 2.2.4.102). Tag carries the discriminant (the level) inline, followed by the selected arm. Each arm is a unique pointer to its container.

type SERVER_XPORT_ENUM_UNION struct {
    Tag    ndr.DWORD                      `ndr:"switch"`
    Level0 *SERVER_XPORT_INFO_0_CONTAINER `ndr:"case=0,unique"`
    Level1 *SERVER_XPORT_INFO_1_CONTAINER `ndr:"case=1,unique"`
    Level2 *SERVER_XPORT_INFO_2_CONTAINER `ndr:"case=2,unique"`
    Level3 *SERVER_XPORT_INFO_3_CONTAINER `ndr:"case=3,unique"`
}

type SERVER\_XPORT\_INFO\_0\_CONTAINER

SERVER_XPORT_INFO_0_CONTAINER is the level-0 server transport enumeration container ([MS-SRVS] 2.2.4.98). Buffer is a unique pointer to a conformant array of SERVER_TRANSPORT_INFO_0 sized by EntriesRead.

type SERVER_XPORT_INFO_0_CONTAINER struct {
    EntriesRead ndr.DWORD
    Buffer      []SERVER_TRANSPORT_INFO_0 `ndr:"unique,size_is=EntriesRead"`
}

type SERVER\_XPORT\_INFO\_1\_CONTAINER

SERVER_XPORT_INFO_1_CONTAINER is the level-1 server transport enumeration container ([MS-SRVS] 2.2.4.99). Buffer is a unique pointer to a conformant array of SERVER_TRANSPORT_INFO_1 sized by EntriesRead.

type SERVER_XPORT_INFO_1_CONTAINER struct {
    EntriesRead ndr.DWORD
    Buffer      []SERVER_TRANSPORT_INFO_1 `ndr:"unique,size_is=EntriesRead"`
}

type SERVER\_XPORT\_INFO\_2\_CONTAINER

SERVER_XPORT_INFO_2_CONTAINER is the level-2 server transport enumeration container ([MS-SRVS] 2.2.4.100). Buffer is a unique pointer to a conformant array of SERVER_TRANSPORT_INFO_2 sized by EntriesRead.

type SERVER_XPORT_INFO_2_CONTAINER struct {
    EntriesRead ndr.DWORD
    Buffer      []SERVER_TRANSPORT_INFO_2 `ndr:"unique,size_is=EntriesRead"`
}

type SERVER\_XPORT\_INFO\_3\_CONTAINER

SERVER_XPORT_INFO_3_CONTAINER is the level-3 server transport enumeration container ([MS-SRVS] 2.2.4.101). Buffer is a unique pointer to a conformant array of SERVER_TRANSPORT_INFO_3 sized by EntriesRead.

type SERVER_XPORT_INFO_3_CONTAINER struct {
    EntriesRead ndr.DWORD
    Buffer      []SERVER_TRANSPORT_INFO_3 `ndr:"unique,size_is=EntriesRead"`
}

type SESSION\_ENUM\_STRUCT

SESSION_ENUM_STRUCT is the session enumeration structure ([MS-SRVS] 2.2.4.23). Level selects the arm of the embedded SESSION_ENUM_UNION (which carries its own switch discriminant).

type SESSION_ENUM_STRUCT struct {
    Level       ndr.DWORD
    SessionInfo SESSION_ENUM_UNION
}

type SESSION\_ENUM\_UNION

SESSION_ENUM_UNION is the [switch_type(DWORD)] union of session enumeration containers ([MS-SRVS] 2.2.4.22). Tag carries the discriminant (the level) inline, followed by the selected arm. Each arm is a unique pointer to its container.

type SESSION_ENUM_UNION struct {
    Tag      ndr.DWORD                   `ndr:"switch"`
    Level0   *SESSION_INFO_0_CONTAINER   `ndr:"case=0,unique"`
    Level1   *SESSION_INFO_1_CONTAINER   `ndr:"case=1,unique"`
    Level2   *SESSION_INFO_2_CONTAINER   `ndr:"case=2,unique"`
    Level10  *SESSION_INFO_10_CONTAINER  `ndr:"case=10,unique"`
    Level502 *SESSION_INFO_502_CONTAINER `ndr:"case=502,unique"`
}

type SESSION\_INFO\_0

SESSION_INFO_0 contains the name of a computer that established a session ([MS-SRVS] 2.2.4.12). sesi0_cname is a [string] wchar_t* field (pointer_default unique); a nil WSTR is a NULL pointer on the wire.

type SESSION_INFO_0 struct {
    Sesi0Cname ndr.WSTR `ndr:"unique"`
}

type SESSION\_INFO\_0\_CONTAINER

SESSION_INFO_0_CONTAINER is the level-0 session enumeration container ([MS-SRVS] 2.2.4.17). Buffer is a unique pointer to a conformant array of SESSION_INFO_0 sized by EntriesRead.

type SESSION_INFO_0_CONTAINER struct {
    EntriesRead ndr.DWORD
    Buffer      []SESSION_INFO_0 `ndr:"unique,size_is=EntriesRead"`
}

type SESSION\_INFO\_1

SESSION_INFO_1 contains the details of a session ([MS-SRVS] 2.2.4.13). sesi1_cname and sesi1_username are [string] wchar_t* fields (pointer_default unique); a nil WSTR is a NULL pointer on the wire.

type SESSION_INFO_1 struct {
    Sesi1Cname     ndr.WSTR `ndr:"unique"`
    Sesi1Username  ndr.WSTR `ndr:"unique"`
    Sesi1NumOpens  ndr.DWORD
    Sesi1Time      ndr.DWORD
    Sesi1IdleTime  ndr.DWORD
    Sesi1UserFlags ndr.DWORD
}

type SESSION\_INFO\_10

SESSION_INFO_10 contains the details of a session ([MS-SRVS] 2.2.4.15). sesi10_cname and sesi10_username are [string] wchar_t* fields (pointer_default unique); a nil WSTR is a NULL pointer on the wire.

type SESSION_INFO_10 struct {
    Sesi10Cname    ndr.WSTR `ndr:"unique"`
    Sesi10Username ndr.WSTR `ndr:"unique"`
    Sesi10Time     ndr.DWORD
    Sesi10IdleTime ndr.DWORD
}

type SESSION\_INFO\_10\_CONTAINER

SESSION_INFO_10_CONTAINER is the level-10 session enumeration container ([MS-SRVS] 2.2.4.20). Buffer is a unique pointer to a conformant array of SESSION_INFO_10 sized by EntriesRead.

type SESSION_INFO_10_CONTAINER struct {
    EntriesRead ndr.DWORD
    Buffer      []SESSION_INFO_10 `ndr:"unique,size_is=EntriesRead"`
}

type SESSION\_INFO\_1\_CONTAINER

SESSION_INFO_1_CONTAINER is the level-1 session enumeration container ([MS-SRVS] 2.2.4.18). Buffer is a unique pointer to a conformant array of SESSION_INFO_1 sized by EntriesRead.

type SESSION_INFO_1_CONTAINER struct {
    EntriesRead ndr.DWORD
    Buffer      []SESSION_INFO_1 `ndr:"unique,size_is=EntriesRead"`
}

type SESSION\_INFO\_2

SESSION_INFO_2 contains the details of a session including the client type ([MS-SRVS] 2.2.4.14). sesi2_cname, sesi2_username, and sesi2_cltype_name are [string] wchar_t* fields (pointer_default unique); a nil WSTR is a NULL pointer.

type SESSION_INFO_2 struct {
    Sesi2Cname      ndr.WSTR `ndr:"unique"`
    Sesi2Username   ndr.WSTR `ndr:"unique"`
    Sesi2NumOpens   ndr.DWORD
    Sesi2Time       ndr.DWORD
    Sesi2IdleTime   ndr.DWORD
    Sesi2UserFlags  ndr.DWORD
    Sesi2CltypeName ndr.WSTR `ndr:"unique"`
}

type SESSION\_INFO\_2\_CONTAINER

SESSION_INFO_2_CONTAINER is the level-2 session enumeration container ([MS-SRVS] 2.2.4.19). Buffer is a unique pointer to a conformant array of SESSION_INFO_2 sized by EntriesRead.

type SESSION_INFO_2_CONTAINER struct {
    EntriesRead ndr.DWORD
    Buffer      []SESSION_INFO_2 `ndr:"unique,size_is=EntriesRead"`
}

type SESSION\_INFO\_502

SESSION_INFO_502 contains the full details of a session including the transport ([MS-SRVS] 2.2.4.16). sesi502_cname, sesi502_username, sesi502_cltype_name, and sesi502_transport are [string] wchar_t* fields (pointer_default unique); a nil WSTR is a NULL pointer on the wire.

type SESSION_INFO_502 struct {
    Sesi502Cname      ndr.WSTR `ndr:"unique"`
    Sesi502Username   ndr.WSTR `ndr:"unique"`
    Sesi502NumOpens   ndr.DWORD
    Sesi502Time       ndr.DWORD
    Sesi502IdleTime   ndr.DWORD
    Sesi502UserFlags  ndr.DWORD
    Sesi502CltypeName ndr.WSTR `ndr:"unique"`
    Sesi502Transport  ndr.WSTR `ndr:"unique"`
}

type SESSION\_INFO\_502\_CONTAINER

SESSION_INFO_502_CONTAINER is the level-502 session enumeration container ([MS-SRVS] 2.2.4.21). Buffer is a unique pointer to a conformant array of SESSION_INFO_502 sized by EntriesRead.

type SESSION_INFO_502_CONTAINER struct {
    EntriesRead ndr.DWORD
    Buffer      []SESSION_INFO_502 `ndr:"unique,size_is=EntriesRead"`
}

type SHARE\_DEL\_HANDLE

SHARE_DEL_HANDLE is a [context_handle] returned by NetrShareDelStart and consumed by NetrShareDelCommit ([MS-SRVS] 2.2.1.1 / 3.1.4.13). On the wire a context handle is an attributes DWORD followed by a 16-byte GUID, i.e. a 20-byte opaque blob.

type SHARE_DEL_HANDLE [20]byte

type SHARE\_ENUM\_STRUCT

SHARE_ENUM_STRUCT contains a share enumeration level and the matching union of containers ([MS-SRVS] 2.2.4.39). The union arm is selected by Level via switch_is.

type SHARE_ENUM_STRUCT struct {
    Level     ndr.DWORD
    ShareInfo SHARE_ENUM_UNION
}

type SHARE\_ENUM\_UNION

SHARE_ENUM_UNION is the [switch_type(DWORD)] union selecting a share-info container by enumeration level ([MS-SRVS] 2.2.4.38). The discriminant Tag is transmitted inline as a 4-byte DWORD followed by the selected arm, which is a unique pointer to the matching container.

type SHARE_ENUM_UNION struct {
    Tag      ndr.DWORD                 `ndr:"switch"`
    Level0   *SHARE_INFO_0_CONTAINER   `ndr:"case=0,unique"`
    Level1   *SHARE_INFO_1_CONTAINER   `ndr:"case=1,unique"`
    Level2   *SHARE_INFO_2_CONTAINER   `ndr:"case=2,unique"`
    Level501 *SHARE_INFO_501_CONTAINER `ndr:"case=501,unique"`
    Level502 *SHARE_INFO_502_CONTAINER `ndr:"case=502,unique"`
    Level503 *SHARE_INFO_503_CONTAINER `ndr:"case=503,unique"`
}

type SHARE\_INFO

SHARE_INFO is the [switch_type(unsigned long)] union used by the share Get/Set info methods ([MS-SRVS] 2.2.3.6). The discriminant Tag is transmitted inline as a 4-byte DWORD followed by the selected arm, which is a unique pointer to the matching share-info structure. The IDL’s empty [default]; arm is omitted: an unmatched discriminant decodes to an empty union.

type SHARE_INFO struct {
    Tag           ndr.DWORD          `ndr:"switch"`
    ShareInfo0    *SHARE_INFO_0      `ndr:"case=0,unique"`
    ShareInfo1    *SHARE_INFO_1      `ndr:"case=1,unique"`
    ShareInfo2    *SHARE_INFO_2      `ndr:"case=2,unique"`
    ShareInfo501  *SHARE_INFO_501    `ndr:"case=501,unique"`
    ShareInfo502  *SHARE_INFO_502_I  `ndr:"case=502,unique"`
    ShareInfo503  *SHARE_INFO_503_I  `ndr:"case=503,unique"`
    ShareInfo1004 *SHARE_INFO_1004   `ndr:"case=1004,unique"`
    ShareInfo1005 *SHARE_INFO_1005   `ndr:"case=1005,unique"`
    ShareInfo1006 *SHARE_INFO_1006   `ndr:"case=1006,unique"`
    ShareInfo1501 *SHARE_INFO_1501_I `ndr:"case=1501,unique"`
}

type SHARE\_INFO\_0

SHARE_INFO_0 contains the name of a shared resource ([MS-SRVS] 2.2.4.22). shi0_netname is an embedded unique [string] wchar_t*.

type SHARE_INFO_0 struct {
    Shi0Netname ndr.WSTR `ndr:"unique"`
}

type SHARE\_INFO\_0\_CONTAINER

SHARE_INFO_0_CONTAINER contains a count and an array of SHARE_INFO_0 entries ([MS-SRVS] 2.2.4.32). Buffer is a unique [size_is(EntriesRead)] pointer to a conformant array.

type SHARE_INFO_0_CONTAINER struct {
    EntriesRead ndr.DWORD
    Buffer      []SHARE_INFO_0 `ndr:"unique,size_is=EntriesRead"`
}

type SHARE\_INFO\_1

SHARE_INFO_1 contains information about a shared resource: name, type and remark ([MS-SRVS] 2.2.4.23). shi1_netname and shi1_remark are embedded unique [string] wchar_t*.

type SHARE_INFO_1 struct {
    Shi1Netname ndr.WSTR `ndr:"unique"`
    Shi1Type    ndr.DWORD
    Shi1Remark  ndr.WSTR `ndr:"unique"`
}

type SHARE\_INFO\_1004

SHARE_INFO_1004 contains a comment about a shared resource ([MS-SRVS] 2.2.4.28). shi1004_remark is an embedded unique [string] wchar_t*.

type SHARE_INFO_1004 struct {
    Shi1004Remark ndr.WSTR `ndr:"unique"`
}

type SHARE\_INFO\_1005

SHARE_INFO_1005 contains the flags of a shared resource ([MS-SRVS] 2.2.4.29).

type SHARE_INFO_1005 struct {
    Shi1005Flags ndr.DWORD
}

type SHARE\_INFO\_1006

SHARE_INFO_1006 contains the maximum number of concurrent connections allowed to a shared resource ([MS-SRVS] 2.2.4.30).

type SHARE_INFO_1006 struct {
    Shi1006MaxUses ndr.DWORD
}

type SHARE\_INFO\_1501\_I

SHARE_INFO_1501_I contains a self-relative security descriptor for a shared resource ([MS-SRVS] 2.2.4.31). shi1501_security_descriptor is a unique [size_is(shi1501_reserved)] unsigned char* security-descriptor blob.

type SHARE_INFO_1501_I struct {
    Shi1501Reserved           ndr.DWORD
    Shi1501SecurityDescriptor []byte `ndr:"unique,size_is=Shi1501Reserved"`
}

type SHARE\_INFO\_1\_CONTAINER

SHARE_INFO_1_CONTAINER contains a count and an array of SHARE_INFO_1 entries ([MS-SRVS] 2.2.4.33). Buffer is a unique [size_is(EntriesRead)] pointer to a conformant array.

type SHARE_INFO_1_CONTAINER struct {
    EntriesRead ndr.DWORD
    Buffer      []SHARE_INFO_1 `ndr:"unique,size_is=EntriesRead"`
}

type SHARE\_INFO\_2

SHARE_INFO_2 contains information about a shared resource ([MS-SRVS] 2.2.4.24). shi2_netname, shi2_remark, shi2_path and shi2_passwd are embedded unique [string] wchar_t*.

type SHARE_INFO_2 struct {
    Shi2Netname     ndr.WSTR `ndr:"unique"`
    Shi2Type        ndr.DWORD
    Shi2Remark      ndr.WSTR `ndr:"unique"`
    Shi2Permissions ndr.DWORD
    Shi2MaxUses     ndr.DWORD
    Shi2CurrentUses ndr.DWORD
    Shi2Path        ndr.WSTR `ndr:"unique"`
    Shi2Passwd      ndr.WSTR `ndr:"unique"`
}

type SHARE\_INFO\_2\_CONTAINER

SHARE_INFO_2_CONTAINER contains a count and an array of SHARE_INFO_2 entries ([MS-SRVS] 2.2.4.34). Buffer is a unique [size_is(EntriesRead)] pointer to a conformant array.

type SHARE_INFO_2_CONTAINER struct {
    EntriesRead ndr.DWORD
    Buffer      []SHARE_INFO_2 `ndr:"unique,size_is=EntriesRead"`
}

type SHARE\_INFO\_501

SHARE_INFO_501 contains information about a shared resource, including flags ([MS-SRVS] 2.2.4.25). shi501_netname and shi501_remark are embedded unique [string] wchar_t*.

type SHARE_INFO_501 struct {
    Shi501Netname ndr.WSTR `ndr:"unique"`
    Shi501Type    ndr.DWORD
    Shi501Remark  ndr.WSTR `ndr:"unique"`
    Shi501Flags   ndr.DWORD
}

type SHARE\_INFO\_501\_CONTAINER

SHARE_INFO_501_CONTAINER contains a count and an array of SHARE_INFO_501 entries ([MS-SRVS] 2.2.4.35). Buffer is a unique [size_is(EntriesRead)] pointer to a conformant array.

type SHARE_INFO_501_CONTAINER struct {
    EntriesRead ndr.DWORD
    Buffer      []SHARE_INFO_501 `ndr:"unique,size_is=EntriesRead"`
}

type SHARE\_INFO\_502\_CONTAINER

SHARE_INFO_502_CONTAINER contains a count and an array of SHARE_INFO_502_I entries ([MS-SRVS] 2.2.4.36). Buffer is a unique [size_is(EntriesRead)] pointer to a conformant array.

type SHARE_INFO_502_CONTAINER struct {
    EntriesRead ndr.DWORD
    Buffer      []SHARE_INFO_502_I `ndr:"unique,size_is=EntriesRead"`
}

type SHARE\_INFO\_502\_I

SHARE_INFO_502_I contains information about a shared resource, including its security descriptor ([MS-SRVS] 2.2.4.26). The string fields are embedded unique [string] WCHAR*. shi502_security_descriptor is a unique [size_is(shi502_reserved)] unsigned char* security-descriptor blob.

type SHARE_INFO_502_I struct {
    Shi502Netname            ndr.WSTR `ndr:"unique"`
    Shi502Type               ndr.DWORD
    Shi502Remark             ndr.WSTR `ndr:"unique"`
    Shi502Permissions        ndr.DWORD
    Shi502MaxUses            ndr.DWORD
    Shi502CurrentUses        ndr.DWORD
    Shi502Path               ndr.WSTR `ndr:"unique"`
    Shi502Passwd             ndr.WSTR `ndr:"unique"`
    Shi502Reserved           ndr.DWORD
    Shi502SecurityDescriptor []byte `ndr:"unique,size_is=Shi502Reserved"`
}

type SHARE\_INFO\_503\_CONTAINER

SHARE_INFO_503_CONTAINER contains a count and an array of SHARE_INFO_503_I entries ([MS-SRVS] 2.2.4.37). Buffer is a unique [size_is(EntriesRead)] pointer to a conformant array.

type SHARE_INFO_503_CONTAINER struct {
    EntriesRead ndr.DWORD
    Buffer      []SHARE_INFO_503_I `ndr:"unique,size_is=EntriesRead"`
}

type SHARE\_INFO\_503\_I

SHARE_INFO_503_I contains information about a shared resource, including the server name and a security descriptor ([MS-SRVS] 2.2.4.27). The string fields are embedded unique [string] WCHAR*. shi503_security_descriptor is a unique [size_is(shi503_reserved)] PUCHAR security-descriptor blob.

type SHARE_INFO_503_I struct {
    Shi503Netname            ndr.WSTR `ndr:"unique"`
    Shi503Type               ndr.DWORD
    Shi503Remark             ndr.WSTR `ndr:"unique"`
    Shi503Permissions        ndr.DWORD
    Shi503MaxUses            ndr.DWORD
    Shi503CurrentUses        ndr.DWORD
    Shi503Path               ndr.WSTR `ndr:"unique"`
    Shi503Passwd             ndr.WSTR `ndr:"unique"`
    Shi503Servername         ndr.WSTR `ndr:"unique"`
    Shi503Reserved           ndr.DWORD
    Shi503SecurityDescriptor []byte `ndr:"unique,size_is=Shi503Reserved"`
}

type STAT\_SERVER\_0

STAT_SERVER_0 contains statistical information about the server ([MS-SRVS] 2.2.4.39). All fields are DWORD; the 64-bit byte counters are split into _low and _high halves.

type STAT_SERVER_0 struct {
    Sts0Start         ndr.DWORD
    Sts0Fopens        ndr.DWORD
    Sts0Devopens      ndr.DWORD
    Sts0Jobsqueued    ndr.DWORD
    Sts0Sopens        ndr.DWORD
    Sts0Stimedout     ndr.DWORD
    Sts0Serrorout     ndr.DWORD
    Sts0Pwerrors      ndr.DWORD
    Sts0Permerrors    ndr.DWORD
    Sts0Syserrors     ndr.DWORD
    Sts0BytessentLow  ndr.DWORD
    Sts0BytessentHigh ndr.DWORD
    Sts0BytesrcvdLow  ndr.DWORD
    Sts0BytesrcvdHigh ndr.DWORD
    Sts0Avresponse    ndr.DWORD
    Sts0Reqbufneed    ndr.DWORD
    Sts0Bigbufneed    ndr.DWORD
}

type TIME\_OF\_DAY\_INFO

TIME_OF_DAY_INFO contains the time-of-day information on the server ([MS-SRVS] 2.2.4.92). All fields are DWORD except TodTimezone, which is a signed long (minutes west of GMT).

type TIME_OF_DAY_INFO struct {
    TodElapsedt  ndr.DWORD
    TodMsecs     ndr.DWORD
    TodHours     ndr.DWORD
    TodMins      ndr.DWORD
    TodSecs      ndr.DWORD
    TodHunds     ndr.DWORD
    TodTimezone  int32
    TodTinterval ndr.DWORD
    TodDay       ndr.DWORD
    TodMonth     ndr.DWORD
    TodYear      ndr.DWORD
    TodWeekday   ndr.DWORD
}

type TRANSPORT\_INFO

TRANSPORT_INFO is the [switch_type(unsigned long)] union of server transport information levels ([MS-SRVS] 2.2.3.7). Tag carries the discriminant (the level) inline, followed by the selected arm. Each arm is an inline VALUE of the matching SERVER_TRANSPORT_INFO_<n> structure.

type TRANSPORT_INFO struct {
    Tag        ndr.DWORD               `ndr:"switch"`
    Transport0 SERVER_TRANSPORT_INFO_0 `ndr:"case=0"`
    Transport1 SERVER_TRANSPORT_INFO_1 `ndr:"case=1"`
    Transport2 SERVER_TRANSPORT_INFO_2 `ndr:"case=2"`
    Transport3 SERVER_TRANSPORT_INFO_3 `ndr:"case=3"`
}