⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serial.h

📁 usb to rs232 虚拟RS232串口驱动程序
💻 H
字号:
/*++

Copyright (c) 2005-2006  E0 Technology,Inc.

Module Name:

	serial.h

Abstract:

	Virtual Com Port Driver for USB to RS232 Converter of E0 Technology,Inc.

Environment:

	Kernel mode

Notes:

Revision History:

    2006/3/1 : 	Adapted from the serial DDK sample.
--*/
#ifndef SERIAL_INCD
#define SERIAL_INCD
#include "wdm.h"
#include "stdarg.h"
#include "stdio.h"

#include <initguid.h>
#include "ntddser.h"

#define SERIAL_DEF_XON 0x11
#define SERIAL_DEF_XOFF 0x13

#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
#define SERIAL_TAG TAG('S', 'e', 'r', 'l')
#ifndef DPFLTR_INFO_LEVEL
#define DPFLTR_INFO_LEVEL	0
#endif
#ifndef DPFLTR_TRACE_LEVEL
#define DPFLTR_TRACE_LEVEL	1
#endif
#define SERDIAG1              (DPFLTR_INFO_LEVEL + 1)
#define SERDIAG2              (DPFLTR_INFO_LEVEL + 2)
#define SERDIAG3              (DPFLTR_INFO_LEVEL + 3)
#define SERDIAG4              (DPFLTR_INFO_LEVEL + 4)
#define SERDIAG5              (DPFLTR_INFO_LEVEL + 5)
#define SERIRPPATH            (DPFLTR_INFO_LEVEL + 6)
#define SERINITCODE           (DPFLTR_INFO_LEVEL + 7)
#define SERTRACECALLS         (DPFLTR_INFO_LEVEL + 8)
#define SERPNPPOWER           (DPFLTR_INFO_LEVEL + 9)
#define SERFLOW               (DPFLTR_INFO_LEVEL + 10)
#define SERERRORS             (DPFLTR_INFO_LEVEL + 11)
#define SERDBGALL             ((ULONG)0xFFFFFFFF)

#define SER_DBG_DEFAULT       SERDBGALL
#define DEVICE_OBJECT_NAME_LENGTH       128
#define SYMBOLIC_NAME_LENGTH            128


//Forward declaration 
struct _DEVICE_EXTENSION;
typedef struct _DEVICE_EXTENSION *PDEVICE_EXTENSION; 

NTSTATUS
SerialDoExternalNaming(IN PDEVICE_EXTENSION PDevExt,
                       IN PDRIVER_OBJECT PDrvObj);

void
SerialUndoExternalNaming(IN PDEVICE_EXTENSION Extension);

ULONG
SerialDbgPrintEx(IN ULONG Level, PCHAR Format, ...);

	
NTSTATUS
SerialWaitOnMask(PIRP	pIrp);

NTSTATUS
SerialSetWaitMask(PIRP pIrp );

NTSTATUS
SerialCompleteCurrentWait(PIRP pIrp, ULONG events);

VOID
SerialKillAllReadsOrWrites(
	IN PDEVICE_OBJECT DeviceObject,
	IN PLIST_ENTRY QueueToClean,
	IN PIRP *CurrentOpIrp,
	IN PKSPIN_LOCK QueueSpinLock
	);
	
NTSTATUS
SerialStartPurge(
	PDEVICE_EXTENSION deviceExtension,
	IN PIRP Irp
	);

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -