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

📄 d12irp.c

📁 D12的USB驱动代码
💻 C
字号:
#define DRIVER

#include "wdm.h"
#include "stdarg.h"
#include "stdio.h"

#include "usbdi.h"
#include "usbdlib.h"
#include "D12.h"

#include "d12irp.h"

NTSTATUS
D12_ResetIrpQueue(
    IN  PDEVICE_OBJECT DeviceObject
    )
{
    PDEVICE_EXTENSION deviceExtension;
    ULONG i;

    D12_KdPrint (("D12TEST.SYS: enter D12_ResetIrpQueue\n"));

    deviceExtension = DeviceObject->DeviceExtension;
	for( i=0; i<D12_MAX_PENDING_IRPS; i++)
		deviceExtension->pendingIRP[i]=0;

	return STATUS_SUCCESS;
}

NTSTATUS
D12_CancelAllPendingIrps(
    IN  PDEVICE_OBJECT DeviceObject
	)
{
    PDEVICE_EXTENSION deviceExtension;
    NTSTATUS ntStatus;
    ULONG i;

    D12_KdPrint (("D12TEST.SYS: enter D12_CancelPendingIrps\n"));

    deviceExtension = DeviceObject->DeviceExtension;
	for( i=0; i<D12_MAX_PENDING_IRPS; i++) {
		if(deviceExtension->pendingIRP[i]) {
				ntStatus = IoCancelIrp(deviceExtension->pendingIRP[i]);
				deviceExtension->pendingIRP[i] = 0;
		}
	}

    D12_KdPrint (("D12TEST.SYS: exit D12_CancelPendingIrps\n"));
	return ntStatus;
}

NTSTATUS
D12_RemovePendingIrp(
    IN PDEVICE_OBJECT DeviceObject,
    IN PIRP Irp
	)
{
    PDEVICE_EXTENSION deviceExtension;
    ULONG i;

    D12_KdPrint (("D12TEST.SYS: enter D12_RemovePendingIrp\n"));

    deviceExtension = DeviceObject->DeviceExtension;
	for( i=0; i<D12_MAX_PENDING_IRPS; i++)
		if(deviceExtension->pendingIRP[i] == Irp)
				deviceExtension->pendingIRP[i] = 0;

    D12_KdPrint (("D12TEST.SYS: exit D12_RemovePendingIrp\n"));
	return STATUS_SUCCESS;
}

NTSTATUS
D12_AddPendingIrp(
    IN PDEVICE_OBJECT DeviceObject,
    IN PIRP Irp
	)
{
    PDEVICE_EXTENSION deviceExtension;
    ULONG i;

    D12_KdPrint (("D12TEST.SYS: enter D12_AddPendingIrp\n"));

    deviceExtension = DeviceObject->DeviceExtension;
	for( i=0; i<D12_MAX_PENDING_IRPS; i++) {
		if(deviceExtension->pendingIRP[i] == 0) {
				deviceExtension->pendingIRP[i] = Irp;
				break;
		}
	}

    D12_KdPrint (("D12TEST.SYS: exit D12_AddPendingIrp\n"));
	return STATUS_SUCCESS;
}

⌨️ 快捷键说明

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