Exemple #1
0
    LWMSG_MEMBER_POINTER_BEGIN(REG_IPC_GET_VALUE_ATTRS_RESPONSE, pValueAttributes),
    LWMSG_TYPESPEC(gRegValueAttributesSpec),
    LWMSG_POINTER_END,

    LWMSG_STRUCT_END,
    LWMSG_TYPE_END
};


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

static LWMsgProtocolSpec gRegIPCSpec[] =
{
    /*Key Operation APIS*/
    LWMSG_MESSAGE(REG_R_ERROR, gRegIPCErrorSpec), // REG_IPC_ERROR
    LWMSG_MESSAGE(REG_Q_ENUM_ROOT_KEYSW, NULL),
    LWMSG_MESSAGE(REG_R_ENUM_ROOT_KEYSW, gRegEnumRootKeysRespSpec),
    LWMSG_MESSAGE(REG_Q_OPEN_KEYW_EX, gRegOpenKeyExSpec),
    LWMSG_MESSAGE(REG_R_OPEN_KEYW_EX, gRegOpenKeyExRespSpec),
    LWMSG_MESSAGE(REG_Q_CREATE_KEY_EX, gRegCreateKeyExSpec),
    LWMSG_MESSAGE(REG_R_CREATE_KEY_EX, gRegCreateKeyExRespSpec),
    LWMSG_MESSAGE(REG_Q_CLOSE_KEY, gRegCloseKeySpec),
    LWMSG_MESSAGE(REG_R_CLOSE_KEY, NULL),
    LWMSG_MESSAGE(REG_Q_DELETE_KEY, gRegDeleteKeySpec),
    LWMSG_MESSAGE(REG_R_DELETE_KEY, NULL),
    LWMSG_MESSAGE(REG_Q_QUERY_INFO_KEYW, gRegQueryInfoKeySpec),
    LWMSG_MESSAGE(REG_R_QUERY_INFO_KEYW, gRegQueryInfoKeyRespSpec),
    LWMSG_MESSAGE(REG_Q_ENUM_KEYW_EX, gRegEnumKeyExSpec),
    LWMSG_MESSAGE(REG_R_ENUM_KEYW_EX, gRegEnumKeyExRespSpec),
    /*Value Operation APIs*/
Exemple #2
0
    LWMSG_MEMBER_TYPESPEC(SM_SET_GLOBAL_REQ, Value, gGlobalValueSpec),
    LWMSG_STRUCT_END,
    LWMSG_TYPE_END
};

static LWMsgTypeSpec gGetGlobalReqSpec[] =
{
    LWMSG_STRUCT_BEGIN(SM_GET_GLOBAL_REQ),
    LWMSG_MEMBER_TYPESPEC(SM_GET_GLOBAL_REQ, Setting, gGlobalSettingSpec),
    LWMSG_STRUCT_END,
    LWMSG_TYPE_END
};

static LWMsgProtocolSpec gIpcSpec[] =
{
    LWMSG_MESSAGE(SM_IPC_ERROR, gErrorSpec),
    LWMSG_MESSAGE(SM_IPC_ACQUIRE_SERVICE_HANDLE_REQ, gStringSpec),
    LWMSG_MESSAGE(SM_IPC_ACQUIRE_SERVICE_HANDLE_RES, gNewHandleSpec),
    LWMSG_MESSAGE(SM_IPC_RELEASE_SERVICE_HANDLE_REQ, gExistingHandleSpec),
    LWMSG_MESSAGE(SM_IPC_RELEASE_SERVICE_HANDLE_RES, NULL),
    LWMSG_MESSAGE(SM_IPC_ENUMERATE_SERVICES_REQ, NULL),
    LWMSG_MESSAGE(SM_IPC_ENUMERATE_SERVICES_RES, gStringListSpec),
    LWMSG_MESSAGE(SM_IPC_ADD_SERVICE_REQ, gServiceInfoSpec),
    LWMSG_MESSAGE(SM_IPC_ADD_SERVICE_RES, gNewHandleSpec),
    LWMSG_MESSAGE(SM_IPC_REMOVE_SERVICE_REQ, gExistingHandleSpec),
    LWMSG_MESSAGE(SM_IPC_REMOVE_SERVICE_RES, NULL),
    LWMSG_MESSAGE(SM_IPC_START_SERVICE_REQ, gExistingHandleSpec),
    LWMSG_MESSAGE(SM_IPC_START_SERVICE_RES, NULL),
    LWMSG_MESSAGE(SM_IPC_STOP_SERVICE_REQ, gExistingHandleSpec),
    LWMSG_MESSAGE(SM_IPC_STOP_SERVICE_RES, NULL),
    LWMSG_MESSAGE(SM_IPC_REFRESH_SERVICE_REQ, gExistingHandleSpec),
Exemple #3
0
static LWMsgTypeSpec gDriverStateSpec[] =
{
    LWMSG_UINT8(LWIO_DRIVER_STATE),
    LWMSG_ATTR_RANGE(LWIO_DRIVER_STATE_UNKNOWN, LWIO_DRIVER_STATE_LOADED),
    LWMSG_TYPE_END
};

static LWMsgTypeSpec gPidSpec[] =
{
    LWMSG_INT32(pid_t),
    LWMSG_TYPE_END
};

static LWMsgProtocolSpec gLwIoDaemonProtocolSpec[] =
{
    LWMSG_MESSAGE(LWIO_QUERY_STATE_DRIVER,          gDriverNameSpec),
    LWMSG_MESSAGE(LWIO_QUERY_STATE_DRIVER_SUCCESS,  gDriverStateSpec),
    LWMSG_MESSAGE(LWIO_QUERY_STATE_DRIVER_FAILED,   gStatusReplySpec),
    LWMSG_MESSAGE(LWIO_LOAD_DRIVER,                 gDriverNameSpec),
    LWMSG_MESSAGE(LWIO_LOAD_DRIVER_SUCCESS,         gStatusReplySpec),
    LWMSG_MESSAGE(LWIO_LOAD_DRIVER_FAILED,          gStatusReplySpec),
    LWMSG_MESSAGE(LWIO_UNLOAD_DRIVER,               gDriverNameSpec),
    LWMSG_MESSAGE(LWIO_UNLOAD_DRIVER_SUCCESS,       gStatusReplySpec),
    LWMSG_MESSAGE(LWIO_UNLOAD_DRIVER_FAILED,        gStatusReplySpec),
    LWMSG_MESSAGE(LWIO_GET_PID,                     NULL),
    LWMSG_MESSAGE(LWIO_GET_PID_SUCCESS,             gPidSpec),
    LWMSG_MESSAGE(LWIO_GET_PID_FAILED,              gStatusReplySpec),
    LWMSG_PROTOCOL_END
};

NTSTATUS
Exemple #4
0
{
    //DWORD dwQop;

    LWMSG_STRUCT_BEGIN(NTLM_IPC_VERIFY_SIGN_RESPONSE),

    LWMSG_MEMBER_UINT32(NTLM_IPC_VERIFY_SIGN_RESPONSE, dwQop),

    LWMSG_STRUCT_END,
    LWMSG_TYPE_END
};

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

static LWMsgProtocolSpec gNtlmIpcSpec[] =
{
    LWMSG_MESSAGE(NTLM_R_GENERIC_FAILURE, gNtlmIpcErrorSpec),

    LWMSG_MESSAGE(NTLM_Q_ACCEPT_SEC_CTXT, gNtlmAcceptSecCtxtSpec),
    LWMSG_MESSAGE(NTLM_R_ACCEPT_SEC_CTXT_SUCCESS, gNtlmAcceptSecCtxtRespSpec),

    LWMSG_MESSAGE(NTLM_Q_ACQUIRE_CREDS, gNtlmAcquireCredsSpec),
    LWMSG_MESSAGE(NTLM_R_ACQUIRE_CREDS_SUCCESS, gNtlmAcquireCredsRespSpec),

    LWMSG_MESSAGE(NTLM_Q_DECRYPT_MSG, gNtlmDecryptMsgSpec),
    LWMSG_MESSAGE(NTLM_R_DECRYPT_MSG_SUCCESS, gNtlmDecryptMsgRespSpec),

    LWMSG_MESSAGE(NTLM_Q_DELETE_SEC_CTXT, gNtlmDeleteSecCtxtSpec),
    LWMSG_MESSAGE(NTLM_R_DELETE_SEC_CTXT_SUCCESS, NULL),

    LWMSG_MESSAGE(NTLM_Q_ENCRYPT_MSG, gNtlmEncryptMsgSpec),
    LWMSG_MESSAGE(NTLM_R_ENCRYPT_MSG_SUCCESS, gNtlmEncryptMsgRespSpec),
typedef enum CounterType
{
    COUNTER_OPEN,
    COUNTER_OPEN_SUCCESS,
    COUNTER_CLOSE,
    COUNTER_CLOSE_SUCCESS,
    COUNTER_ADD,
    COUNTER_ADD_SUCCESS,
    COUNTER_READ,
    COUNTER_READ_SUCCESS
} CounterType;

LWMsgProtocolSpec counterprotocol_spec[] =
{
    LWMSG_MESSAGE(COUNTER_OPEN, counterrequest_spec),
    LWMSG_MESSAGE(COUNTER_OPEN_SUCCESS, counterhandle_spec),
    LWMSG_MESSAGE(COUNTER_ADD, counteradd_spec),
    LWMSG_MESSAGE(COUNTER_ADD_SUCCESS, counterreply_spec),
    LWMSG_MESSAGE(COUNTER_READ, counterhandle_spec),
    LWMSG_MESSAGE(COUNTER_READ_SUCCESS, counterreply_spec),
    LWMSG_MESSAGE(COUNTER_CLOSE, counterhandle_spec),
    LWMSG_MESSAGE(COUNTER_CLOSE_SUCCESS, counterreply_spec),
    LWMSG_PROTOCOL_END
};

static LWMsgStatus
counter_srv_open(LWMsgCall* call, const LWMsgParams* request_msg, LWMsgParams* reply_msg, void* data)
{
    LWMsgStatus status = LWMSG_STATUS_SUCCESS;
    CounterHandle* handle = malloc(sizeof(*handle));
    // ppAddressList
    LWMSG_MEMBER_POINTER_BEGIN(LWNET_RESOLVE_NAME_ADDRESS_RESPONSE, ppAddressList),
    LWMSG_POINTER_BEGIN,
    LWMSG_TYPESPEC(gLWNetResolveAddr),
    LWMSG_POINTER_END,
    LWMSG_POINTER_END,
    LWMSG_ATTR_LENGTH_MEMBER(LWNET_RESOLVE_NAME_ADDRESS_RESPONSE, dwAddressListLen),

    LWMSG_STRUCT_END,
    LWMSG_TYPE_END
};


static LWMsgProtocolSpec gLWNetIPCSpec[] =
{
    LWMSG_MESSAGE(LWNET_R_ERROR, gLWNetIpcErrorSpec), // LWNET_IPC_ERROR
    LWMSG_MESSAGE(LWNET_Q_SET_LOG_LEVEL, gLWNetIpcLogInfoSpec), // LWNET_IPC_LOG_INFO
    LWMSG_MESSAGE(LWNET_R_SET_LOG_LEVEL, NULL), // NULL
    LWMSG_MESSAGE(LWNET_Q_GET_LOG_INFO, NULL), // NULL
    LWMSG_MESSAGE(LWNET_R_GET_LOG_INFO, gLWNetIpcLogInfoSpec), // LWNET_IPC_LOG_INFO
    LWMSG_MESSAGE(LWNET_Q_GET_DC_TIME, gLWNetIpcConstStringSpec), // LWNET_IPC_CONST_STRING
    LWMSG_MESSAGE(LWNET_R_GET_DC_TIME, gLWNetIpcTimeSpec), // LWNET_IPC_TIME
    LWMSG_MESSAGE(LWNET_Q_GET_DC_NAME, gLWNetIpcGetDcSpec), // LWNET_IPC_GET_DC
    LWMSG_MESSAGE(LWNET_R_GET_DC_NAME, gLWNetDcInfoSpec), // LWNET_DC_INFO
    LWMSG_MESSAGE(LWNET_Q_GET_DOMAIN_CONTROLLER, gLWNetIpcConstStringSpec), // LWNET_IPC_CONST_STRING
    LWMSG_MESSAGE(LWNET_R_GET_DOMAIN_CONTROLLER, gLWNetIpcStringSpec), // LWNET_IPC_STRING
    LWMSG_MESSAGE(LWNET_Q_GET_DC_LIST, gLWNetIpcGetDcSpec), // LWNET_IPC_GET_DC
    LWMSG_MESSAGE(LWNET_R_GET_DC_LIST, gLWNetIpcDcListSpec), // LWNET_IPC_DC_LIST
    LWMSG_MESSAGE(LWNET_Q_RESOLVE_NAME, gLWNetResolveNameAddressSpec), // LWNET_IPC_RESOLVE_NAME
    LWMSG_MESSAGE(LWNET_R_RESOLVE_NAME, gLWNetResolveNameAddressRespSpec), // LWNET_IPC_RESOLVE_NAME
    LWMSG_PROTOCOL_END