Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс. e-mail:jobsmp@pochta.ru |
Исходный вариант#define B_INTERVAL 0x08
/* USB Configuration Descriptor */
/* All Descriptors (Configuration, Interface, Endpoint, Class, Vendor */
const BYTE USB_ConfigDescriptor[] = {
/* Configuration 1 */
USB_CONFIGUARTION_DESC_SIZE, /* bLength */
USB_CONFIGURATION_DESCRIPTOR_TYPE, /* bDescriptorType */
WBVAL( /* wTotalLength */
USB_CONFIGUARTION_DESC_SIZE +
USB_INTERFACE_DESC_SIZE +
NUM_ENDPOINTS * USB_ENDPOINT_DESC_SIZE +
USB_INTERFACE_DESC_SIZE +
NUM_ENDPOINTS * USB_ENDPOINT_DESC_SIZE
),
0x02, /* bNumInterfaces */
0x01, /* bConfigurationValue */
0x00, /* iConfiguration */
USB_CONFIG_BUS_POWERED | /* bmAttributes */
USB_CONFIG_REMOTE_WAKEUP,
USB_CONFIG_POWER_MA(100), /* bMaxPower */
/* Interface 0, Alternate Setting 0, Class Code Unknown */
USB_INTERFACE_DESC_SIZE, /* bLength */
USB_INTERFACE_DESCRIPTOR_TYPE, /* bDescriptorType */
0x00, /* bInterfaceNumber */
0x00, /* bAlternateSetting */
NUM_ENDPOINTS, /* bNumEndpoints */
USB_DEVICE_CLASS_VENDOR_SPECIFIC, /* bInterfaceClass, USB_CLASS_VENDOR_SPECIFIC */
0xFF, /* bInterfaceSubClass, USB_SUBCLASS_CODE_UNKNOWN */
0xFF, /* bInterfaceProtocol, USB_PROTOCOL_CODE_UNKNOWN */
0x00, /* iInterface, STR_INDEX_INTERFACE = no_string */
/* Endpoint, EP1 Interrupt In */
USB_ENDPOINT_DESC_SIZE, /* bLength */
USB_ENDPOINT_DESCRIPTOR_TYPE, /* bDescriptorType */
USB_ENDPOINT_IN(1), /* bEndpointAddress */
USB_ENDPOINT_TYPE_INTERRUPT, /* bmAttributes */
WBVAL(0x0004), /* wMaxPacketSize */
B_INTERVAL, /* 32ms */ /* bInterval */
/* Endpoint, EP2 Bulk Out */
USB_ENDPOINT_DESC_SIZE, /* bLength */
USB_ENDPOINT_DESCRIPTOR_TYPE, /* bDescriptorType */
USB_ENDPOINT_OUT(2), /* bEndpointAddress */
USB_ENDPOINT_TYPE_BULK, /* bmAttributes */
WBVAL(0x0040), /* wMaxPacketSize */
B_INTERVAL, /* 32ms */
/* Endpoint, EP2 Bulk In */
USB_ENDPOINT_DESC_SIZE, /* bLength */
USB_ENDPOINT_DESCRIPTOR_TYPE, /* bDescriptorType */
USB_ENDPOINT_IN(2), /* bEndpointAddress */
USB_ENDPOINT_TYPE_BULK, /* bmAttributes */
WBVAL(0x0040), /* wMaxPacketSize */
B_INTERVAL, /* 32ms */
/* Interface 1, Alternate Setting 0, Class Code Unknown */
USB_INTERFACE_DESC_SIZE, /* bLength */
USB_INTERFACE_DESCRIPTOR_TYPE, /* bDescriptorType */
0x01, /* bInterfaceNumber */
0x00, /* bAlternateSetting */
NUM_ENDPOINTS, /* bNumEndpoints */
USB_DEVICE_CLASS_VENDOR_SPECIFIC, /* bInterfaceClass, USB_CLASS_CODE_UNKNOWN */
0xFF, /* bInterfaceSubClass, USB_SUBCLASS_CODE_UNKNOWN */
0xFF, /* bInterfaceProtocol, USB_PROTOCOL_CODE_UNKNOWN */
0x00, /* iInterface, STR_INDEX_INTERFACE = no_string */
/* Endpoint, EP4 Interrupt In */
USB_ENDPOINT_DESC_SIZE, /* bLength */
USB_ENDPOINT_DESCRIPTOR_TYPE, /* bDescriptorType */
USB_ENDPOINT_IN(4), /* bEndpointAddress */
USB_ENDPOINT_TYPE_INTERRUPT, /* bmAttributes */
WBVAL(0x0004), /* wMaxPacketSize */
0x20, /* 32ms */ /* bInterval */
/* Endpoint, EP5 Bulk Out */
USB_ENDPOINT_DESC_SIZE, /* bLength */
USB_ENDPOINT_DESCRIPTOR_TYPE, /* bDescriptorType */
USB_ENDPOINT_OUT(5), /* bEndpointAddress */
USB_ENDPOINT_TYPE_BULK, /* bmAttributes */
WBVAL(0x0040), /* wMaxPacketSize */
0x20, /* 32ms */
/* Endpoint, EP5 Bulk In */
USB_ENDPOINT_DESC_SIZE, /* bLength */
USB_ENDPOINT_DESCRIPTOR_TYPE, /* bDescriptorType */
USB_ENDPOINT_IN(5), /* bEndpointAddress */
USB_ENDPOINT_TYPE_BULK, /* bmAttributes */
WBVAL(0x0040), /* wMaxPacketSize */
0x20, /* 32ms */
/* Terminator */
0 /* bLength */
};Чтоб удалить второй порт:
const BYTE USB_ConfigDescriptor[] = {
/* Configuration 1 */
USB_CONFIGUARTION_DESC_SIZE, /* bLength */
USB_CONFIGURATION_DESCRIPTOR_TYPE, /* bDescriptorType */
WBVAL( /* wTotalLength */
USB_CONFIGUARTION_DESC_SIZE +
USB_INTERFACE_DESC_SIZE +
NUM_ENDPOINTS * USB_ENDPOINT_DESC_SIZE
),
0x01, /* bNumInterfaces *!!!*/
0x01, /* bConfigurationValue */
0x00, /* iConfiguration */
USB_CONFIG_BUS_POWERED | /* bmAttributes */
USB_CONFIG_REMOTE_WAKEUP,
USB_CONFIG_POWER_MA(100), /* bMaxPower */
/* Interface 0, Alternate Setting 0, Class Code Unknown */
USB_INTERFACE_DESC_SIZE, /* bLength */
USB_INTERFACE_DESCRIPTOR_TYPE, /* bDescriptorType */
0x00, /* bInterfaceNumber */
0x00, /* bAlternateSetting */
NUM_ENDPOINTS, /* bNumEndpoints */
USB_DEVICE_CLASS_VENDOR_SPECIFIC, /* bInterfaceClass, USB_CLASS_VENDOR_SPECIFIC */
0xFF, /* bInterfaceSubClass, USB_SUBCLASS_CODE_UNKNOWN */
0xFF, /* bInterfaceProtocol, USB_PROTOCOL_CODE_UNKNOWN */
0x00, /* iInterface, STR_INDEX_INTERFACE = no_string */
/* Endpoint, EP1 Interrupt In */
USB_ENDPOINT_DESC_SIZE, /* bLength */
USB_ENDPOINT_DESCRIPTOR_TYPE, /* bDescriptorType */
USB_ENDPOINT_IN(1), /* bEndpointAddress */
USB_ENDPOINT_TYPE_INTERRUPT, /* bmAttributes */
WBVAL(0x0004), /* wMaxPacketSize */
B_INTERVAL, /* 32ms */ /* bInterval */
/* Endpoint, EP2 Bulk Out */
USB_ENDPOINT_DESC_SIZE, /* bLength */
USB_ENDPOINT_DESCRIPTOR_TYPE, /* bDescriptorType */
USB_ENDPOINT_OUT(2), /* bEndpointAddress */
USB_ENDPOINT_TYPE_BULK, /* bmAttributes */
WBVAL(0x0040), /* wMaxPacketSize */
B_INTERVAL, /* 32ms */
/* Endpoint, EP2 Bulk In */
USB_ENDPOINT_DESC_SIZE, /* bLength */
USB_ENDPOINT_DESCRIPTOR_TYPE, /* bDescriptorType */
USB_ENDPOINT_IN(2), /* bEndpointAddress */
USB_ENDPOINT_TYPE_BULK, /* bmAttributes */
WBVAL(0x0040), /* wMaxPacketSize */
B_INTERVAL, /* 32ms */
/* Terminator */
0 /* bLength */
};Второй порт при этом удаляется, но драйвера можно поставить только принудительно, либо если они были установлены ранне, то все также работает нормально.
Ниже привожу sys файл.;
; Ph2kUSB.inf - Philips USB-Serial Driver for Windows 2000
;
; Copyright 2004 Philips Semiconductors
;[Version]
Signature="$CHICAGO$"
Class=Ports
ClassGUID={4d36e978-e325-11ce-bfc1-08002be10318}
Provider=%Philips%
DriverVer=8/3/2004,2.0.1[Manufacturer]
%Philips%=MRI[MRI]
%PhilipsUSBSerial%=Philips.Install,USB\VID_C251&PID_1305&MI_00
%PhilipsUSBSerial%=Philips.Install,USB\VID_C251&PID_1305&MI_01[DestinationDirs]
Philips.Files.Driver.NT=10,System32\Drivers;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Windows 2000[Wdm1.Install.NT]
CopyFiles=Wdm1.Files.Driver.NT[Philips.Install.NT]
CopyFiles=Philips.Files.Driver.NT
Include=MSPORTS.INF
Needs=SerialEnumerator.NT
AddReg=Philips.NT.AddReg[SourceDisksNames.NT]
1="Philips Installation Disk",,,[Philips.Files.Driver.NT]
PLP2KUS.sys[Philips.Install.NT.Services]
Include=MSPORTS.INF
Needs=SerialEnumerator.NT.Services
AddService = Philips, %SPSVCINST_ASSOCSERVICE%, Philips.Service[Philips.Install.NT.HW]
AddReg=Philips.NT.HW.AddReg[Philips.NT.AddReg]
HKR,,PortSubClass,1,01
HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"[Philips.NT.HW.AddReg]
HKR,,"UpperFilters",0x00010000,"serenum"[Philips.Service]
DisplayName = %Philips.ServiceName%
ServiceType = %SERVICE_KERNEL_DRIVER%
StartType = %SERVICE_DEMAND_START%
ErrorControl = %SERVICE_ERROR_NORMAL%
ServiceBinary = %10%\System32\Drivers\PLP2KUS.sys;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Strings[Strings]
Std = "(Standard port types)"
Philips = "Philips Semiconductors"
PhilipsUSBSerial ="Philips USB to Serial Adaptor"
Philips.ServiceName="Philips USB to Serial Service"
SPSVCINST_ASSOCSERVICE=0x00000002; Driver service is associated with device being installed
COPYFLG_NOSKIP=2 ; Do not allow user to skip file
SERVICE_KERNEL_DRIVER=1
SERVICE_AUTO_START=2
SERVICE_DEMAND_START=3
SERVICE_ERROR_NORMAL=1