Пример #1
0
    LWMSG_POINTER_END,
    //LWMSG_ATTR_LENGTH_MEMBER(SECURITY_ATTRIBUTES, nLength), see above comment

    LWMSG_MEMBER_UINT32(SECURITY_ATTRIBUTES, bInheritHandle),

    LWMSG_STRUCT_END,
    LWMSG_TYPE_END
};
*/
/******************************************************************************/

static LWMsgTypeSpec gRegIPCErrorSpec[] =
{
    //NTSTATUS status;

    LWMSG_STRUCT_BEGIN(REG_IPC_STATUS),
    LWMSG_MEMBER_UINT32(REG_IPC_STATUS, status),
    LWMSG_STRUCT_END,
    LWMSG_TYPE_END
};

/******************************************************************************/

static LWMsgTypeSpec gRegCreateKeyExSpec[] =
{
    // IN HKEY hKey,
    // IN PCWSTR pSubKey,
    // IN DWORD Reserved,
    // IN OPTIONAL PWSTR pClass,
    // IN DWORD dwOptions,
    // IN ACCESS_MASK AccessDesired,
Пример #2
0
};

static LWMsgTypeSpec gLogTypeSpec[] =
{
    LWMSG_ENUM_BEGIN(LW_SM_LOGGER_TYPE, 1, LWMSG_UNSIGNED),
    LWMSG_ENUM_VALUE(LW_SM_LOGGER_DEFAULT),
    LWMSG_ENUM_VALUE(LW_SM_LOGGER_NONE),
    LWMSG_ENUM_VALUE(LW_SM_LOGGER_SYSLOG),
    LWMSG_ENUM_VALUE(LW_SM_LOGGER_FILE),
    LWMSG_ENUM_END,
    LWMSG_TYPE_END
};

static LWMsgTypeSpec gServiceInfoSpec[] =
{
    LWMSG_STRUCT_BEGIN(LW_SERVICE_INFO),
    LWMSG_MEMBER_PWSTR(LW_SERVICE_INFO, pwszName),
    LWMSG_MEMBER_PWSTR(LW_SERVICE_INFO, pwszDescription),
    LWMSG_MEMBER_TYPESPEC(LW_SERVICE_INFO, type, gServiceTypeSpec),
    LWMSG_MEMBER_PWSTR(LW_SERVICE_INFO, pwszPath),
    LWMSG_ATTR_NOT_NULL,
    LWMSG_MEMBER_TYPESPEC(LW_SERVICE_INFO, ppwszArgs, gStringListSpec),
    LWMSG_MEMBER_TYPESPEC(LW_SERVICE_INFO, ppwszEnv, gStringListSpec),
    LWMSG_MEMBER_TYPESPEC(LW_SERVICE_INFO, ppwszDependencies, gStringListSpec),
    LWMSG_MEMBER_PWSTR(LW_SERVICE_INFO, pwszGroup),
    LWMSG_MEMBER_TYPESPEC(LW_SERVICE_INFO, bAutostart, gBooleanSpec),
    LWMSG_MEMBER_UINT32(LW_SERVICE_INFO, dwFdLimit),
    LWMSG_MEMBER_UINT32(LW_SERVICE_INFO, dwCoreSize),
    LWMSG_MEMBER_UINT32(LW_SERVICE_INFO, uShutdownTimeout),
    LWMSG_STRUCT_END,
    LWMSG_TYPE_END
Пример #3
0
    if (*fooptr != -42)
    {
        return LWMSG_STATUS_MALFORMED;
    }
    else
    {
        return LWMSG_STATUS_SUCCESS;
    }
}

#define LEN_MAX ((size_t) -1)


static LWMsgTypeSpec basic_spec[] =
{
    LWMSG_STRUCT_BEGIN(basic_struct),
    LWMSG_MEMBER_INT16(basic_struct, foo), LWMSG_ATTR_VERIFY(basic_verify_foo, NULL),
    LWMSG_MEMBER_UINT64(basic_struct, len), LWMSG_ATTR_RANGE(1, LEN_MAX / 2),
    LWMSG_MEMBER_POINTER(basic_struct, long_ptr, LWMSG_INT64(long)), LWMSG_ATTR_NOT_NULL,
    LWMSG_ATTR_LENGTH_MEMBER(basic_struct, len),
    LWMSG_STRUCT_END,
    LWMSG_TYPE_END
};

MU_TEST(marshal, basic)
{
    static const unsigned char expected[] =
    {
        /* -42 */
        0xFF, 0xD6,
        /* 2 */
Пример #4
0
static
LWMsgTypeSpec gSecurityTokenType[] =
{
    LWMSG_ENUM_BEGIN(enum _LW_IO_CREDS_TYPE, 1, LWMSG_UNSIGNED),
    LWMSG_ENUM_VALUE(IO_CREDS_TYPE_PLAIN),
    LWMSG_ENUM_VALUE(IO_CREDS_TYPE_KRB5_CCACHE),
    LWMSG_ENUM_VALUE(IO_CREDS_TYPE_KRB5_TGT),
    LWMSG_ENUM_END,
    LWMSG_TYPE_END
};

LWMsgTypeSpec gSecurityTokenRepSpec[] =
{
    /* Begin structure */
    LWMSG_STRUCT_BEGIN(IO_CREDS),
    /* Discriminator */
    LWMSG_MEMBER_TYPESPEC(IO_CREDS, type, gSecurityTokenType),
    /* Begin union */
    LWMSG_MEMBER_UNION_BEGIN(IO_CREDS, payload),
    /* Union arm -- plain */
    LWMSG_MEMBER_STRUCT_BEGIN(union _LW_IO_CREDS_U, plain),
    LWMSG_MEMBER_PWSTR(struct _LW_IO_CREDS_PLAIN, pwszUsername),
    LWMSG_MEMBER_PWSTR(struct _LW_IO_CREDS_PLAIN, pwszDomain),
    LWMSG_MEMBER_PWSTR(struct _LW_IO_CREDS_PLAIN, pwszPassword),
    LWMSG_ATTR_SENSITIVE,
    LWMSG_STRUCT_END,
    LWMSG_ATTR_TAG(IO_CREDS_TYPE_PLAIN),
    /* Union arm -- krb5 ccache */
    LWMSG_MEMBER_STRUCT_BEGIN(union _LW_IO_CREDS_U, krb5Ccache),
    LWMSG_MEMBER_PWSTR(struct _LW_IO_CREDS_KRB5_CCACHE, pwszPrincipal),
Пример #5
0
 * Authors: Krishna Ganugapati ([email protected])
 *          Marc Guy ([email protected])
 *
 */

#include "ipc.h"

/******************************************************************************/

static LWMsgTypeSpec gNtlmSecBufferSpec[] =
{
    // DWORD cbBuffer;
    // DWORD BufferType;
    // PVOID pvBuffer;

    LWMSG_STRUCT_BEGIN(SecBuffer),
    LWMSG_MEMBER_UINT32(SecBuffer, cbBuffer),
    LWMSG_MEMBER_UINT32(SecBuffer, BufferType),
    LWMSG_MEMBER_POINTER(SecBuffer, pvBuffer, LWMSG_UINT8(CHAR)),
    LWMSG_ATTR_LENGTH_MEMBER(SecBuffer, cbBuffer),
    LWMSG_ATTR_ENCODING("hex+ascii"),
    LWMSG_STRUCT_END,
    LWMSG_TYPE_END
};

/******************************************************************************/

static LWMsgTypeSpec gNtlmSecBufferDescSpec[] =
{
    // For now, I don't believe we need this version information
    // DWORD      ulVersion;
Пример #6
0
typedef struct CounterAdd
{
    CounterHandle* handle;
    int delta;
} CounterAdd;

LWMsgTypeSpec counterhandle_spec[] =
{
    LWMSG_HANDLE(CounterHandle),
    LWMSG_ATTR_NOT_NULL,
    LWMSG_TYPE_END
};

LWMsgTypeSpec counterrequest_spec[] =
{
    LWMSG_STRUCT_BEGIN(CounterRequest),
    LWMSG_MEMBER_INT16(CounterRequest, counter),
    LWMSG_STRUCT_END,
    LWMSG_TYPE_END
};

LWMsgTypeSpec counteradd_spec[] =
{
    LWMSG_STRUCT_BEGIN(CounterAdd),
    LWMSG_MEMBER_HANDLE(CounterAdd, handle, CounterHandle),
    LWMSG_MEMBER_INT16(CounterAdd, delta),
    LWMSG_STRUCT_END,
    LWMSG_TYPE_END
};

LWMsgTypeSpec counterreply_spec[] =
Пример #7
0
    LWMSG_MEMBER_POINTER_BEGIN(_type, _field),      \
    LWMSG_UINT16(WCHAR),                        \
    LWMSG_POINTER_END,                              \
    LWMSG_ATTR_ZERO_TERMINATED,                     \
    LWMSG_ATTR_ENCODING(UCS2_NATIVE)

#define LWMSG_PWSTR       \
    LWMSG_POINTER_BEGIN, \
    LWMSG_UINT16(WCHAR),  \
    LWMSG_POINTER_END,   \
    LWMSG_ATTR_STRING


static LWMsgTypeSpec gLWNetIpcErrorSpec[] =
{
    LWMSG_STRUCT_BEGIN(LWNET_IPC_ERROR),
    LWMSG_MEMBER_UINT32(LWNET_IPC_ERROR, dwError),
    LWMSG_MEMBER_PSTR(LWNET_IPC_ERROR, pszErrorMessage),
    LWMSG_STRUCT_END,
    LWMSG_TYPE_END
};

static LWMsgTypeSpec gLWNetIpcLogInfoSpec[] =
{
    LWMSG_STRUCT_BEGIN(LWNET_IPC_LOG_INFO),
    LWMSG_MEMBER_UINT32(LWNET_IPC_LOG_INFO, LogLevel),
    LWMSG_MEMBER_UINT32(LWNET_IPC_LOG_INFO, LogTarget),
    LWMSG_MEMBER_PSTR(LWNET_IPC_LOG_INFO, pszLogPath),
    LWMSG_STRUCT_END,
    LWMSG_TYPE_END
};
Пример #8
0
 *
 * Abstract:
 *
 *        Likewise I/O Subsystem (LWIO)
 *
 *        File Information IPC
 *
 * Authors: Sriram Nambakam ([email protected])
 *
 */

#include "includes.h"

static LWMsgTypeSpec gFileInfo2Spec[] =
{
    LWMSG_STRUCT_BEGIN(FILE_INFO_2),
    LWMSG_MEMBER_UINT32(FILE_INFO_2, fi2_id),
    LWMSG_STRUCT_END,
    LWMSG_TYPE_END
};

static LWMsgTypeSpec gFileInfo3Spec[] =
{
    LWMSG_STRUCT_BEGIN(FILE_INFO_3),
    LWMSG_MEMBER_UINT32(FILE_INFO_3, fi3_idd),
    LWMSG_MEMBER_UINT32(FILE_INFO_3, fi3_permissions),
    LWMSG_MEMBER_UINT32(FILE_INFO_3, fi3_num_locks),
    LWMSG_MEMBER_PWSTR(FILE_INFO_3,  fi3_path_name),
    LWMSG_MEMBER_PWSTR(FILE_INFO_3,  fi3_username),
    LWMSG_STRUCT_END,
    LWMSG_TYPE_END