diff options
author | Yuri Benditovich <yuri.benditovich@daynix.com> | 2019-03-11 20:56:38 +0200 |
---|---|---|
committer | Yan Vugenfirer <yan@daynix.com> | 2019-04-15 11:19:13 +0300 |
commit | 3652e2a34d92bb91df6c09aba1f0f34304b1c733 (patch) | |
tree | ab87e2ffacbeeee3f27a56be056e6e973d427d41 /UsbDk | |
parent | 7ad99b074c91428a5e7eab9eb1ada8288606036b (diff) |
Preparation for extended rules for device hide
Extend structure USB_DK_HIDE_RULE by adding 'Type'
member derived from backward-compatible structure
USB_DK_HIDE_RULE_PUBLIC. Public API procedures of UsbDkHelper
receive USB_DK_HIDE_RULE_PUBLIC describing hiding rules.
Internally UsbDk works with extended structure.
Signed-off-by: Yuri Benditovich <yuri.benditovich@daynix.com>
Diffstat (limited to 'UsbDk')
-rw-r--r-- | UsbDk/UsbDkDataHider.h | 29 | ||||
-rw-r--r-- | UsbDk/UsbDkDataHiderPublic.h | 38 |
2 files changed, 59 insertions, 8 deletions
diff --git a/UsbDk/UsbDkDataHider.h b/UsbDk/UsbDkDataHider.h index b2a7e55..73c60a7 100644 --- a/UsbDk/UsbDkDataHider.h +++ b/UsbDk/UsbDkDataHider.h @@ -23,13 +23,26 @@ #pragma once -#define USB_DK_HIDE_RULE_MATCH_ALL ((ULONG64)(-1)) +#include "UsbDkDataHiderPublic.h" -typedef struct tag_USB_DK_HIDE_RULE +#ifdef __cplusplus +class USB_DK_HIDE_RULE : public USB_DK_HIDE_RULE_PUBLIC { - ULONG64 Hide; - ULONG64 Class; - ULONG64 VID; - ULONG64 PID; - ULONG64 BCD; -} USB_DK_HIDE_RULE, *PUSB_DK_HIDE_RULE; +public: + USB_DK_HIDE_RULE(PUSB_DK_HIDE_RULE_PUBLIC PublicRule = NULL, ULONG RuleType = USBDK_HIDER_RULE_DEFAULT) : + Type(RuleType) + { + if (PublicRule) + { + Hide = PublicRule->Hide; + Class = PublicRule->Class; + VID = PublicRule->VID; + PID = PublicRule->PID; + BCD = PublicRule->BCD; + } + } + ULONG64 Type; +}; + +typedef USB_DK_HIDE_RULE *PUSB_DK_HIDE_RULE; +#endif diff --git a/UsbDk/UsbDkDataHiderPublic.h b/UsbDk/UsbDkDataHiderPublic.h new file mode 100644 index 0000000..ef8393b --- /dev/null +++ b/UsbDk/UsbDkDataHiderPublic.h @@ -0,0 +1,38 @@ +/********************************************************************** +* Copyright (c) 2013-2014 Red Hat, Inc. +* +* Developed by Daynix Computing LTD. +* +* Authors: +* Dmitry Fleytman <dmitry@daynix.com> +* Kirill Moizik <kirill@daynix.com> +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +**********************************************************************/ + +#pragma once + +#define USB_DK_HIDE_RULE_MATCH_ALL ((ULONG64)(-1)) + +typedef struct tag_USB_DK_HIDE_RULE_PUBLIC +{ + ULONG64 Hide; + ULONG64 Class; + ULONG64 VID; + ULONG64 PID; + ULONG64 BCD; +} USB_DK_HIDE_RULE_PUBLIC, *PUSB_DK_HIDE_RULE_PUBLIC; + +#define USBDK_HIDER_RULE_DEFAULT 0 +#define USBDK_HIDER_RULE_DETERMINATIVE_TYPES 1 |