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

📄 intrwr.h

📁 学习usb编程很好的例子 自己学习用的。
💻 H
字号:
/*++


Module Name:

    intrwr.h

Abstract:

Environment:

    Kernel mode

Notes:

  
--*/
#ifndef _INTUSB_RWR_H
#define _INTUSB_RWR_H

typedef struct _INTUSB_RW_CONTEXT {

    PURB              Urb;
    PMDL              Mdl;
    ULONG             Length;         // remaining to xfer
    ULONG             Numxfer;        // cumulate xfer
    ULONG_PTR         VirtualAddress; // va for next segment of xfer.
    PDEVICE_EXTENSION DeviceExtension;

} INTUSB_RW_CONTEXT, * PINTUSB_RW_CONTEXT;

PINTUSB_PIPE_CONTEXT
IntUsb_PipeWithName(
    IN PDEVICE_OBJECT  DeviceObject,
    IN PUNICODE_STRING FileName
    );

NTSTATUS
IntUsb_DispatchWrite(
    IN PDEVICE_OBJECT DeviceObject,
    IN PIRP           Irp
    );

NTSTATUS
IntUsb_WriteCompletion(
    IN PDEVICE_OBJECT DeviceObject,
    IN PIRP           Irp,
    IN PVOID          Context
    );

NTSTATUS
IntUsb_DispatchRead(
    IN PDEVICE_OBJECT DeviceObject,
    IN PIRP           Irp
    );

NTSTATUS 
CreateInterruptUrbIN(
	IN PDEVICE_OBJECT DeviceObject
	);

VOID 
DeleteInterruptUrbIN(
	IN PDEVICE_OBJECT fdo
	);

NTSTATUS 
OnInterruptIN(
	IN PDEVICE_OBJECT junk,
	IN PIRP IrpIN, 
	IN PDEVICE_EXTENSION pdx
	);

NTSTATUS 
CompleteRequest(
	IN PIRP Irp, 
	IN NTSTATUS status, 
	IN ULONG_PTR info
	);

NTSTATUS 
StartInterruptUrbIN(
	IN PDEVICE_EXTENSION deviceExtension
	);

VOID 
StopInterruptUrbIN(
	IN PDEVICE_EXTENSION deviceExtension
	);


PIRP 
UncacheReadRequest(
	IN PDEVICE_EXTENSION DeviceExtension, 
	PIRP* pIrp
	);

NTSTATUS 
CacheReadRequest(
	IN PDEVICE_EXTENSION DeviceExtension, 
	PIRP Irp, 
	PIRP* pIrp
	);

NTSTATUS OnCompleteReadRequest(
	PDEVICE_OBJECT junk, 
	PIRP Irp, 
	PDEVICE_EXTENSION DeviceExtension
	);

VOID OnCancelReadRequest(
	PDEVICE_OBJECT junk, 
	PIRP Irp
	);




#endif

⌨️ 快捷键说明

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