📄 init.cpp
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -