Documentation ¶
Index ¶
- Variables
- func EmsmdbServerHandle(ctx context.Context, o EmsmdbServer, opNum int, r ndr.Reader) (dcerpc.Operation, error)
- func NewEmsmdbServerHandle(o EmsmdbServer) dcerpc.ServerHandle
- func RegisterEmsmdbServer(conn dcerpc.Conn, o EmsmdbServer, opts ...dcerpc.Option)
- type DoAsyncConnectExRequest
- type DoAsyncConnectExResponse
- type DoConnectExRequest
- type DoConnectExResponse
- type DoDisconnectRequest
- type DoDisconnectResponse
- type DoRPCExt2Request
- type DoRPCExt2Response
- type DummyRPCRequest
- type DummyRPCResponse
- type EmsmdbClient
- type EmsmdbServer
- type RegisterPushNotificationRequest
- type RegisterPushNotificationResponse
Constants ¶
This section is empty.
Variables ¶
var ( // Syntax UUID EmsmdbSyntaxUUID = &uuid.UUID{TimeLow: 0xa4f1db00, TimeMid: 0xca47, TimeHiAndVersion: 0x1067, ClockSeqHiAndReserved: 0xb3, ClockSeqLow: 0x1f, Node: [6]uint8{0x0, 0xdd, 0x1, 0x6, 0x62, 0xda}} // Syntax ID EmsmdbSyntaxV0_81 = &dcerpc.SyntaxID{IfUUID: EmsmdbSyntaxUUID, IfVersionMajor: 0, IfVersionMinor: 81} )
var (
// import guard
GoPackage = "oxcrpc"
)
Functions ¶
func EmsmdbServerHandle ¶
func NewEmsmdbServerHandle ¶
func NewEmsmdbServerHandle(o EmsmdbServer) dcerpc.ServerHandle
func RegisterEmsmdbServer ¶
func RegisterEmsmdbServer(conn dcerpc.Conn, o EmsmdbServer, opts ...dcerpc.Option)
Types ¶
type DoAsyncConnectExRequest ¶
type DoAsyncConnectExRequest struct { // cxh: A session context handle. The client MUST pass a valid session context handle // that was created by calling the EcDoConnectEx method. The server uses the session // context handle to identify the Session Context to use for this call. Session *oxcrpc.Session `idl:"name:cxh" json:"session"` }
DoAsyncConnectExRequest structure represents the EcDoAsyncConnectEx operation request
func (*DoAsyncConnectExRequest) MarshalNDR ¶
func (*DoAsyncConnectExRequest) UnmarshalNDR ¶
type DoAsyncConnectExResponse ¶
type DoAsyncConnectExResponse struct { // pacxh: An asynchronous context handle. On success, the server returns an asynchronous // context handle that is associated with the Session Context passed in the cxh parameter. // On failure, the returned value is NULL. The asynchronous context handle can be used // to make a call to the EcDoAsyncWaitEx method on the AsyncEMSMDB interface. AsyncSession *oxcrpc.AsyncSession `idl:"name:pacxh;pointer:ref" json:"async_session"` // Return: The EcDoAsyncConnectEx return value. Return int32 `idl:"name:Return" json:"return"` }
DoAsyncConnectExResponse structure represents the EcDoAsyncConnectEx operation response
func (*DoAsyncConnectExResponse) MarshalNDR ¶
func (*DoAsyncConnectExResponse) UnmarshalNDR ¶
type DoConnectExRequest ¶
type DoConnectExRequest struct { // szUserDN: The DN of the user who is calling the EcDoConnectEx method in a directory // service. The value of the szUserDN parameter is similar to the following: "/o=First // Organization/ou=First Administrative Group/cn=recipients/cn=janedow". UserDN string `idl:"name:szUserDN;string" json:"user_dn"` // ulFlags: A flag value that designates the type of connection being established. On // input, this parameter contains connection bits that MUST be set; all flag values // not in the following table are reserved connection flags. // // +------------+----------------------------------------------------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +------------+----------------------------------------------------------------------------------+ // +------------+----------------------------------------------------------------------------------+ // | 0x00000000 | Requests connection without administrator privilege. | // +------------+----------------------------------------------------------------------------------+ // | 0x00000001 | Requests administrator behavior, which causes the server to check that the user | // | | has administrator privilege. | // +------------+----------------------------------------------------------------------------------+ // | 0x00008000 | If this flag is not passed and the client version (as specified by the | // | | rgwClientVersion parameter) is less than 12.00.0000.000 and no public folders | // | | are configured within the messaging system, the server MUST fail the connection | // | | attempt with error code ecClientVerDisallowed. The AUX_EXORGINFO auxiliary | // | | block structure, specified in section 2.2.2.2.17, informs the client of the | // | | presence of public folders within the organization. The use of the AUX_EXORGINFO | // | | auxiliary block structure is further defined in section 3.1.4.1.2.1. If this | // | | flag is passed and the client version (as specified by the rgwClientVersion | // | | parameter) is less than 12.00.0000.000, the server MUST NOT fail the connection | // | | attempt due to public folders not being configured within the messaging system. | // | | If the client version (as specified by the rgwClientVersion parameter) is | // | | greater than or equal to 12.00.0000.000, the server MUST NOT fail the connection | // | | attempt due to public folders not being configured within the messaging system | // | | (regardless of whether or not this flag is passed). | // +------------+----------------------------------------------------------------------------------+ Flags uint32 `idl:"name:ulFlags" json:"flags"` // ulConMod: A client-derived 32-bit hash value of the DN passed in the szUserDN parameter. // The server determines which public folder replica to use when accessing public folder // information when more than one replica of a folder exists. The hash can be used to // distribute client access across replicas in a deterministic way for load balancing. UserDNHash uint32 `idl:"name:ulConMod" json:"user_dn_hash"` // cbLimit: MUST be set to zero when sent and MUST be ignored when received. LimitLength uint32 `idl:"name:cbLimit" json:"limit_length"` // ulCpid: The code page in which text data is sent. If the Unicode format is not requested // by the client on subsequent calls that use this Session Context, the ulCpid parameter // sets the code page to be used in subsequent calls. CodePageID uint32 `idl:"name:ulCpid" json:"code_page_id"` // ulLcidString: The local ID for everything other than sorting. LocalIDString uint32 `idl:"name:ulLcidString" json:"local_id_string"` // ulLcidSort: The local ID for sorting. LocalIDSort uint32 `idl:"name:ulLcidSort" json:"local_id_sort"` // ulIcxrLink: A value used to link the Session Context created by this call with a // currently existing Session Context on the server. To request Session Context linking, // the client MUST pass the value of 0xFFFFFFFF. To link to an existing Session Context, // this value is the session index value returned in the piCxr parameter from a previous // call to the EcDoConnectEx method. In addition to passing the session index in the // ulIcxrLink parameter, the client sets the pulTimeStamp parameter to the value that // was returned in the pulTimeStamp parameter from the previous call to the EcDoConnectEx // method. These two values MUST be used by the server to identify an active session // with the same session index and session creation time stamp. If a session is found, // the server MUST link the Session Context created by this call with the one found.<8> // // A server allows Session Context linking for the following reasons: // // * // // To consume a single Client Access License (CAL) ( c5869b4a-c0d3-4ceb-80f4-c47a250ddf3d#gt_0e48e7fc-c851-4692-9b39-8bfa227f4aba // ) for all the connections made from a single client computer. This gives a client // the ability to open multiple independent connections using more than one Session // Context on the server but be seen to the server as only consuming a single CAL. <9> // ( f2038fa2-e1b4-4b77-8e29-08c865c1cb3a#Appendix_A_9 ) // // * // // To get pending notification information for other sessions on the same client computer. // For details, see [MS-OXCNOTIF] ( ../ms-oxcnotif/7c7d1653-5dfb-42f1-9410-fc4e48e10731 // ). // // Note that the ulIcxrLink parameter is defined as a 32-bit value. Other than passing // 0xFFFFFFFF for no Session Context linking, the server only uses the low-order 16 // bits as the session index. This value is the value returned in the piCxr parameter // from a previous call to the EcDoConnectEx method, which is the session index and // defined as a 16-bit value. RemoteSessionLink uint32 `idl:"name:ulIcxrLink" json:"remote_session_link"` // usFCanConvertCodePages: This parameter is reserved. The client MUST pass a value // of 0x0001. CanConvertCodePages uint16 `idl:"name:usFCanConvertCodePages" json:"can_convert_code_pages"` // rgwClientVersion: The client protocol version that the server uses to determine what // protocol functionality the client supports. For more details about how version numbers // are interpreted from the wire data, see section 3.2.4.1.3. ClientVersion []uint16 `idl:"name:rgwClientVersion" json:"client_version"` // pulTimeStamp: The creation time of the newly created Session Context. On input, a // value used with the ulIcxrLink parameter to link the Session Context created by this // call with an existing Session Context. If the ulIcxrLink parameter is not set to // 0xFFFFFFFF, the client MUST pass in the value of the pulTimeStamp parameter returned // from the server on a previous call to the EcDoConnectEx method. For more details, // see the ulIcxrLink and piCxr parameter descriptions earlier in this section. If the // server supports Session Context linking, the server verifies that there is a Session // Context state with the unique identifier in the ulIcxrLink parameter, and the Session // Context state has a creation time stamp equal to the value passed in this parameter. // If so, the server MUST link the Session Context created by this call with the one // found. If no such Session Context state is found, the server does not fail the EcDoConnectEx // method call but simply does not link the Session Contexts.<11> // // On output, the server has to return a time stamp in which the new Session Context // was created. The server saves the Session Context creation time stamp within the // Session Context state for later use if a client attempts to link Session Contexts. Timestamp uint32 `idl:"name:pulTimeStamp" json:"timestamp"` // rgbAuxIn: An auxiliary payload buffer prefixed by an RPC_HEADER_EXT structure, as // specified in section 2.2.2.1. Information stored in this structure determines how // to interpret the data that follows the structure. The length of the auxiliary payload // buffer that includes the RPC_HEADER_EXT structure is contained in the cbAuxIn parameter. // // For details about how to access the embedded auxiliary payload buffer, see section // 3.1.4.1.1. For details about how to interpret the auxiliary payload data, see section // 3.1.4.1.2. AuxIn []byte `idl:"name:rgbAuxIn;size_is:(cbAuxIn)" json:"aux_in"` // cbAuxIn: The length of the rgbAuxIn parameter. If this value on input is larger than // 0x00001008 bytes in size, the server SHOULD<12> fail with the RPC status code RPC_X_BAD_STUB_DATA // (0x000006F7). If this value is greater than 0x00000000 and less than 0x00000008, // the server SHOULD<13> fail with ecRpcFailed (0x80040115). For more information on // returning RPC status codes, see [C706]. AuxInLength uint32 `idl:"name:cbAuxIn" json:"aux_in_length"` // pcbAuxOut: The length of the rgbAuxOut parameter. If this value on input is larger // than 0x00001008, the server MUST fail with the RPC status code RPC_X_BAD_STUB_DATA // (0x000006F7). // // On output, this parameter contains the size of the data to be returned in the rgbAuxOut // parameter. AuxOutLength uint32 `idl:"name:pcbAuxOut" json:"aux_out_length"` }
DoConnectExRequest structure represents the EcDoConnectEx operation request
func (*DoConnectExRequest) MarshalNDR ¶
func (*DoConnectExRequest) UnmarshalNDR ¶
type DoConnectExResponse ¶
type DoConnectExResponse struct { // pcxh: A session context handle for the client. On success, the server MUST return // a unique value to be used as a session context handle. // // On failure, the server MUST return a zero value as the session context handle. Session *oxcrpc.Session `idl:"name:pcxh;pointer:ref" json:"session"` // pcmsPollsMax: An implementation-dependent value that specifies the number of milliseconds // that a client waits between polling the server for event information. If the client // or server does not support making asynchronous RPCs for notifications as specified // in section 3.3.4.1, or the client is unable to receive notifications via UDP datagrams, // as specified in [MS-OXCNOTIF] section 3.2.5.4 and [MS-OXCNOTIF] section 3.2.5.5.2, // the client can poll the server to determine whether any events are pending for the // client. PollsMax uint32 `idl:"name:pcmsPollsMax" json:"polls_max"` // pcRetry: An implementation-dependent value that specifies the number of times a client // retries future RPCs using the session context handle returned in this call. This // is for client RPCs that fail with RPC status code RPC_S_SERVER_TOO_BUSY (0x000006BB). // This is a suggested retry count for the client and is not to be enforced by the server. // For more details about circumstances under which the RPC_S_SERVER_TOO_BUSY status // code is returned, see [MS-OXCROPS] section 3.2.4.2. For more details about how the // client handles the RPC_S_SERVER_TOO_BUSY status code, see section 3.2.4.4. RetryCount uint32 `idl:"name:pcRetry" json:"retry_count"` // pcmsRetryDelay: An implementation-dependent value that specifies the number of milliseconds // a client waits before retrying a failed RPC. If any future RPC to the server using // the session context handle returned in this call fails with RPC status code RPC_S_SERVER_TOO_BUSY // (0x000006BB), the client waits the number of milliseconds specified in this output // parameter before retrying the call. The number of times a client retries is returned // in the pcRetry parameter. This is a suggested delay for the client and is not to // be enforced by the server. RetryDelay uint32 `idl:"name:pcmsRetryDelay" json:"retry_delay"` RemoteSession uint16 `idl:"name:picxr" json:"remote_session"` // szDNPrefix: An implementation-dependent value that specifies a DN prefix that is // used to build message recipients. An empty value indicates that there is nothing // to prepend to recipient entries on messages. DNPrefix string `idl:"name:szDNPrefix;string" json:"dn_prefix"` // szDisplayName: The display name of the user associated with the szUserDN parameter. DisplayName string `idl:"name:szDisplayName;string" json:"display_name"` // rgwServerVersion: The server protocol version that the client uses to determine what // protocol functionality the server supports. For details about how version numbers // are interpreted from the wire data, see section 3.1.4.1.3. ServerVersion []uint16 `idl:"name:rgwServerVersion" json:"server_version"` // rgwBestVersion: The minimum client protocol version that the server supports. This // information is useful if the call to the EcDoConnectEx method fails with return code // ecVersionMismatch. On success, the server returns the value passed in the rgwClientVersion // parameter by the client. The server cannot perform any client protocol version negotiation. // The server can either return the minimum client protocol version required to access // the server and fail the call with ecVersionMismatch (0x80040110) or allow the client // and return the value passed by the client in the rgwClientVersion parameter. The // server implementation sets the minimum client protocol version that is supported // by the server. For details about how version numbers are interpreted from the wire // data, see section 3.1.4.1.3.1. BestVersion []uint16 `idl:"name:rgwBestVersion" json:"best_version"` // pulTimeStamp: The creation time of the newly created Session Context. On input, a // value used with the ulIcxrLink parameter to link the Session Context created by this // call with an existing Session Context. If the ulIcxrLink parameter is not set to // 0xFFFFFFFF, the client MUST pass in the value of the pulTimeStamp parameter returned // from the server on a previous call to the EcDoConnectEx method. For more details, // see the ulIcxrLink and piCxr parameter descriptions earlier in this section. If the // server supports Session Context linking, the server verifies that there is a Session // Context state with the unique identifier in the ulIcxrLink parameter, and the Session // Context state has a creation time stamp equal to the value passed in this parameter. // If so, the server MUST link the Session Context created by this call with the one // found. If no such Session Context state is found, the server does not fail the EcDoConnectEx // method call but simply does not link the Session Contexts.<11> // // On output, the server has to return a time stamp in which the new Session Context // was created. The server saves the Session Context creation time stamp within the // Session Context state for later use if a client attempts to link Session Contexts. Timestamp uint32 `idl:"name:pulTimeStamp" json:"timestamp"` // rgbAuxOut: An auxiliary payload buffer prefixed by an RPC_HEADER_EXT structure (section // 2.2.2.1). On output, the server can return auxiliary payload data to the client in // this parameter. The server MUST include an RPC_HEADER_EXT structure before the auxiliary // payload data. // // For details about how to access the embedded auxiliary payload buffer, see section // 3.1.4.1.1. For details about how to interpret the auxiliary payload data, see section // 3.1.4.1.2. AuxOut []byte `idl:"name:rgbAuxOut;size_is:(pcbAuxOut);length_is:(pcbAuxOut)" json:"aux_out"` // pcbAuxOut: The length of the rgbAuxOut parameter. If this value on input is larger // than 0x00001008, the server MUST fail with the RPC status code RPC_X_BAD_STUB_DATA // (0x000006F7). // // On output, this parameter contains the size of the data to be returned in the rgbAuxOut // parameter. AuxOutLength uint32 `idl:"name:pcbAuxOut" json:"aux_out_length"` // Return: The EcDoConnectEx return value. Return int32 `idl:"name:Return" json:"return"` }
DoConnectExResponse structure represents the EcDoConnectEx operation response
func (*DoConnectExResponse) MarshalNDR ¶
func (*DoConnectExResponse) UnmarshalNDR ¶
type DoDisconnectRequest ¶
type DoDisconnectRequest struct { // pcxh: A session context handle. On input, this parameter is the session context handle // of the Session Context that the client is disconnecting. On output, the server MUST // set the pcxh parameter to a zero value. Setting the value to zero instructs the RPC // layer of the server to destroy the RPC context handle. Session *oxcrpc.Session `idl:"name:pcxh;pointer:ref" json:"session"` }
DoDisconnectRequest structure represents the EcDoDisconnect operation request
func (*DoDisconnectRequest) MarshalNDR ¶
func (*DoDisconnectRequest) UnmarshalNDR ¶
type DoDisconnectResponse ¶
type DoDisconnectResponse struct { // pcxh: A session context handle. On input, this parameter is the session context handle // of the Session Context that the client is disconnecting. On output, the server MUST // set the pcxh parameter to a zero value. Setting the value to zero instructs the RPC // layer of the server to destroy the RPC context handle. Session *oxcrpc.Session `idl:"name:pcxh;pointer:ref" json:"session"` // Return: The EcDoDisconnect return value. Return int32 `idl:"name:Return" json:"return"` }
DoDisconnectResponse structure represents the EcDoDisconnect operation response
func (*DoDisconnectResponse) MarshalNDR ¶
func (*DoDisconnectResponse) UnmarshalNDR ¶
type DoRPCExt2Request ¶
type DoRPCExt2Request struct { // pcxh: A session context handle. On input, the client MUST pass a valid session context // handle that was created by calling the EcDoConnectEx method. The server uses the // session context handle to identify the Session Context to use for this call. On output, // the server MUST return the same session context handle on success. // // The server can destroy the session context handle by returning a zero session context // handle. Reasons for destroying the session context handle are implementation-dependent; // following are examples of why the server might destroy the session context handle: // // * The server determines that the ROP request ( c5869b4a-c0d3-4ceb-80f4-c47a250ddf3d#gt_edeadb0f-6571-49b7-8cce-5dc77b0793d6 // ) payload in the rgbIn buffer is malformed or length parameters are not valid. // // * The session context handle that was passed in is not valid. // // * An attempt was made to access a mailbox ( c5869b4a-c0d3-4ceb-80f4-c47a250ddf3d#gt_d3ad0e15-adc9-4174-bacf-d929b57278b3 // ) that is in the process of being moved. // // * An administrator has blocked a client that has an active connection. Session *oxcrpc.Session `idl:"name:pcxh;pointer:ref" json:"session"` // pulFlags: The flags that describe the server output characteristics. On input, this // parameter contains flags that tell the server how to build the rgbOut parameter. // // +---------------+------------+----------------------------------------------------------------------------------+ // | FLAG | | | // | NAME | VALUE | MEANING | // | | | | // +---------------+------------+----------------------------------------------------------------------------------+ // +---------------+------------+----------------------------------------------------------------------------------+ // | NoCompression | 0x00000001 | The server MUST NOT compress ROP response payload (rgbOut) or auxiliary payload | // | | | (rgbAuxOut). For details about server behavior when this flag is absent, see | // | | | section 3.1.4.2.1.1. | // +---------------+------------+----------------------------------------------------------------------------------+ // | NoXorMagic | 0x00000002 | The server MUST NOT obfuscate the ROP response payload (rgbOut) or auxiliary | // | | | payload (rgbAuxOut). For details about server behavior when this flag is absent, | // | | | see section 3.1.4.2.1.1. | // +---------------+------------+----------------------------------------------------------------------------------+ // | Chain | 0x00000004 | The client allows chaining of ROP response payloads. | // +---------------+------------+----------------------------------------------------------------------------------+ // // For details about how to use these flags, see section 3.1.4.2.1.1. // // On output, the server SHOULD<17> set this parameter to 0x00000000. The output flags // not in the table are reserved for future use. Flags uint32 `idl:"name:pulFlags" json:"flags"` // rgbIn: The ROP request payload. The ROP request payload is prefixed with an RPC_HEADER_EXT // header, as specified in section 2.2.2.1. Information stored in this header determines // how to interpret the data following the header. For details about how to access the // embedded ROP request payload, see section 3.1.4.2.1. The length of the ROP request // payload including the RPC_HEADER_EXT header is contained in the cbIn parameter. // // For more information about ROP buffers, see [MS-OXCROPS]. In []byte `idl:"name:rgbIn;size_is:(cbIn)" json:"in"` // cbIn: The length of the ROP request payload. On input, this parameter contains the // length of the ROP request payload passed in the rgbIn parameter. The ROP request // payload includes the size of the ROPs plus the size of the RPC_HEADER_EXT structure. // The server SHOULD<18> fail with the RPC status code of RPC_X_BAD_STUB_DATA (0x000006F7) // if the request buffer is larger than 0x00040000 bytes in size. For more information // on returning RPC status codes, see [C706]. If the request buffer is smaller than // the size of the RPC_HEADER_EXT structure (0x00000008 bytes), the server SHOULD<19> // fail with error code ecRpcFailed (0x80040115). InLength uint32 `idl:"name:cbIn" json:"in_length"` // pcbOut: The maximum size of the rgbOut parameter. On input, this parameter contains // the maximum size of the rgbOut parameter. If the value in the pcbOut parameter on // input is less than 0x00000008, the server SHOULD<20> fail with error code ecRpcFailed // (0x80040115). If the value in the pcbOut parameter on input is larger than 0x00040000, // the server MUST fail with the RPC status code of RPC_X_BAD_STUB_DATA (0x000006F7). // If the server indicates it supports a larger ROP response payload through the ULTRA_LARGE_PACKED_DOWNLOAD_BUFFERS // flag being present in the Flags field of the AUX_SERVER_CAPABILITIES (section 2.2.2.2.19) // auxiliary block returned in rgbAuxOut field of the EcDoConnectEx method (section // 3.1.4.1), then the server MUST fail only if pcbOut is larger than 0x00100000. // // On output, this parameter contains the size of the ROP response payload, including // the size of the RPC_HEADER_EXT header in the rgbOut parameter. The server returns // 0x00000000 on failure because there is no ROP response payload. The client ignores // any data returned on failure. OutLength uint32 `idl:"name:pcbOut" json:"out_length"` // rgbAuxIn: The auxiliary payload buffer. The auxiliary payload buffer is prefixed // by an RPC_HEADER_EXT structure. Information stored in this header determines how // to interpret the data following the header. The length of the auxiliary payload buffer // including the RPC_HEADER_EXT header is contained in the cbAuxIn parameter. // // For details about how to access the embedded auxiliary payload buffer, see section // 3.1.4.2.1. For details about how to interpret the auxiliary payload data, see section // 3.1.4.2.2. AuxIn []byte `idl:"name:rgbAuxIn;size_is:(cbAuxIn)" json:"aux_in"` // cbAuxIn: The length of the auxiliary payload buffer. On input, this parameter contains // the length of the auxiliary payload buffer passed in the rgbAuxIn parameter. If the // request buffer value is larger than 0x00001008 bytes in size, the server SHOULD<21> // fail with the RPC status code RPC_X_BAD_STUB_DATA (0x000006F7).<22> AuxInLength uint32 `idl:"name:cbAuxIn" json:"aux_in_length"` // pcbAuxOut: The maximum length of the auxiliary payload buffer. On input, this parameter // contains the maximum length of the rgbAuxOut parameter. If this value on input is // larger than 0x00001008, the server MUST fail with the RPC status code RPC_X_BAD_STUB_DATA // (0x000006F7). // // On output, this parameter contains the size of the data to be returned in the rgbAuxOut // parameter. AuxOutLength uint32 `idl:"name:pcbAuxOut" json:"aux_out_length"` }
DoRPCExt2Request structure represents the EcDoRpcExt2 operation request
func (*DoRPCExt2Request) MarshalNDR ¶
func (*DoRPCExt2Request) UnmarshalNDR ¶
type DoRPCExt2Response ¶
type DoRPCExt2Response struct { // pcxh: A session context handle. On input, the client MUST pass a valid session context // handle that was created by calling the EcDoConnectEx method. The server uses the // session context handle to identify the Session Context to use for this call. On output, // the server MUST return the same session context handle on success. // // The server can destroy the session context handle by returning a zero session context // handle. Reasons for destroying the session context handle are implementation-dependent; // following are examples of why the server might destroy the session context handle: // // * The server determines that the ROP request ( c5869b4a-c0d3-4ceb-80f4-c47a250ddf3d#gt_edeadb0f-6571-49b7-8cce-5dc77b0793d6 // ) payload in the rgbIn buffer is malformed or length parameters are not valid. // // * The session context handle that was passed in is not valid. // // * An attempt was made to access a mailbox ( c5869b4a-c0d3-4ceb-80f4-c47a250ddf3d#gt_d3ad0e15-adc9-4174-bacf-d929b57278b3 // ) that is in the process of being moved. // // * An administrator has blocked a client that has an active connection. Session *oxcrpc.Session `idl:"name:pcxh;pointer:ref" json:"session"` // pulFlags: The flags that describe the server output characteristics. On input, this // parameter contains flags that tell the server how to build the rgbOut parameter. // // +---------------+------------+----------------------------------------------------------------------------------+ // | FLAG | | | // | NAME | VALUE | MEANING | // | | | | // +---------------+------------+----------------------------------------------------------------------------------+ // +---------------+------------+----------------------------------------------------------------------------------+ // | NoCompression | 0x00000001 | The server MUST NOT compress ROP response payload (rgbOut) or auxiliary payload | // | | | (rgbAuxOut). For details about server behavior when this flag is absent, see | // | | | section 3.1.4.2.1.1. | // +---------------+------------+----------------------------------------------------------------------------------+ // | NoXorMagic | 0x00000002 | The server MUST NOT obfuscate the ROP response payload (rgbOut) or auxiliary | // | | | payload (rgbAuxOut). For details about server behavior when this flag is absent, | // | | | see section 3.1.4.2.1.1. | // +---------------+------------+----------------------------------------------------------------------------------+ // | Chain | 0x00000004 | The client allows chaining of ROP response payloads. | // +---------------+------------+----------------------------------------------------------------------------------+ // // For details about how to use these flags, see section 3.1.4.2.1.1. // // On output, the server SHOULD<17> set this parameter to 0x00000000. The output flags // not in the table are reserved for future use. Flags uint32 `idl:"name:pulFlags" json:"flags"` // rgbOut: The ROP response payload. The size of the payload is specified in the pcbOut // parameter. Like the ROP request payload, the ROP response payload is also prefixed // by a RPC_HEADER_EXT header. For details about how to format the ROP response payload, // see section 3.1.4.2.1. The size of the ROP response payload plus the RPC_HEADER_EXT // header is returned in the pcbOut parameter. Out []byte `idl:"name:rgbOut;size_is:(pcbOut);length_is:(pcbOut)" json:"out"` // pcbOut: The maximum size of the rgbOut parameter. On input, this parameter contains // the maximum size of the rgbOut parameter. If the value in the pcbOut parameter on // input is less than 0x00000008, the server SHOULD<20> fail with error code ecRpcFailed // (0x80040115). If the value in the pcbOut parameter on input is larger than 0x00040000, // the server MUST fail with the RPC status code of RPC_X_BAD_STUB_DATA (0x000006F7). // If the server indicates it supports a larger ROP response payload through the ULTRA_LARGE_PACKED_DOWNLOAD_BUFFERS // flag being present in the Flags field of the AUX_SERVER_CAPABILITIES (section 2.2.2.2.19) // auxiliary block returned in rgbAuxOut field of the EcDoConnectEx method (section // 3.1.4.1), then the server MUST fail only if pcbOut is larger than 0x00100000. // // On output, this parameter contains the size of the ROP response payload, including // the size of the RPC_HEADER_EXT header in the rgbOut parameter. The server returns // 0x00000000 on failure because there is no ROP response payload. The client ignores // any data returned on failure. OutLength uint32 `idl:"name:pcbOut" json:"out_length"` // rgbAuxOut: The auxiliary payload buffer. On output, the server MAY<23> return auxiliary // payload data to the client. The server MUST include a RPC_HEADER_EXT header before // the auxiliary payload data. AuxOut []byte `idl:"name:rgbAuxOut;size_is:(pcbAuxOut);length_is:(pcbAuxOut)" json:"aux_out"` // pcbAuxOut: The maximum length of the auxiliary payload buffer. On input, this parameter // contains the maximum length of the rgbAuxOut parameter. If this value on input is // larger than 0x00001008, the server MUST fail with the RPC status code RPC_X_BAD_STUB_DATA // (0x000006F7). // // On output, this parameter contains the size of the data to be returned in the rgbAuxOut // parameter. AuxOutLength uint32 `idl:"name:pcbAuxOut" json:"aux_out_length"` // pulTransTime: The time it took to execute this method. On output, the server stores // the number of milliseconds the call took to execute. This is the total elapsed time // from when the call is dispatched on the server to the point in which the server returns // the call. This is diagnostic information the client can use to determine the cause // of a slow response time from the server. The client can monitor the total elapsed // time across the RPC method call and, using this output parameter, can determine whether // time was spent transmitting the request/response on the network or processing it // on the server. TransTime uint32 `idl:"name:pulTransTime" json:"trans_time"` // Return: The EcDoRpcExt2 return value. Return int32 `idl:"name:Return" json:"return"` }
DoRPCExt2Response structure represents the EcDoRpcExt2 operation response
func (*DoRPCExt2Response) MarshalNDR ¶
func (*DoRPCExt2Response) UnmarshalNDR ¶
type DummyRPCRequest ¶
type DummyRPCRequest struct { }
DummyRPCRequest structure represents the EcDummyRpc operation request
func (*DummyRPCRequest) MarshalNDR ¶
func (*DummyRPCRequest) UnmarshalNDR ¶
type DummyRPCResponse ¶
type DummyRPCResponse struct { // Return: The EcDummyRpc return value. Return int32 `idl:"name:Return" json:"return"` }
DummyRPCResponse structure represents the EcDummyRpc operation response
func (*DummyRPCResponse) MarshalNDR ¶
func (*DummyRPCResponse) UnmarshalNDR ¶
type EmsmdbClient ¶
type EmsmdbClient interface { // The EcDoDisconnect method closes a Session Context with the server. The server destroys // the Session Context and releases all associated server state, objects, and resources // that are associated with the Session Context. This call requires an active session // context handle from the EcDoConnectEx method, as specified in section 3.1.4.1. // // Return Values: If the method succeeds, the return value is 0. If the method fails, // the return value is an implementation-specific error code. // // Exceptions Thrown: No exceptions are thrown beyond those thrown by the underlying // RPC protocol as specified in [MS-RPCE]. DoDisconnect(context.Context, *DoDisconnectRequest, ...dcerpc.CallOption) (*DoDisconnectResponse, error) // The EcRRegisterPushNotification method registers a callback address with the server // for a Session Context. The server MAY<26> support the EcRRegisterPushNotification // method. // // The callback address is used to notify the client of pending events on the server. // This call requires an active session context handle from the EcDoConnectEx method, // as specified in section 3.1.4.1. The server MUST store the callback address and the // opaque context data in the Session Context. To notify the client of pending events, // the server sends a packet containing just the opaque context data to the callback // address. The callback address specifies which network transport is to be used to // send the data packet. // // For more information about notification handling, see [MS-OXCNOTIF]. // // Return Values: If the method succeeds, the return value is 0. If the method fails, // the return value is an implementation-specific error code or one of the protocol-defined // error codes listed in the following table. // // +-----------------+------------+------------------------------------------------------+ // | ERROR CODE | | | // | NAME | VALUE | MEANING | // | | | | // +-----------------+------------+------------------------------------------------------+ // +-----------------+------------+------------------------------------------------------+ // | ecInvalidParam | 0x80070057 | A parameter passed was not valid for the call. | // +-----------------+------------+------------------------------------------------------+ // | ecNotSupported | 0x80040102 | The callback address is not supported on the server. | // +-----------------+------------+------------------------------------------------------+ // | ecTooBig | 0x80040305 | Opaque context data is too large. | // +-----------------+------------+------------------------------------------------------+ // // Exceptions Thrown: No exceptions are thrown beyond those thrown by the underlying // RPC protocol as specified in [MS-RPCE]. RegisterPushNotification(context.Context, *RegisterPushNotificationRequest, ...dcerpc.CallOption) (*RegisterPushNotificationResponse, error) // The EcDummyRpc method returns a SUCCESS. A client can use it to determine whether // it can communicate with the server. // // Return Values: The function MUST succeed and return 0. // // Exceptions Thrown: No exceptions are thrown beyond those thrown by the underlying // RPC protocol as specified in [MS-RPCE]. DummyRPC(context.Context, *DummyRPCRequest, ...dcerpc.CallOption) (*DummyRPCResponse, error) // The EcDoConnectEx method establishes a new Session Context with the server. The Session // Context is persisted on the server until the client disconnects by using the EcDoDisconnect // method, as specified in section 3.1.4.3. The EcDoConnectEx method returns a session // context handle to be used by a client in subsequent calls. // // Return Values: If the method succeeds, the return value is 0. If the method fails, // the return value is an implementation-specific error code or one of the protocol-defined // error codes listed in the following table. // // +-----------------------+------------+----------------------------------------------------------------------------------+ // | ERROR CODE | | | // | NAME | VALUE | MEANING | // | | | | // +-----------------------+------------+----------------------------------------------------------------------------------+ // +-----------------------+------------+----------------------------------------------------------------------------------+ // | ecAccessDenied<14> | 0x80070005 | The authentication context associated with the binding handle does not have | // | | | enough privilege or the szUserDN parameter is empty. | // +-----------------------+------------+----------------------------------------------------------------------------------+ // | ecNotEncrypted | 0x00000970 | The server is configured to require encryption and the authentication for | // | | | the binding handle contained in the hBinding parameter is not set with | // | | | RPC_C_AUTHN_LEVEL_PKT_PRIVACY. For more information about setting the | // | | | authentication and authorization, see [MSDN-RpcBindingSetAuthInfoEx]. The client | // | | | attempts the call again with new binding handle that is encrypted. | // +-----------------------+------------+----------------------------------------------------------------------------------+ // | ecClientVerDisallowed | 0x000004DF | 1. The server requires encryption, but the client is not encrypted and the | // | | | client does not support receiving error code ecNotEncrypted being returned by | // | | | the server. For details about which client versions do not support receiving | // | | | error code ecNotEncrypted, see section 3.1.4.1.3 and section 3.2.4.1.3. 2. The | // | | | client version has been blocked by the administrator. | // +-----------------------+------------+----------------------------------------------------------------------------------+ // | ecLoginFailure | 0x80040111 | Server is unable to log in user to the mailbox or public folder database. | // +-----------------------+------------+----------------------------------------------------------------------------------+ // | ecUnknownUser | 0x000003EB | The server does not recognize the szUserDN parameter as a valid enabled mailbox. | // | | | For more details, see [MS-OXCSTOR] section 3.1.4.1. | // +-----------------------+------------+----------------------------------------------------------------------------------+ // | ecLoginPerm | 0x000003F2 | The connection is requested for administrative access, but the authentication | // | | | context associated with the binding handle does not have enough privilege. | // +-----------------------+------------+----------------------------------------------------------------------------------+ // | ecVersionMismatch | 0x80040110 | The client and server versions are not compatible. The client protocol version | // | | | is earlier than that required by the server. | // +-----------------------+------------+----------------------------------------------------------------------------------+ // | ecCachedModeRequired | 0x000004E1 | The server requires the client to be running in cache mode. For details about | // | | | which client versions understand this error code, see section 3.2.4.1.3. | // +-----------------------+------------+----------------------------------------------------------------------------------+ // | ecRpcHttpDisallowed | 0x000004E0 | The server requires the client to not be connected via RPC over HTTP. For | // | | | details about which client versions understand this error code, see section | // | | | 3.1.4.1.3. | // +-----------------------+------------+----------------------------------------------------------------------------------+ // | ecProtocolDisabled | 0x000007D8 | The server disallows the user to access the server via this protocol interface. | // | | | This could be done if the user is only capable of accessing their mailbox | // | | | information through a different means (for example, Webmail, POP, or IMAP). | // | | | For details about which client versions understand this error code, see section | // | | | 3.1.4.1.3. | // +-----------------------+------------+----------------------------------------------------------------------------------+ // // Exceptions Thrown: No exceptions are thrown beyond those thrown by the underlying // RPC protocol, as specified in [MS-RPCE]. DoConnectEx(context.Context, *DoConnectExRequest, ...dcerpc.CallOption) (*DoConnectExResponse, error) // The EcDoRpcExt2 method passes generic ROP commands to the server for processing within // a Session Context. Each call can contain multiple ROP commands. The server returns // the results of each ROP command to the client. This call requires an active session // context handle returned from the EcDoConnectEx method. // // Return Values: If the method succeeds, the return value is 0. If the method fails, // the return value is an implementation-specific error code or the protocol-defined // error code listed in the following table. // // +-----------------+------------+----------------------------------------------------------------------------------+ // | ERROR CODE | | | // | NAME | VALUE | MEANING | // | | | | // +-----------------+------------+----------------------------------------------------------------------------------+ // +-----------------+------------+----------------------------------------------------------------------------------+ // | ecRpcFormat | 0x000004B6 | The format of the request was found to be invalid. This is a generic error that | // | | | means the length was found to be invalid or the content was found to be invalid. | // +-----------------+------------+----------------------------------------------------------------------------------+ // // Exceptions Thrown: No exceptions are thrown beyond those thrown by the underlying // RPC protocol as specified in [MS-RPCE]. DoRPCExt2(context.Context, *DoRPCExt2Request, ...dcerpc.CallOption) (*DoRPCExt2Response, error) // The EcDoAsyncConnectEx method binds a session context handle returned from the EcDoConnectEx // method, as specified in section 3.1.4.1, to a new asynchronous context handle that // can be used in calls to the EcDoAsyncWaitEx method in the AsyncEMSMDB interface, // as specified in section 3.3.4.1. This call requires that an active session context // handle be returned from the EcDoConnectEx method. // // This method is part of notification handling. For more information about notifications, // see [MS-OXCNOTIF]. // // Return Values: If the method succeeds, the return value is 0. If the method fails, // the return value is an implementation-specific error code or the protocol-defined // error code listed in the following table. // // +-----------------+------------+----------------------------------------------------------------------------------+ // | ERROR CODE | | | // | NAME | VALUE | MEANING | // | | | | // +-----------------+------------+----------------------------------------------------------------------------------+ // +-----------------+------------+----------------------------------------------------------------------------------+ // | ecRejected<25> | 0x000007EE | Server has asynchronous RPC notifications disabled. Client either polls | // | | | for notifications or calls the EcRRegisterPushNotifications method (section | // | | | 3.1.4.5). | // +-----------------+------------+----------------------------------------------------------------------------------+ // // Exceptions Thrown: No exceptions are thrown beyond those thrown by the underlying // RPC protocol as specified in [MS-RPCE]. DoAsyncConnectEx(context.Context, *DoAsyncConnectExRequest, ...dcerpc.CallOption) (*DoAsyncConnectExResponse, error) // AlterContext alters the client context. AlterContext(context.Context, ...dcerpc.Option) error }
emsmdb interface.
func NewEmsmdbClient ¶
type EmsmdbServer ¶
type EmsmdbServer interface { // The EcDoDisconnect method closes a Session Context with the server. The server destroys // the Session Context and releases all associated server state, objects, and resources // that are associated with the Session Context. This call requires an active session // context handle from the EcDoConnectEx method, as specified in section 3.1.4.1. // // Return Values: If the method succeeds, the return value is 0. If the method fails, // the return value is an implementation-specific error code. // // Exceptions Thrown: No exceptions are thrown beyond those thrown by the underlying // RPC protocol as specified in [MS-RPCE]. DoDisconnect(context.Context, *DoDisconnectRequest) (*DoDisconnectResponse, error) // The EcRRegisterPushNotification method registers a callback address with the server // for a Session Context. The server MAY<26> support the EcRRegisterPushNotification // method. // // The callback address is used to notify the client of pending events on the server. // This call requires an active session context handle from the EcDoConnectEx method, // as specified in section 3.1.4.1. The server MUST store the callback address and the // opaque context data in the Session Context. To notify the client of pending events, // the server sends a packet containing just the opaque context data to the callback // address. The callback address specifies which network transport is to be used to // send the data packet. // // For more information about notification handling, see [MS-OXCNOTIF]. // // Return Values: If the method succeeds, the return value is 0. If the method fails, // the return value is an implementation-specific error code or one of the protocol-defined // error codes listed in the following table. // // +-----------------+------------+------------------------------------------------------+ // | ERROR CODE | | | // | NAME | VALUE | MEANING | // | | | | // +-----------------+------------+------------------------------------------------------+ // +-----------------+------------+------------------------------------------------------+ // | ecInvalidParam | 0x80070057 | A parameter passed was not valid for the call. | // +-----------------+------------+------------------------------------------------------+ // | ecNotSupported | 0x80040102 | The callback address is not supported on the server. | // +-----------------+------------+------------------------------------------------------+ // | ecTooBig | 0x80040305 | Opaque context data is too large. | // +-----------------+------------+------------------------------------------------------+ // // Exceptions Thrown: No exceptions are thrown beyond those thrown by the underlying // RPC protocol as specified in [MS-RPCE]. RegisterPushNotification(context.Context, *RegisterPushNotificationRequest) (*RegisterPushNotificationResponse, error) // The EcDummyRpc method returns a SUCCESS. A client can use it to determine whether // it can communicate with the server. // // Return Values: The function MUST succeed and return 0. // // Exceptions Thrown: No exceptions are thrown beyond those thrown by the underlying // RPC protocol as specified in [MS-RPCE]. DummyRPC(context.Context, *DummyRPCRequest) (*DummyRPCResponse, error) // The EcDoConnectEx method establishes a new Session Context with the server. The Session // Context is persisted on the server until the client disconnects by using the EcDoDisconnect // method, as specified in section 3.1.4.3. The EcDoConnectEx method returns a session // context handle to be used by a client in subsequent calls. // // Return Values: If the method succeeds, the return value is 0. If the method fails, // the return value is an implementation-specific error code or one of the protocol-defined // error codes listed in the following table. // // +-----------------------+------------+----------------------------------------------------------------------------------+ // | ERROR CODE | | | // | NAME | VALUE | MEANING | // | | | | // +-----------------------+------------+----------------------------------------------------------------------------------+ // +-----------------------+------------+----------------------------------------------------------------------------------+ // | ecAccessDenied<14> | 0x80070005 | The authentication context associated with the binding handle does not have | // | | | enough privilege or the szUserDN parameter is empty. | // +-----------------------+------------+----------------------------------------------------------------------------------+ // | ecNotEncrypted | 0x00000970 | The server is configured to require encryption and the authentication for | // | | | the binding handle contained in the hBinding parameter is not set with | // | | | RPC_C_AUTHN_LEVEL_PKT_PRIVACY. For more information about setting the | // | | | authentication and authorization, see [MSDN-RpcBindingSetAuthInfoEx]. The client | // | | | attempts the call again with new binding handle that is encrypted. | // +-----------------------+------------+----------------------------------------------------------------------------------+ // | ecClientVerDisallowed | 0x000004DF | 1. The server requires encryption, but the client is not encrypted and the | // | | | client does not support receiving error code ecNotEncrypted being returned by | // | | | the server. For details about which client versions do not support receiving | // | | | error code ecNotEncrypted, see section 3.1.4.1.3 and section 3.2.4.1.3. 2. The | // | | | client version has been blocked by the administrator. | // +-----------------------+------------+----------------------------------------------------------------------------------+ // | ecLoginFailure | 0x80040111 | Server is unable to log in user to the mailbox or public folder database. | // +-----------------------+------------+----------------------------------------------------------------------------------+ // | ecUnknownUser | 0x000003EB | The server does not recognize the szUserDN parameter as a valid enabled mailbox. | // | | | For more details, see [MS-OXCSTOR] section 3.1.4.1. | // +-----------------------+------------+----------------------------------------------------------------------------------+ // | ecLoginPerm | 0x000003F2 | The connection is requested for administrative access, but the authentication | // | | | context associated with the binding handle does not have enough privilege. | // +-----------------------+------------+----------------------------------------------------------------------------------+ // | ecVersionMismatch | 0x80040110 | The client and server versions are not compatible. The client protocol version | // | | | is earlier than that required by the server. | // +-----------------------+------------+----------------------------------------------------------------------------------+ // | ecCachedModeRequired | 0x000004E1 | The server requires the client to be running in cache mode. For details about | // | | | which client versions understand this error code, see section 3.2.4.1.3. | // +-----------------------+------------+----------------------------------------------------------------------------------+ // | ecRpcHttpDisallowed | 0x000004E0 | The server requires the client to not be connected via RPC over HTTP. For | // | | | details about which client versions understand this error code, see section | // | | | 3.1.4.1.3. | // +-----------------------+------------+----------------------------------------------------------------------------------+ // | ecProtocolDisabled | 0x000007D8 | The server disallows the user to access the server via this protocol interface. | // | | | This could be done if the user is only capable of accessing their mailbox | // | | | information through a different means (for example, Webmail, POP, or IMAP). | // | | | For details about which client versions understand this error code, see section | // | | | 3.1.4.1.3. | // +-----------------------+------------+----------------------------------------------------------------------------------+ // // Exceptions Thrown: No exceptions are thrown beyond those thrown by the underlying // RPC protocol, as specified in [MS-RPCE]. DoConnectEx(context.Context, *DoConnectExRequest) (*DoConnectExResponse, error) // The EcDoRpcExt2 method passes generic ROP commands to the server for processing within // a Session Context. Each call can contain multiple ROP commands. The server returns // the results of each ROP command to the client. This call requires an active session // context handle returned from the EcDoConnectEx method. // // Return Values: If the method succeeds, the return value is 0. If the method fails, // the return value is an implementation-specific error code or the protocol-defined // error code listed in the following table. // // +-----------------+------------+----------------------------------------------------------------------------------+ // | ERROR CODE | | | // | NAME | VALUE | MEANING | // | | | | // +-----------------+------------+----------------------------------------------------------------------------------+ // +-----------------+------------+----------------------------------------------------------------------------------+ // | ecRpcFormat | 0x000004B6 | The format of the request was found to be invalid. This is a generic error that | // | | | means the length was found to be invalid or the content was found to be invalid. | // +-----------------+------------+----------------------------------------------------------------------------------+ // // Exceptions Thrown: No exceptions are thrown beyond those thrown by the underlying // RPC protocol as specified in [MS-RPCE]. DoRPCExt2(context.Context, *DoRPCExt2Request) (*DoRPCExt2Response, error) // The EcDoAsyncConnectEx method binds a session context handle returned from the EcDoConnectEx // method, as specified in section 3.1.4.1, to a new asynchronous context handle that // can be used in calls to the EcDoAsyncWaitEx method in the AsyncEMSMDB interface, // as specified in section 3.3.4.1. This call requires that an active session context // handle be returned from the EcDoConnectEx method. // // This method is part of notification handling. For more information about notifications, // see [MS-OXCNOTIF]. // // Return Values: If the method succeeds, the return value is 0. If the method fails, // the return value is an implementation-specific error code or the protocol-defined // error code listed in the following table. // // +-----------------+------------+----------------------------------------------------------------------------------+ // | ERROR CODE | | | // | NAME | VALUE | MEANING | // | | | | // +-----------------+------------+----------------------------------------------------------------------------------+ // +-----------------+------------+----------------------------------------------------------------------------------+ // | ecRejected<25> | 0x000007EE | Server has asynchronous RPC notifications disabled. Client either polls | // | | | for notifications or calls the EcRRegisterPushNotifications method (section | // | | | 3.1.4.5). | // +-----------------+------------+----------------------------------------------------------------------------------+ // // Exceptions Thrown: No exceptions are thrown beyond those thrown by the underlying // RPC protocol as specified in [MS-RPCE]. DoAsyncConnectEx(context.Context, *DoAsyncConnectExRequest) (*DoAsyncConnectExResponse, error) }
emsmdb server interface.
type RegisterPushNotificationRequest ¶
type RegisterPushNotificationRequest struct { // pcxh: A session context handle. On input, the client MUST pass a valid session context // handle that was created by calling the EcDoConnectEx method. The server uses the // session context handle to identify the Session Context to use for this call. On output, // the server MUST return the same session context handle on success. // // The server can destroy the session context handle by returning a zero for the pcxh // parameter. Reasons for destroying the session context handle are implementation-dependent; // following are examples of why the server might destroy the session context handle: // // * The session context handle that was passed in is not valid. // // * An attempt was made to access a mailbox ( c5869b4a-c0d3-4ceb-80f4-c47a250ddf3d#gt_d3ad0e15-adc9-4174-bacf-d929b57278b3 // ) that is in the process of being moved. Session *oxcrpc.Session `idl:"name:pcxh;pointer:ref" json:"session"` // iRpc: The server MUST ignore this value. The client MUST pass a value of 0x00000000. RPC uint32 `idl:"name:iRpc" json:"rpc"` // rgbContext: Opaque client-generated context data that is sent back to the client // at the callback address, passed in the rgbCallbackAddress parameter, when the server // notifies the client of pending event information. The server MUST save this data // within the Session Context and use it when sending a notification to the client. Context []byte `idl:"name:rgbContext;size_is:(cbContext)" json:"context"` // cbContext: The size of the opaque client context data that is passed in the rgbContext // parameter. If the value of this parameter is larger than 0x00000010, the server MUST // fail this call with error code ecTooBig. ContextLength uint16 `idl:"name:cbContext" json:"context_length"` // grbitAdviseBits: This parameter MUST be set to 0xFFFFFFFF. AdviseBits uint32 `idl:"name:grbitAdviseBits" json:"advise_bits"` // rgbCallbackAddress: The callback address for the server to use to notify the client // of a pending event. The size of this data is in the cbCallbackAddress parameter. // // The data contained in this parameter follows the format of a sockaddr structure. // For information about the sockaddr structure, see [MSDN-SOCKADDR]. // // The server supports the address families AF_INET and AF_INET6 for a callback address // that corresponds to the protocol sequence types that are specified in section 2.1. // // If an address family is requested that is not supported, the server MUST return error // code ecInvalidParam. If the address family is supported but the communications stack // of the server does not support the address type, the server MUST return error code // ecNotSupported. CallbackAddress []byte `idl:"name:rgbCallbackAddress;size_is:(cbCallbackAddress)" json:"callback_address"` // cbCallbackAddress: The length of the callback address in the rgbCallbackAddress parameter. // The size of this parameter depends on the address family being used. If this size // does not correspond to the size of the sockaddr structure based on address family, // the server MUST return error code ecInvalidParam. CallbackAddressLength uint16 `idl:"name:cbCallbackAddress" json:"callback_address_length"` }
RegisterPushNotificationRequest structure represents the EcRRegisterPushNotification operation request
func (*RegisterPushNotificationRequest) MarshalNDR ¶
func (*RegisterPushNotificationRequest) UnmarshalNDR ¶
type RegisterPushNotificationResponse ¶
type RegisterPushNotificationResponse struct { // pcxh: A session context handle. On input, the client MUST pass a valid session context // handle that was created by calling the EcDoConnectEx method. The server uses the // session context handle to identify the Session Context to use for this call. On output, // the server MUST return the same session context handle on success. // // The server can destroy the session context handle by returning a zero for the pcxh // parameter. Reasons for destroying the session context handle are implementation-dependent; // following are examples of why the server might destroy the session context handle: // // * The session context handle that was passed in is not valid. // // * An attempt was made to access a mailbox ( c5869b4a-c0d3-4ceb-80f4-c47a250ddf3d#gt_d3ad0e15-adc9-4174-bacf-d929b57278b3 // ) that is in the process of being moved. Session *oxcrpc.Session `idl:"name:pcxh;pointer:ref" json:"session"` // hNotification: A handle to the notification callback. If the call completes successfully, // the hNotification parameter contains a handle to the notification callback on the // server. Notification uint32 `idl:"name:hNotification" json:"notification"` // Return: The EcRRegisterPushNotification return value. Return int32 `idl:"name:Return" json:"return"` }
RegisterPushNotificationResponse structure represents the EcRRegisterPushNotification operation response