summaryrefslogtreecommitdiff
path: root/UsbDk
diff options
context:
space:
mode:
authorYuri Benditovich <yuri.benditovich@daynix.com>2019-03-11 20:56:38 +0200
committerYan Vugenfirer <yan@daynix.com>2019-04-15 11:19:13 +0300
commit3652e2a34d92bb91df6c09aba1f0f34304b1c733 (patch)
treeab87e2ffacbeeee3f27a56be056e6e973d427d41 /UsbDk
parent7ad99b074c91428a5e7eab9eb1ada8288606036b (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.h29
-rw-r--r--UsbDk/UsbDkDataHiderPublic.h38
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