Пример #1
0
        public static ServiceManagerApi.LW_SERVICE_INFO UnmarshalServiceInfo(IntPtr pNativeData)
        {
            _LW_SERVICE_INFO _info = (_LW_SERVICE_INFO)Marshal.PtrToStructure(pNativeData, typeof(_LW_SERVICE_INFO));

            ServiceManagerApi.LW_SERVICE_INFO info = new ServiceManagerApi.LW_SERVICE_INFO();

            info.type              = _info.type;
            info.pwszName          = _info.pwszName;
            info.pwszPath          = _info.pwszPath;
            info.pwszDescription   = _info.pwszDescription;
            info.bAutostart        = _info.bAutostart;
            info.ppwszArgs         = ServiceManagerInterop.UnmarshalStringList(_info.ppwszArgs);
            info.ppwszDependencies = ServiceManagerInterop.UnmarshalStringList(_info.ppwszDependencies);

            return(info);
        }
Пример #2
0
        public static IntPtr MarshalServiceInfo(object ManagedObj)
        {
            ServiceManagerApi.LW_SERVICE_INFO info = (ServiceManagerApi.LW_SERVICE_INFO)ManagedObj;
            _LW_SERVICE_INFO _info   = new _LW_SERVICE_INFO();
            IntPtr           infoPtr = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(_LW_SERVICE_INFO)));

            _info.pwszName          = info.pwszName;
            _info.pwszPath          = info.pwszPath;
            _info.pwszDescription   = info.pwszDescription;
            _info.bAutostart        = info.bAutostart;
            _info.ppwszArgs         = ServiceManagerInterop.MarshalStringList(info.ppwszArgs);
            _info.ppwszDependencies = ServiceManagerInterop.MarshalStringList(info.ppwszDependencies);

            Marshal.StructureToPtr(_info, infoPtr, false);

            return(infoPtr);
        }
        public static IntPtr MarshalServiceInfo(object ManagedObj)
        {
            ServiceManagerApi.LW_SERVICE_INFO info = (ServiceManagerApi.LW_SERVICE_INFO) ManagedObj;
            _LW_SERVICE_INFO _info = new _LW_SERVICE_INFO();
            IntPtr infoPtr = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(_LW_SERVICE_INFO)));

            _info.pwszName = info.pwszName;
            _info.pwszPath = info.pwszPath;
            _info.pwszDescription = info.pwszDescription;
            _info.bAutostart = info.bAutostart;
            _info.ppwszArgs = ServiceManagerInterop.MarshalStringList(info.ppwszArgs);
            _info.ppwszDependencies = ServiceManagerInterop.MarshalStringList(info.ppwszDependencies);

            Marshal.StructureToPtr(_info, infoPtr, false);

            return infoPtr;
        }