4 * Copyright 2004 Filip Navara
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
21 #ifndef __WINE_RPC_MESSAGE_H
22 #define __WINE_RPC_MESSAGE_H
26 typedef unsigned int NCA_STATUS
;
28 RpcPktHdr
*RPCRT4_BuildFaultHeader(ULONG DataRepresentation
, RPC_STATUS Status
) DECLSPEC_HIDDEN
;
29 RpcPktHdr
*RPCRT4_BuildResponseHeader(ULONG DataRepresentation
, ULONG BufferLength
) DECLSPEC_HIDDEN
;
30 RpcPktHdr
*RPCRT4_BuildBindHeader(ULONG DataRepresentation
, unsigned short MaxTransmissionSize
, unsigned short MaxReceiveSize
, ULONG AssocGroupId
, const RPC_SYNTAX_IDENTIFIER
*AbstractId
, const RPC_SYNTAX_IDENTIFIER
*TransferId
) DECLSPEC_HIDDEN
;
31 RpcPktHdr
*RPCRT4_BuildBindNackHeader(ULONG DataRepresentation
, unsigned char RpcVersion
, unsigned char RpcVersionMinor
, unsigned short RejectReason
) DECLSPEC_HIDDEN
;
32 RpcPktHdr
*RPCRT4_BuildBindAckHeader(ULONG DataRepresentation
, unsigned short MaxTransmissionSize
, unsigned short MaxReceiveSize
, ULONG AssocGroupId
, LPCSTR ServerAddress
, unsigned char ResultCount
, const RpcResult
*Results
) DECLSPEC_HIDDEN
;
33 RpcPktHdr
*RPCRT4_BuildHttpHeader(ULONG DataRepresentation
, unsigned short flags
, unsigned short num_data_items
, unsigned int payload_size
) DECLSPEC_HIDDEN
;
34 RpcPktHdr
*RPCRT4_BuildHttpConnectHeader(int out_pipe
, const UUID
*connection_uuid
, const UUID
*pipe_uuid
, const UUID
*association_uuid
) DECLSPEC_HIDDEN
;
35 RpcPktHdr
*RPCRT4_BuildHttpFlowControlHeader(BOOL server
, ULONG bytes_transmitted
, ULONG flow_control_increment
, const UUID
*pipe_uuid
) DECLSPEC_HIDDEN
;
36 VOID
RPCRT4_FreeHeader(RpcPktHdr
*Header
) DECLSPEC_HIDDEN
;
37 RPC_STATUS
RPCRT4_Send(RpcConnection
*Connection
, RpcPktHdr
*Header
, void *Buffer
, unsigned int BufferLength
) DECLSPEC_HIDDEN
;
38 RPC_STATUS
RPCRT4_SendWithAuth(RpcConnection
*Connection
, RpcPktHdr
*Header
, void *Buffer
, unsigned int BufferLength
, const void *Auth
, unsigned int AuthLength
) DECLSPEC_HIDDEN
;
39 RPC_STATUS
RPCRT4_ReceiveWithAuth(RpcConnection
*Connection
, RpcPktHdr
**Header
, PRPC_MESSAGE pMsg
, unsigned char **auth_data_out
, ULONG
*auth_length_out
) DECLSPEC_HIDDEN
;
40 DWORD
RPCRT4_GetHeaderSize(const RpcPktHdr
*Header
) DECLSPEC_HIDDEN
;
41 RPC_STATUS
RPCRT4_ValidateCommonHeader(const RpcPktCommonHdr
*hdr
) DECLSPEC_HIDDEN
;
43 BOOL
RPCRT4_IsValidHttpPacket(RpcPktHdr
*hdr
, unsigned char *data
, unsigned short data_len
) DECLSPEC_HIDDEN
;
44 RPC_STATUS
RPCRT4_ParseHttpPrepareHeader1(RpcPktHdr
*header
, unsigned char *data
, ULONG
*field1
) DECLSPEC_HIDDEN
;
45 RPC_STATUS
RPCRT4_ParseHttpPrepareHeader2(RpcPktHdr
*header
, unsigned char *data
, ULONG
*field1
, ULONG
*bytes_until_next_packet
, ULONG
*field3
) DECLSPEC_HIDDEN
;
46 RPC_STATUS
RPCRT4_ParseHttpFlowControlHeader(RpcPktHdr
*header
, unsigned char *data
, BOOL server
, ULONG
*bytes_transmitted
, ULONG
*flow_control_increment
, UUID
*pipe_uuid
) DECLSPEC_HIDDEN
;
47 NCA_STATUS
RPC2NCA_STATUS(RPC_STATUS status
) DECLSPEC_HIDDEN
;
48 RPC_STATUS
RPCRT4_ClientConnectionAuth(RpcConnection
* conn
, BYTE
*challenge
, ULONG count
) DECLSPEC_HIDDEN
;
49 RPC_STATUS
RPCRT4_ServerConnectionAuth(RpcConnection
* conn
, BOOL start
, RpcAuthVerifier
*auth_data_in
, ULONG auth_length_in
, unsigned char **auth_data_out
, ULONG
*auth_length_out
) DECLSPEC_HIDDEN
;
50 RPC_STATUS
RPCRT4_AuthorizeConnection(RpcConnection
* conn
, BYTE
*challenge
, ULONG count
) DECLSPEC_HIDDEN
;
51 RPC_STATUS
RPCRT4_ServerGetRegisteredAuthInfo(USHORT auth_type
, CredHandle
*cred
, TimeStamp
*exp
, ULONG
*max_token
) DECLSPEC_HIDDEN
;
52 RPC_STATUS
RPCRT4_default_authorize(RpcConnection
*conn
, BOOL first_time
, unsigned char *in_buffer
, unsigned int in_size
, unsigned char *out_buffer
, unsigned int *out_size
) DECLSPEC_HIDDEN
;
53 BOOL
RPCRT4_default_is_authorized(RpcConnection
*Connection
) DECLSPEC_HIDDEN
;
54 RPC_STATUS
RPCRT4_default_secure_packet(RpcConnection
*Connection
, enum secure_packet_direction dir
, RpcPktHdr
*hdr
, unsigned int hdr_size
, unsigned char *stub_data
, unsigned int stub_data_size
, RpcAuthVerifier
*auth_hdr
, unsigned char *auth_value
, unsigned int auth_value_size
) DECLSPEC_HIDDEN
;
55 RPC_STATUS
RPCRT4_default_impersonate_client(RpcConnection
*conn
) DECLSPEC_HIDDEN
;
56 RPC_STATUS
RPCRT4_default_revert_to_self(RpcConnection
*conn
) DECLSPEC_HIDDEN
;
57 RPC_STATUS
RPCRT4_default_inquire_auth_client(RpcConnection
*conn
, RPC_AUTHZ_HANDLE
*privs
, RPC_WSTR
*server_princ_name
, ULONG
*authn_level
, ULONG
*authn_svc
, ULONG
*authz_svc
, ULONG flags
) DECLSPEC_HIDDEN
;