|
|
/***************************************************************************
* * RPCWIRE.H * * This module contains structures passed over the wire between winsta.dll * and icasrv. * * Copyright Microsoft Corporation. 1998 * ****************************************************************************/
#ifndef __RPCWIRE_H__
#define __RPCWIRE_H__
#ifdef __cplusplus
extern "C" { #endif
// Common structure for variable length data
typedef struct _VARDATA_WIRE { USHORT Size; USHORT Offset; } VARDATA_WIRE, *PVARDATA_WIRE;
// Wire structure for WINSTATIONCONFIGW
// WinStationQuery/SetInfo ( WinStationConfiguration )
typedef struct _WINSTACONFIGWIREW { WCHAR Comment[WINSTATIONCOMMENT_LENGTH + 1]; char OEMId[4]; VARDATA_WIRE UserConfig; // Embedded structure
VARDATA_WIRE NewFields; // For any new fields added after UserConfig
// Variable length data follows - UserConfig and new fields added
} WINSTACONFIGWIREW, *PWINSTACONFIGWIREW;
// Wire structure for PDPARAMSW
// WinStationQueryInformation( WinStationPdParams )
typedef struct _PDPARAMSWIREW { SDCLASS SdClass; VARDATA_WIRE SdClassSpecific; // Embedded union
// Variable length PdClass specific data follows
} PDPARAMSWIREW, *PPDPARAMSWIREW;
// Wire structure for PDCONFIGW
// WinStationQueryInformation( WinStationPd)
typedef struct _PDCONFIGWIREW { VARDATA_WIRE PdConfig2W; // Embedded structure
PDPARAMSWIREW PdParams; // Enbedded structure
// Variable length data follows
} PDCONFIGWIREW, *PPDCONFIGWIREW;
// Wire structure for WLX_CLIENT_CREDENTIALS_V2_0
typedef struct _WLXCLIENTCREDWIREW { DWORD dwType; BOOL fDisconnectOnLogonFailure; BOOL fPromptForPassword; VARDATA_WIRE UserNameData; VARDATA_WIRE DomainData; VARDATA_WIRE PasswordData; // Variable data starts here
} WLXCLIENTCREDWIREW, *PWLXCLIENTCREDWIREW;
// common routines
VOID InitVarData(PVARDATA_WIRE pVarData, ULONG Size, ULONG Offset); ULONG NextOffset(PVARDATA_WIRE PrevData); ULONG CopySourceToDest(PCHAR SourceBuf, ULONG SourceSize, PCHAR DestBuf, ULONG DestSize); VOID CopyPdParamsToWire(PPDPARAMSWIREW PdParamsWire, PPDPARAMSW PdParams); VOID CopyPdParamsFromWire(PPDPARAMSWIREW PdParamsWire, PPDPARAMSW PdParams); VOID CopyPdConfigToWire(PPDCONFIGWIREW PdConfigWire, PPDCONFIGW PdConfig); VOID CopyPdConfigFromWire(PPDCONFIGWIREW PdConfigWire, PPDCONFIGW PdConfig); VOID CopyWinStaConfigToWire(PWINSTACONFIGWIREW WinStaConfigWire, PWINSTATIONCONFIGW WinStaConfig); VOID CopyWinStaConfigFromWire(PWINSTACONFIGWIREW WinStaConfigWire, PWINSTATIONCONFIGW WinStaConfig); BOOLEAN CopyInWireBuf(WINSTATIONINFOCLASS InfoClass, PVOID UserBuf, PVOID WireBuf); BOOLEAN CopyOutWireBuf(WINSTATIONINFOCLASS InfoClass, PVOID UserBuf,PVOID WireBuf); ULONG AllocateAndCopyCredToWire(PWLXCLIENTCREDWIREW *ppWire, PWLX_CLIENT_CREDENTIALS_INFO_V2_0 pCredentials); BOOLEAN CopyCredFromWire(PWLXCLIENTCREDWIREW pWire, PWLX_CLIENT_CREDENTIALS_INFO_V2_0 pCredentials);
/*
* Licensing Core wire typedefs and function prototypes */
typedef struct { ULONG ulVersion; VARDATA_WIRE PolicyNameData; VARDATA_WIRE PolicyDescriptionData; // Variable data begins here.
} LCPOLICYINFOWIRE_V1, *LPLCPOLICYINFOWIRE_V1;
ULONG CopyPolicyInformationToWire( LPLCPOLICYINFOGENERIC *ppWire, LPLCPOLICYINFOGENERIC pPolicyInfo );
BOOLEAN CopyPolicyInformationFromWire( LPLCPOLICYINFOGENERIC *ppPolicyInfo, LPLCPOLICYINFOGENERIC pWire );
#ifdef __cplusplus
} #endif
#endif // __RPCWIRE_H__
|