namespace Vanara.PInvoke { public static partial class FunDisc { #pragma warning disable CS1591 /////////////////////////////////////////////////////////////////////////////// // QUERY Constraint defines /////////////////////////////////////////////////////////////////////////////// public const int MAX_FDCONSTRAINTNAME_LENGTH = 100; public const int MAX_FDCONSTRAINTVALUE_LENGTH = 1000; // Common Provider specific Constraints public const string FD_QUERYCONSTRAINT_PROVIDERINSTANCEID = "ProviderInstanceID"; public const string FD_QUERYCONSTRAINT_SUBCATEGORY = "Subcategory"; public const string FD_QUERYCONSTRAINT_RECURSESUBCATEGORY = "RecurseSubcategory"; public const string FD_QUERYCONSTRAINT_VISIBILITY = "Visibility"; // FD_CONSTRAINTVALUE_VISIBILITY_DEFAULT you want just default instances (visible as defined by the provider) // FD_CONSTRAINTVALUE_VISIBILITY_ALL (default) you want both visible and not visible/hidden instances (as defined by the provider) public const string FD_QUERYCONSTRAINT_COMCLSCONTEXT = "COMClsContext"; public const string FD_QUERYCONSTRAINT_ROUTINGSCOPE = "RoutingScope"; // Common Provider specific Constraints values public const string FD_CONSTRAINTVALUE_TRUE = "TRUE"; public const string FD_CONSTRAINTVALUE_FALSE = "FALSE"; public const string FD_CONSTRAINTVALUE_RECURSESUBCATEGORY_TRUE = FD_CONSTRAINTVALUE_TRUE; public const string FD_CONSTRAINTVALUE_VISIBILITY_DEFAULT = "0"; public const string FD_CONSTRAINTVALUE_VISIBILITY_ALL = "1"; public const string FD_CONSTRAINTVALUE_COMCLSCONTEXT_INPROC_SERVER = "1"; public const string FD_CONSTRAINTVALUE_COMCLSCONTEXT_LOCAL_SERVER = "4"; public const string FD_CONSTRAINTVALUE_PAIRED = "Paired"; public const string FD_CONSTRAINTVALUE_UNPAIRED = "UnPaired"; public const string FD_CONSTRAINTVALUE_ALL = "All"; public const string FD_CONSTRAINTVALUE_ROUTINGSCOPE_ALL = "All"; public const string FD_CONSTRAINTVALUE_ROUTINGSCOPE_DIRECT = "Direct"; /////////////////////////////////////////////////////////////////////////////// // Provider inquiry constraints public const string FD_QUERYCONSTRAINT_PAIRING_STATE = "PairingState"; // if unset, provider default is FD_CONSTRAINTVALUE_PAIRED // FD_CONSTRAINTVALUE_PAIRED will return all paired devices // FD_CONSTRAINTVALUE_UNPAIRED will return all unpaired devices within wireless or wired range // FD_CONSTRAINTVALUE_ALL will return all devices cached and within wireless or wired range public const string FD_QUERYCONSTRAINT_INQUIRY_TIMEOUT = "InquiryModeTimeout"; // #seconds 6-600 supported, default is 300 /////////////////////////////////////////////////////////////////////////////// // PNP Provider specific Constraints public const string PROVIDERPNP_QUERYCONSTRAINT_INTERFACECLASS = "InterfaceClass"; public const string PROVIDERPNP_QUERYCONSTRAINT_NOTPRESENT = "NotPresent"; public const string PROVIDERPNP_QUERYCONSTRAINT_NOTIFICATIONSONLY = "NotifyOnly"; // PNP_CONSTRAINTVALUE_NOTPRESENT you want "not present" instances as well // "FALSE" (default) you want only DIGCF_PRESENT instances. // PNP Provider specific Constraints values public const string PNP_CONSTRAINTVALUE_NOTPRESENT = FD_CONSTRAINTVALUE_TRUE; public const string PNP_CONSTRAINTVALUE_NOTIFICATIONSONLY = FD_CONSTRAINTVALUE_TRUE; /////////////////////////////////////////////////////////////////////////////// // SSDP Provider specific Constraints public const string PROVIDERSSDP_QUERYCONSTRAINT_TYPE = "Type"; public const string PROVIDERSSDP_QUERYCONSTRAINT_CUSTOMXMLPROPERTY = "CustomXmlProperty"; // SSDP Provider specific Constraints values public const string SSDP_CONSTRAINTVALUE_TYPE_ALL = "ssdp:all"; public const string SSDP_CONSTRAINTVALUE_TYPE_ROOT = "upnp:rootdevice"; public const string SSDP_CONSTRAINTVALUE_TYPE_DEVICE_PREFIX = "urn:schemas-upnp-org:device:"; public const string SSDP_CONSTRAINTVALUE_TYPE_SVC_PREFIX = "urn:schemas-upnp-org:service:"; public const string SSDP_CONSTRAINTVALUE_TYPE_DEV_LIGHTING = SSDP_CONSTRAINTVALUE_TYPE_DEVICE_PREFIX + "Lighting:1"; public const string SSDP_CONSTRAINTVALUE_TYPE_DEV_REMINDER = SSDP_CONSTRAINTVALUE_TYPE_DEVICE_PREFIX + "Reminder:1"; public const string SSDP_CONSTRAINTVALUE_TYPE_DEV_POWERDEVICE = SSDP_CONSTRAINTVALUE_TYPE_DEVICE_PREFIX + "PowerDevice:1"; public const string SSDP_CONSTRAINTVALUE_TYPE_DEV_IGD = SSDP_CONSTRAINTVALUE_TYPE_DEVICE_PREFIX + "InternetGatewayDevice:1"; public const string SSDP_CONSTRAINTVALUE_TYPE_DEV_WANDEVICE = SSDP_CONSTRAINTVALUE_TYPE_DEVICE_PREFIX + "WANDevice:1"; public const string SSDP_CONSTRAINTVALUE_TYPE_DEV_LANDEVICE = SSDP_CONSTRAINTVALUE_TYPE_DEVICE_PREFIX + "LANDevice:1"; public const string SSDP_CONSTRAINTVALUE_TYPE_DEV_WANCONNDEVICE = SSDP_CONSTRAINTVALUE_TYPE_DEVICE_PREFIX + "WANConnectionDevice:1"; public const string SSDP_CONSTRAINTVALUE_TYPE_DEV_LUXMETER = SSDP_CONSTRAINTVALUE_TYPE_DEVICE_PREFIX + "Luxmeter:1"; public const string SSDP_CONSTRAINTVALUE_TYPE_DEV_MDARNDR = SSDP_CONSTRAINTVALUE_TYPE_DEVICE_PREFIX + "MediaRenderer:1"; public const string SSDP_CONSTRAINTVALUE_TYPE_DEV_MDASRVR = SSDP_CONSTRAINTVALUE_TYPE_DEVICE_PREFIX + "MediaServer:1"; public const string SSDP_CONSTRAINTVALUE_TYPE_SVC_SCANNER = SSDP_CONSTRAINTVALUE_TYPE_SVC_PREFIX + "Scanner:1"; public const string SSDP_CONSTRAINTVALUE_TYPE_SVC_DIMMING = SSDP_CONSTRAINTVALUE_TYPE_SVC_PREFIX + "DimmingService:1"; /////////////////////////////////////////////////////////////////////////////// // WSD Provider specific Constraints public const string PROVIDERWSD_QUERYCONSTRAINT_DIRECTEDADDRESS = "RemoteAddress"; public const string PROVIDERWSD_QUERYCONSTRAINT_TYPE = "Type"; public const string PROVIDERWSD_QUERYCONSTRAINT_SCOPE = "Scope"; public const string PROVIDERWSD_QUERYCONSTRAINT_SECURITY_REQUIREMENTS = "SecurityRequirements"; public const string PROVIDERWSD_QUERYCONSTRAINT_SSL_CERT_FOR_CLIENT_AUTH = "SSLClientAuthCert"; public const string PROVIDERWSD_QUERYCONSTRAINT_SSL_CERTHASH_FOR_SERVER_AUTH = "SSLServerAuthCertHash"; // WSD provider specific Constraint values public const string WSD_CONSTRAINTVALUE_REQUIRE_SECURECHANNEL = "1"; public const string WSD_CONSTRAINTVALUE_REQUIRE_SECURECHANNEL_AND_COMPACTSIGNATURE = "2"; public const string WSD_CONSTRAINTVALUE_NO_TRUST_VERIFICATION = "3"; /////////////////////////////////////////////////////////////////////////////// // NetBios Provider specific Constraints public const string PROVIDERWNET_QUERYCONSTRAINT_TYPE = "Type"; public const string PROVIDERWNET_QUERYCONSTRAINT_PROPERTIES = "Properties"; public const string PROVIDERWNET_QUERYCONSTRAINT_RESOURCETYPE = "ResourceType"; public const string WNET_CONSTRAINTVALUE_TYPE_ALL = "All"; public const string WNET_CONSTRAINTVALUE_TYPE_SERVER = "Server"; // Default; public const string WNET_CONSTRAINTVALUE_TYPE_DOMAIN = "Domain"; public const string WNET_CONSTRAINTVALUE_PROPERTIES_ALL = "All"; public const string WNET_CONSTRAINTVALUE_PROPERTIES_LIMITED = "Limited"; // Default; public const string WNET_CONSTRAINTVALUE_RESOURCETYPE_DISK = "Disk"; // All non-printer shares (dwDisplayType == RESOURCEDISPLAYTYPE_SHARE and dwType != RESOURCETYPE_PRINT); public const string WNET_CONSTRAINTVALUE_RESOURCETYPE_PRINTER = "Printer"; // All printer shares (dwDisplayType == RESOURCEDISPLAYTYPE_SHARE and dwType == RESOURCETYPE_PRINT); public const string WNET_CONSTRAINTVALUE_RESOURCETYPE_DISKORPRINTER = "DiskOrPrinter"; // All shares (dwDisplayType == RESOURCEDISPLAYTYPE_SHARE); public const string ONLINE_PROVIDER_DEVICES_QUERYCONSTRAINT_OWNERNAME = "OwnerName"; /////////////////////////////////////////////////////////////////////////////// // Device Display Object Provider specific Constraints public const string PROVIDERDDO_QUERYCONSTRAINT_DEVICEFUNCTIONDISPLAYOBJECTS = "DeviceFunctionDisplayObjects"; public const string PROVIDERDDO_QUERYCONSTRAINT_ONLYCONNECTEDDEVICES = "OnlyConnectedDevices"; public const string PROVIDERDDO_QUERYCONSTRAINT_DEVICEINTERFACES = "DeviceInterfaces"; /// /// /// [Function Discovery is available for use in the operating systems specified in the Requirements section. It may be altered or /// unavailable in subsequent versions.] /// /// /// Qualifies the filter conditions used for searching for function instances. This enumeration is used when adding a constraint to /// a query using the IFunctionInstanceCollectionQuery::AddPropertyConstraint method. /// /// /// A function instance will only match a property constraint when the property key (PKEY) passed to AddPropertyConstraint has the /// same PROPVARIANT type as the PKEY in the function instance's property store and the PROPVARIANT value satisfies the constraint's /// filter conditions. /// /// // https://docs.microsoft.com/en-us/windows/win32/api/functiondiscoveryconstraints/ne-functiondiscoveryconstraints-propertyconstraint // typedef enum tagPropertyConstraint { QC_EQUALS, QC_NOTEQUAL, QC_LESSTHAN, QC_LESSTHANOREQUAL, QC_GREATERTHAN, // QC_GREATERTHANOREQUAL, QC_STARTSWITH, QC_EXISTS, QC_DOESNOTEXIST, QC_CONTAINS } PropertyConstraint; [PInvokeData("functiondiscoveryconstraints.h", MSDNShortId = "NE:functiondiscoveryconstraints.tagPropertyConstraint")] public enum PropertyConstraint { /// The constraint's PKEY and the function instance's PKEY must be equal. QC_EQUALS, /// The constraint's PKEY and the function instance's PKEY must not be equal. QC_NOTEQUAL, /// The constraint's PKEY must be less than the function instance's PKEY. This value can be used only with numbers. QC_LESSTHAN, /// /// The constraint's PKEY must be less than or equal to the function instance's PKEY. This value can be used only with numbers. /// QC_LESSTHANOREQUAL, /// The constraint's PKEY must be greater than the function instance's PKEY. This value can be used only with numbers. QC_GREATERTHAN, /// /// The constraint's PKEY must be greater than or equal to the function instance's PKEY. This value can be used only with numbers. /// QC_GREATERTHANOREQUAL, /// /// The constraint's PKEY must be the start of the function instance's PKEY. This value can be used with strings only. /// QC_STARTSWITH, /// The property must exist. QC_EXISTS, /// The property must not exist. QC_DOESNOTEXIST, /// /// The constraint's PKEY value must be contained within the function instance's PKEY value. This filter is only supported for /// PROPVARIANTs of type VT_LPWSTR or VT_VECTOR /// QC_CONTAINS, } } }