📄 usb2com.struct.h
字号:
//********************************************************************
// created: 11:7:2008 21:17
// file: usb2com.struct.h
// author: tiamo
// purpose: structure
//********************************************************************
#pragma once
//
// device extension
//
typedef struct _USB2COM_DEVICE_EXTENSION
{
//
// signature
//
ULONG Signature;
//
// self device
//
PDEVICE_OBJECT FunctionDeviceObject;
//
// physical device
//
PDEVICE_OBJECT PhysicalDeviceObject;
//
// lower device
//
PDEVICE_OBJECT LowerDeviceObject;
//
// device number .etc COMx
//
ULONG DeviceNumber;
//
// device name
//
UNICODE_STRING DeviceName;
//
// dos device name
//
UNICODE_STRING DosDeviceName;
//
// device interface symbolic link name
//
UNICODE_STRING SymbolicLinkName;
//
// usbd interface info
//
PUSBD_INTERFACE_INFORMATION UsbInterfaceInfo;
//
// device capabilities
//
DEVICE_CAPABILITIES DeviceCapabilities;
//
// power state
//
DEVICE_POWER_STATE CurrentPowerState;
//
// saved system power irp
//
PIRP SavedSystemPowerIrp;
//
// remove lock
//
IO_REMOVE_LOCK RemoveLock;
//
// opened
//
LONG DeviceIsOpened;
//
// surprise removed
//
BOOLEAN SurpriseRemoved;
//
// FIFO control
//
UCHAR SerialFIFOControl;
//
// modem control
//
UCHAR SerialModemControl;
//
// modem status
//
UCHAR ModemStatus;
//
// tx hold reason
//
UCHAR TxHoldReason;
//
// rx hold reason
//
UCHAR RxHoldReason;
//
// baudrate
//
ULONG Baudrate;
//
// serial stats
//
SERIALPERF_STATS SerialStats;
//
// serial chars
//
SERIAL_CHARS SerialChars;
//
// handflow
//
SERIAL_HANDFLOW SerialHandFlow;
//
// queue size
//
SERIAL_QUEUE_SIZE SerialQueueSize;
//
// timeouts
//
SERIAL_TIMEOUTS SerialTimeouts;
//
// line control
//
SERIAL_LINE_CONTROL SerialLineControl;
//
// status
//
SERIAL_STATUS SerialStatus;
//
// comm prop
//
SERIAL_COMMPROP SerialCommProp;
//
// write lock
//
KSPIN_LOCK WriteLock;
//
// current write irp
//
PIRP CurrentWriteIrp;
//
// write queue
//
LIST_ENTRY WriteQueueListHead;
//
// pending write chars count
//
ULONG PendingWriteCharsCount;
//
// write buffer
//
PUCHAR WriteBuffer;
//
// write buffer offset
//
ULONG WriteBufferOffset;
//
// write buffer length
//
ULONG WriteBufferLength;
//
// write irp signature
//
LONG CurrentWriteIrpSignature;
//
// bulk out urb
//
PURB BulkOutUrb;
//
// bulk out irp
//
PIRP BulkOutIrp;
//
// bulk out buffer
//
PVOID BulkOutBuffer;
//
// bulk out urb signature
//
LONG CurrentBulkOutUrbSignature;
//
// bulk out is running
//
BOOLEAN BulkOutUrbIsRunning;
//
// force bulk in stop
//
BOOLEAN ForceBulkOutUrbStop;
//
// bulk in stop event
//
KEVENT BulkOutUrbStopEvent;
//
// read lock
//
KSPIN_LOCK ReadLock;
//
// current read irp
//
PIRP CurrentReadIrp;
//
// read queue
//
LIST_ENTRY ReadQueueListHead;
//
// read buffer
//
PUCHAR ReadBuffer;
//
// first char slot
//
ULONG FirstReadCharSlot;
//
// char count
//
ULONG ReadBufferCharsCount;
//
// bulk in urb
//
PURB BulkInUrb;
//
// bulk in irp
//
PIRP BulkInIrp;
//
// bulk in buffer
//
PVOID BulkInBuffer;
//
// bulk in is running
//
BOOLEAN BulkInUrbIsRunning;
//
// force bulk in stop
//
BOOLEAN ForceBulkInUrbStop;
//
// bulk in stop event
//
KEVENT BulkInUrbStopEvent;
//
// interrupt lock
//
KSPIN_LOCK InterruptLock;
//
// interrupt urb
//
PURB InterruptUrb;
//
// interrupt irp
//
PIRP InterruptIrp;
//
// interrupt buffer
//
PVOID InterruptBuffer;
//
// interrupt is running
//
BOOLEAN InterruptUrbIsRunning;
//
// force stop
//
BOOLEAN ForceInterruptUrbStop;
//
// stop event
//
KEVENT InterruptUrbStopEvent;
//
// wait lock
//
KSPIN_LOCK WaitEventLock;
//
// wait queue
//
LIST_ENTRY WaitEventQueue;
//
// current wait mask
//
ULONG CurrentWaitMask;
}USB2COM_DEVICE_EXTENSION,*PUSB2COM_DEVICE_EXTENSION;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -