xpmgr/BuildTools/Include/functiondiscoveryconstraints.h

146 lines
8.2 KiB
C

#pragma once
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
///////////////////////////////////////////////////////////////////////////////
// QUERY Constraint defines
///////////////////////////////////////////////////////////////////////////////
#define MAX_FDCONSTRAINTNAME_LENGTH 100
#define MAX_FDCONSTRAINTVALUE_LENGTH 1000
// Common Provider specific Constraints
#define FD_QUERYCONSTRAINT_PROVIDERINSTANCEID L"ProviderInstanceID"
#define FD_QUERYCONSTRAINT_SUBCATEGORY L"Subcategory"
#define FD_QUERYCONSTRAINT_RECURSESUBCATEGORY L"RecurseSubcategory"
#define FD_QUERYCONSTRAINT_VISIBILITY L"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)
#define FD_QUERYCONSTRAINT_COMCLSCONTEXT L"COMClsContext"
#define FD_QUERYCONSTRAINT_ROUTINGSCOPE L"RoutingScope"
// Common Provider specific Constraints values
#define FD_CONSTRAINTVALUE_TRUE L"TRUE"
#define FD_CONSTRAINTVALUE_FALSE L"FALSE"
#define FD_CONSTRAINTVALUE_RECURSESUBCATEGORY_TRUE FD_CONSTRAINTVALUE_TRUE
#define FD_CONSTRAINTVALUE_VISIBILITY_DEFAULT L"0"
#define FD_CONSTRAINTVALUE_VISIBILITY_ALL L"1"
#define FD_CONSTRAINTVALUE_COMCLSCONTEXT_INPROC_SERVER L"1"
#define FD_CONSTRAINTVALUE_COMCLSCONTEXT_LOCAL_SERVER L"4"
#define FD_CONSTRAINTVALUE_PAIRED L"Paired"
#define FD_CONSTRAINTVALUE_UNPAIRED L"UnPaired"
#define FD_CONSTRAINTVALUE_ALL L"All"
#define FD_CONSTRAINTVALUE_ROUTINGSCOPE_ALL L"All"
#define FD_CONSTRAINTVALUE_ROUTINGSCOPE_DIRECT L"Direct"
///////////////////////////////////////////////////////////////////////////////
// Provider inquiry constraints
#define FD_QUERYCONSTRAINT_PAIRING_STATE L"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
#define FD_QUERYCONSTRAINT_INQUIRY_TIMEOUT L"InquiryModeTimeout" // #seconds 6-600 supported, default is 300
///////////////////////////////////////////////////////////////////////////////
// PNP Provider specific Constraints
#define PROVIDERPNP_QUERYCONSTRAINT_INTERFACECLASS L"InterfaceClass"
#define PROVIDERPNP_QUERYCONSTRAINT_NOTPRESENT L"NotPresent"
#define PROVIDERPNP_QUERYCONSTRAINT_NOTIFICATIONSONLY L"NotifyOnly"
// PNP_CONSTRAINTVALUE_NOTPRESENT you want "not present" instances as well
// "FALSE" (default) you want only DIGCF_PRESENT instances.
// PNP Provider specific Constraints values
#define PNP_CONSTRAINTVALUE_NOTPRESENT FD_CONSTRAINTVALUE_TRUE
#define PNP_CONSTRAINTVALUE_NOTIFICATIONSONLY FD_CONSTRAINTVALUE_TRUE
///////////////////////////////////////////////////////////////////////////////
// SSDP Provider specific Constraints
#define PROVIDERSSDP_QUERYCONSTRAINT_TYPE L"Type"
#define PROVIDERSSDP_QUERYCONSTRAINT_CUSTOMXMLPROPERTY L"CustomXmlProperty"
// SSDP Provider specific Constraints values
#define SSDP_CONSTRAINTVALUE_TYPE_ALL L"ssdp:all"
#define SSDP_CONSTRAINTVALUE_TYPE_ROOT L"upnp:rootdevice"
#define SSDP_CONSTRAINTVALUE_TYPE_DEVICE_PREFIX L"urn:schemas-upnp-org:device:"
#define SSDP_CONSTRAINTVALUE_TYPE_SVC_PREFIX L"urn:schemas-upnp-org:service:"
#define SSDP_CONSTRAINTVALUE_TYPE_DEV_LIGHTING SSDP_CONSTRAINTVALUE_TYPE_DEVICE_PREFIX L"Lighting:1"
#define SSDP_CONSTRAINTVALUE_TYPE_DEV_REMINDER SSDP_CONSTRAINTVALUE_TYPE_DEVICE_PREFIX L"Reminder:1"
#define SSDP_CONSTRAINTVALUE_TYPE_DEV_POWERDEVICE SSDP_CONSTRAINTVALUE_TYPE_DEVICE_PREFIX L"PowerDevice:1"
#define SSDP_CONSTRAINTVALUE_TYPE_DEV_IGD SSDP_CONSTRAINTVALUE_TYPE_DEVICE_PREFIX L"InternetGatewayDevice:1"
#define SSDP_CONSTRAINTVALUE_TYPE_DEV_WANDEVICE SSDP_CONSTRAINTVALUE_TYPE_DEVICE_PREFIX L"WANDevice:1"
#define SSDP_CONSTRAINTVALUE_TYPE_DEV_LANDEVICE SSDP_CONSTRAINTVALUE_TYPE_DEVICE_PREFIX L"LANDevice:1"
#define SSDP_CONSTRAINTVALUE_TYPE_DEV_WANCONNDEVICE SSDP_CONSTRAINTVALUE_TYPE_DEVICE_PREFIX L"WANConnectionDevice:1"
#define SSDP_CONSTRAINTVALUE_TYPE_DEV_LUXMETER SSDP_CONSTRAINTVALUE_TYPE_DEVICE_PREFIX L"Luxmeter:1"
#define SSDP_CONSTRAINTVALUE_TYPE_DEV_MDARNDR SSDP_CONSTRAINTVALUE_TYPE_DEVICE_PREFIX L"MediaRenderer:1"
#define SSDP_CONSTRAINTVALUE_TYPE_DEV_MDASRVR SSDP_CONSTRAINTVALUE_TYPE_DEVICE_PREFIX L"MediaServer:1"
#define SSDP_CONSTRAINTVALUE_TYPE_SVC_SCANNER SSDP_CONSTRAINTVALUE_TYPE_SVC_PREFIX L"Scanner:1"
#define SSDP_CONSTRAINTVALUE_TYPE_SVC_DIMMING SSDP_CONSTRAINTVALUE_TYPE_SVC_PREFIX L"DimmingService:1"
///////////////////////////////////////////////////////////////////////////////
// WSD Provider specific Constraints
#define PROVIDERWSD_QUERYCONSTRAINT_DIRECTEDADDRESS L"RemoteAddress"
#define PROVIDERWSD_QUERYCONSTRAINT_TYPE L"Type"
#define PROVIDERWSD_QUERYCONSTRAINT_SCOPE L"Scope"
#define PROVIDERWSD_QUERYCONSTRAINT_SECURITY_REQUIREMENTS L"SecurityRequirements"
#define PROVIDERWSD_QUERYCONSTRAINT_SSL_CERT_FOR_CLIENT_AUTH L"SSLClientAuthCert"
// WSD provider specific Constraint values
#define WSD_CONSTRAINTVALUE_REQUIRE_SECURECHANNEL L"1"
#define WSD_CONSTRAINTVALUE_REQUIRE_SECURECHANNEL_AND_COMPACTSIGNATURE L"2"
#define WSD_CONSTRAINTVALUE_NO_TRUST_VERIFICATION L"3"
///////////////////////////////////////////////////////////////////////////////
// NetBios Provider specific Constraints
#define PROVIDERWNET_QUERYCONSTRAINT_TYPE L"Type"
#define PROVIDERWNET_QUERYCONSTRAINT_PROPERTIES L"Properties"
#define PROVIDERWNET_QUERYCONSTRAINT_RESOURCETYPE L"ResourceType"
#define WNET_CONSTRAINTVALUE_TYPE_ALL L"All"
#define WNET_CONSTRAINTVALUE_TYPE_SERVER L"Server" // Default
#define WNET_CONSTRAINTVALUE_TYPE_DOMAIN L"Domain"
#define WNET_CONSTRAINTVALUE_PROPERTIES_ALL L"All"
#define WNET_CONSTRAINTVALUE_PROPERTIES_LIMITED L"Limited" // Default
#define WNET_CONSTRAINTVALUE_RESOURCETYPE_DISK L"Disk" // All non-printer shares (dwDisplayType == RESOURCEDISPLAYTYPE_SHARE and dwType != RESOURCETYPE_PRINT)
#define WNET_CONSTRAINTVALUE_RESOURCETYPE_PRINTER L"Printer" // All printer shares (dwDisplayType == RESOURCEDISPLAYTYPE_SHARE and dwType == RESOURCETYPE_PRINT)
#define WNET_CONSTRAINTVALUE_RESOURCETYPE_DISKORPRINTER L"DiskOrPrinter" // All shares (dwDisplayType == RESOURCEDISPLAYTYPE_SHARE)
#define ONLINE_PROVIDER_DEVICES_QUERYCONSTRAINT_OWNERNAME L"OwnerName"
///////////////////////////////////////////////////////////////////////////////
// Device Display Object Provider specific Constraints
#define PROVIDERDDO_QUERYCONSTRAINT_DEVICEFUNCTIONDISPLAYOBJECTS L"DeviceFunctionDisplayObjects"
#define PROVIDERDDO_QUERYCONSTRAINT_ONLYCONNECTEDDEVICES L"OnlyConnectedDevices"
#define PROVIDERDDO_QUERYCONSTRAINT_DEVICEINTERFACES L"DeviceInterfaces"
///////////////////////////////////////////////////////////////////////////////
// PROPERTY Constraint defines
///////////////////////////////////////////////////////////////////////////////
#ifndef FDPropertyConstraint
typedef enum tagPropertyConstraint
{
QC_EQUALS = 0,
QC_NOTEQUAL = 1,
QC_LESSTHAN = 2,
QC_LESSTHANOREQUAL = 3,
QC_GREATERTHAN = 4,
QC_GREATERTHANOREQUAL = 5,
QC_STARTSWITH = 6, // Strings only
QC_EXISTS = 7,
QC_DOESNOTEXIST = 8,
QC_CONTAINS = 9 // Strings and VT_VECTOR only
} PropertyConstraint;
#endif