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

📄 co_proc.h

📁 武安河书第一版(vxd)Windows 驱动例子
💻 H
字号:
#ifdef __cplusplus
extern "C"
{
#endif
#include "wdm.h"
#include "c:\ntddk\inc\ddk\ntddk.h"
#ifdef __cplusplus
}
#endif

#include "guid.h"

typedef enum _PNPSTATE{
	Removed=0,
	SurpriseRemoved=1,
	RemovePending=2,
	Stopped=3,
	StopPending=4,
	Started=5
}PNPSTATE;

typedef struct _CO_PROC_DEVICE_EXTENSION
{
	PDEVICE_OBJECT	fdo;
	PDEVICE_OBJECT	pdo;
	PDEVICE_OBJECT	NextStackDevice;
	UNICODE_STRING	ifSymLinkName;
	PNPSTATE        PnpState;
	PNPSTATE        PrePnpState;
	LONG  		OpenHandle;
	KEVENT          NowCanStop;
	IO_REMOVE_LOCK   CountOfUse;
  	bool            WantToStop;
	ULONG Vector;
	KIRQL Irql;
	KINTERRUPT_MODE Mode;
	KAFFINITY Affinity;
	PKINTERRUPT InterruptObject;
	bool ConnectedToInterrupt;
	PUCHAR BA0;
	ULONG PortLength;
	PVOID				va;
	PHYSICAL_ADDRESS	pa;	
	PADAPTER_OBJECT		AdapterObject;
	ULONG				NMapRegister;
	ULONG				sint;
	ULONG				DMAlength;

}CO_PROC_DEVICE_EXTENSION,*PCO_PROC_DEVICE_EXTENSION;

VOID     Co_procUnload(IN PDRIVER_OBJECT DriverObject);
NTSTATUS Co_procPower(IN PDEVICE_OBJECT fdo,IN PIRP Irp);
NTSTATUS Co_procPnp(IN PDEVICE_OBJECT fdo,IN PIRP Irp);
NTSTATUS Co_procAddDevice(IN PDRIVER_OBJECT DriverObject,IN PDEVICE_OBJECT pdo);
NTSTATUS Co_procCreate(IN PDEVICE_OBJECT fdo,IN PIRP Irp);
NTSTATUS Co_procClose(IN PDEVICE_OBJECT fdo,IN PIRP Irp);
NTSTATUS Co_procWrite(IN PDEVICE_OBJECT fdo,IN PIRP Irp);
NTSTATUS Co_procRead(IN PDEVICE_OBJECT fdo,IN PIRP Irp);
NTSTATUS Co_procDeviceControl(IN PDEVICE_OBJECT fdo,IN PIRP Irp);
NTSTATUS Co_procSystemControl(IN PDEVICE_OBJECT fdo,IN PIRP Irp);
NTSTATUS Co_procDispatchCleanup(IN PDEVICE_OBJECT fdo,IN PIRP Irp);
VOID     Co_procStartIo(IN PDEVICE_OBJECT fdo,IN PIRP Irp);
VOID     Co_procCancelIrp(IN PDEVICE_OBJECT fdo,IN PIRP Irp);
NTSTATUS Co_procStartDevice(IN PCO_PROC_DEVICE_EXTENSION dx,IN PCM_RESOURCE_LIST AllocatedResourcesTranslated);
NTSTATUS CompleteIrp(IN PIRP Irp,IN NTSTATUS status,IN ULONG info);
BOOLEAN  Co_procInterruptHandler(IN PKINTERRUPT Interrupt,IN PCO_PROC_DEVICE_EXTENSION dx);
VOID     Co_procDpcForIsr(IN PKDPC Dpc,IN PDEVICE_OBJECT fdo,IN PIRP Irp,IN PCO_PROC_DEVICE_EXTENSION dx);

⌨️ 快捷键说明

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