Ejemplo n.º 1
0
        public void SsEnableClientEntry(
            KphSsClientEntryHandle clientEntryHandle,
            bool enable
            )
        {
            byte *inData = stackalloc byte[5];

            *(int *)inData        = clientEntryHandle.Handle.ToInt32();
            *(byte *)(inData + 4) = (byte)(enable ? 1 : 0);

            _fileHandle.IoControl(CtlCode(Control.SsEnableClientEntry), inData, 5, null, 0);
        }
Ejemplo n.º 2
0
        public KphSsRuleSetEntryHandle SsCreateRuleSetEntry(
            KphSsClientEntryHandle clientEntryHandle,
            KphSsFilterType defaultFilterType,
            KphSsRuleSetAction action
            )
        {
            byte *inData  = stackalloc byte[0xc];
            byte *outData = stackalloc byte[4];

            *(int *)inData         = clientEntryHandle.Handle.ToInt32();
            *(int *)(inData + 0x4) = (int)defaultFilterType;
            *(int *)(inData + 0x8) = (int)action;

            _fileHandle.IoControl(CtlCode(Control.SsCreateRuleSetEntry), inData, 0xc, outData, 4);

            return(new KphSsRuleSetEntryHandle((*(int *)outData).ToIntPtr()));
        }
Ejemplo n.º 3
0
        public void SsQueryClientEntry(
            KphSsClientEntryHandle clientEntryHandle,
            out KphSsClientInformation clientInformation,
            int clientInformationLength,
            out int returnLength
            )
        {
            fixed(KphSsClientInformation *clientInfoPtr = &clientInformation)
            fixed(int *retLengthPtr = &returnLength)
            {
                byte *inData = stackalloc byte[0x10];

                *(int *)inData         = clientEntryHandle.Handle.ToInt32();
                *(int *)(inData + 0x4) = (int)clientInfoPtr;
                *(int *)(inData + 0x8) = clientInformationLength;
                *(int *)(inData + 0xc) = (int)retLengthPtr;

                _fileHandle.IoControl(CtlCode(Control.SsQueryClientEntry), inData, 0x10, null, 0);
            }
        }
Ejemplo n.º 4
0
        public void SsQueryClientEntry(
            KphSsClientEntryHandle clientEntryHandle,
            out KphSsClientInformation clientInformation,
            int clientInformationLength,
            out int returnLength
            )
        {
            fixed (KphSsClientInformation *clientInfoPtr = &clientInformation)
            fixed (int* retLengthPtr = &returnLength)
            {
                byte* inData = stackalloc byte[0x10];

                *(int*)inData = clientEntryHandle.Handle.ToInt32();
                *(int*)(inData + 0x4) = (int)clientInfoPtr;
                *(int*)(inData + 0x8) = clientInformationLength;
                *(int*)(inData + 0xc) = (int)retLengthPtr;

                _fileHandle.IoControl(CtlCode(Control.SsQueryClientEntry), inData, 0x10, null, 0);
            }
        }
Ejemplo n.º 5
0
        public void SsEnableClientEntry(
            KphSsClientEntryHandle clientEntryHandle,
            bool enable
            )
        {
            byte* inData = stackalloc byte[5];

            *(int*)inData = clientEntryHandle.Handle.ToInt32();
            *(byte*)(inData + 4) = (byte)(enable ? 1 : 0);

            _fileHandle.IoControl(CtlCode(Control.SsEnableClientEntry), inData, 5, null, 0);
        }
Ejemplo n.º 6
0
        public KphSsRuleSetEntryHandle SsCreateRuleSetEntry(
            KphSsClientEntryHandle clientEntryHandle,
            KphSsFilterType defaultFilterType,
            KphSsRuleSetAction action
            )
        {
            byte* inData = stackalloc byte[0xc];
            byte* outData = stackalloc byte[4];

            *(int*)inData = clientEntryHandle.Handle.ToInt32();
            *(int*)(inData + 0x4) = (int)defaultFilterType;
            *(int*)(inData + 0x8) = (int)action;

            _fileHandle.IoControl(CtlCode(Control.SsCreateRuleSetEntry), inData, 0xc, outData, 4);

            return new KphSsRuleSetEntryHandle((*(int*)outData).ToIntPtr());
        }