📄 usbio_i.pas
字号:
Status : USHORT;
end;
PUSBIO_STATUS_REQUEST_DATA = ^USBIO_STATUS_REQUEST_DATA;
type
USBIO_GET_CONFIGURATION_DATA =
packed record
ConfigurationValue : UCHAR;
end;
PUSBIO_GET_CONFIGURATION_DATA = ^USBIO_GET_CONFIGURATION_DATA;
type
USBIO_GET_INTERFACE =
packed record
_Interface : USHORT; //in c++ Interface
end;
PUSBIO_GET_INTERFACE = ^USBIO_GET_INTERFACE;
type
USBIO_GET_INTERFACE_DATA =
packed record
AlternateSetting : UCHAR;
end;
PUSBIO_GET_INTERFACE_DATA = ^USBIO_GET_INTERFACE_DATA;
type
USBIO_INTERFACE_SETTING =
packed record
InterfaceIndex : USHORT;
AlternateSettingIndex : USHORT;
MaximumTransferSize : ULONG;
end;
PUSBIO_INTERFACE_SETTING = ^USBIO_INTERFACE_SETTING;
type
USBIO_SET_CONFIGURATION =
packed record
ConfigurationIndex : USHORT;
NbOfInterfaces : USHORT;
InterfaceList : array[0..(USBIO_MAX_INTERFACES-1)]
of USBIO_INTERFACE_SETTING;
end;
PUSBIO_SET_CONFIGURATION = ^USBIO_SET_CONFIGURATION;
type
USBIO_CLASS_OR_VENDOR_REQUEST =
packed record
Flags : ULONG;
_Type : USBIO_REQUEST_TYPE;
Recipient : USBIO_REQUEST_RECIPIENT;
RequestTypeReservedBits : UCHAR;
Request : UCHAR;
Value : USHORT;
Index : USHORT;
end;
PUSBIO_CLASS_OR_VENDOR_REQUEST = ^USBIO_CLASS_OR_VENDOR_REQUEST;
type
USBIO_DEVICE_PARAMETERS =
packed record
Options : ULONG;
RequestTimeout : ULONG;
end;
PUSBIO_DEVICE_PARAMETERS = ^USBIO_DEVICE_PARAMETERS;
type
USBIO_INTERFACE_CONFIGURATION_INFO =
packed record
InterfaceNumber : UCHAR;
AlternateSetting : UCHAR;
_Class : UCHAR;
SubClass : UCHAR;
Protocol : UCHAR;
NumberOfPipes : UCHAR;
reserved1 : UCHAR;
reserved2 : UCHAR;
end;
PUSBIO_INTERFACE_CONFIGURATION_INFO = ^USBIO_INTERFACE_CONFIGURATION_INFO;
type
USBIO_PIPE_CONFIGURATION_INFO =
packed record
PipeType : USBIO_PIPE_TYPE;
MaximumTransferSize : ULONG;
MaximumPacketSize : USHORT;
EndpointAddress : UCHAR;
Interval : UCHAR;
InterfaceNumber : UCHAR;
reserved1 : UCHAR;
reserved2 : UCHAR;
reserved3 : UCHAR;
end;
PUSBIO_PIPE_CONFIGURATION_INFO = ^USBIO_PIPE_CONFIGURATION_INFO;
type
USBIO_CONFIGURATION_INFO =
packed record
NbOfInterfaces : ULONG;
NbOfPipes : ULONG;
InterfaceInfo : Array[0..USBIO_MAX_INTERFACES-1]
of USBIO_INTERFACE_CONFIGURATION_INFO;
PipeInfo : Array[0..USBIO_MAX_PIPES-1]
of USBIO_PIPE_CONFIGURATION_INFO;
end;
PUSBIO_CONFIGURATION_INFO = ^USBIO_CONFIGURATION_INFO;
type
USBIO_FRAME_NUMBER =
packed record
FrameNumber : ULONG;
end;
PUSBIO_FRAME_NUMBER = ^USBIO_FRAME_NUMBER;
type
USBIO_DEVICE_POWER =
packed record
DevicePowerState : USBIO_DEVICE_POWER_STATE;
end;
PUSBIO_DEVICE_POWER = ^USBIO_DEVICE_POWER;
type
USBIO_DRIVER_INFO =
packed record
APIVersion : USHORT;
DriverVersion : USHORT;
DriverBuildNumber : ULONG;
Flags : ULONG;
end;
PUSBIO_DRIVER_INFO = ^USBIO_DRIVER_INFO;
const
USBIO_INFOFLAG_CHECKED_BUILD : longword = $00000010;
USBIO_INFOFLAG_DEMO_VERSION : longword = $00000020;
type
USBIO_BIND_PIPE =
packed record
EndpointAddress : UCHAR;
end;
PUSBIO_BIND_PIPE = ^USBIO_BIND_PIPE;
type
USBIO_PIPE_PARAMETERS =
packed record
Flags : ULONG;
end;
PUSBIO_PIPE_PARAMETERS = ^USBIO_PIPE_PARAMETERS;
type
USBIO_PIPE_CONTROL_TRANSFER =
packed record
Flags : ULONG;
SetupPacket : Array[0..8-1] of UCHAR;
end;
PUSBIO_PIPE_CONTROL_TRANSFER = ^USBIO_PIPE_CONTROL_TRANSFER;
//
// Isochronous Transfers
//
// The data buffer passed to ReadFile/WriteFile must contain a
// predefined header that describes the size and location of the
// packets to be transferred. The USBIO_ISO_TRANSFER_HEADER consists
// of a fixed size part USBIO_ISO_TRANSFER and a variable size array
// of USBIO_ISO_PACKET descriptors.
//
type
USBIO_ISO_TRANSFER =
packed record
NumberOfPackets : ULONG;
Flags : ULONG;
StartFrame : ULONG;
ErrorCount : ULONG;
end;
PUSBIO_ISO_TRANSFER = ^USBIO_ISO_TRANSFER;
type
USBIO_ISO_PACKET =
packed record
Offset : ULONG;
Length : ULONG;
Status : ULONG;
end;
PUSBIO_ISO_PACKET = ^USBIO_ISO_PACKET;
type
USBIO_ISO_TRANSFER_HEADER =
packed record
IsoTransfer : USBIO_ISO_TRANSFER;
IsoPacket : Array[0..1-1] of USBIO_ISO_PACKET;
end;
PUSBIO_ISO_TRANSFER_HEADER = ^USBIO_ISO_TRANSFER_HEADER;
//
// Define the device type value. Note that values used by Microsoft
// are in the range 0-32767, and 32768-65535 are reserved for use
// by customers.
//
const
FILE_DEVICE_USBIO = DWORD($8094);
const
_USBIO_IOCTL_BASE = DWORD($800);
implementation
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -