init.cpp
来自「USB转串口的驱动的代码.rar 需要安装ddk ds」· C++ 代码 · 共 53 行
CPP
53 行
#include "vcp4usb.h"
#if DBG
//int gDebugLevel = DBG_READ | DBG_WRITE | DBG_CREATE | DBG_CLOSE | DBG_DRVCONTRAL;
int gDebugLevel = DBG_ALL;//DATALOG;
#endif // DBG
#pragma code_seg("INIT") // start INIT section
extern "C"
NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath)
{
NTSTATUS status = STATUS_SUCCESS;
DPrint(DBG_ENTRY, (VCP4USB_VERSION "\n"));
DPrint(DBG_ENTRY, ("Entry: %ws\n", RegistryPath->Buffer));
// Export other driver entry points...
DriverObject->DriverExtension->AddDevice = Vcp4usbAddDevice;
DriverObject->DriverUnload = Vcp4usbUnload;
DriverObject->DriverStartIo = NULL;
DriverObject->MajorFunction[IRP_MJ_CREATE] = Vcp4usbCreate;
DriverObject->MajorFunction[IRP_MJ_CLOSE] = Vcp4usbClose;
DriverObject->MajorFunction[IRP_MJ_PNP] = Vcp4usbPnp;
DriverObject->MajorFunction[IRP_MJ_POWER] = Vcp4usbPower;
DriverObject->MajorFunction[IRP_MJ_READ] = Vcp4usbRead;
DriverObject->MajorFunction[IRP_MJ_WRITE] = Vcp4usbWrite;
DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = Vcp4usbDeviceControl;
DriverObject->MajorFunction[IRP_MJ_SYSTEM_CONTROL] = Vcp4usbSystemControl;
InitializeListHead(&gDevList);
KeInitializeMutex(&gDevListMutex, 0); // why not need free?
// Initialise spin lock which protects access to shared memory buffer
return status;
}
#pragma code_seg() // end INIT section
//
#pragma code_seg("PAGE") // start PAGE section
VOID Vcp4usbUnload(IN PDRIVER_OBJECT DriverObject)
{
DPrint(DBG_ENTRY, ("Unload.\n"));
//ASSERT(IsListEmpty(&gDevList));
// Free buffer (do not need to acquire spin lock)
}
#pragma code_seg() // end PAGE section
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?