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

📄 hello.c

📁 驱动程序开发的简单例子:在debugview下查看调试信息可以看到程序输出的hello 字符串。
💻 C
字号:
#include "ntddk.h"

UNICODE_STRING usLinkDeviceNameString;

VOID UnloadDriver(IN PDRIVER_OBJECT pDriverObject)
{
	PDEVICE_OBJECT pDeviceObject;
	pDeviceObject= pDriverObject->DeviceObject;
	IoDeleteSymbolicLink(&usLinkDeviceNameString);
	ASSERT(!pDeviceObject->AttachedDevice);
	if ( pDeviceObject != NULL )
	{
		IoDeleteDevice(pDeviceObject);
	}
}

NTSTATUS DriverEntry( IN PDRIVER_OBJECT pDriverObject, IN PUNICODE_STRING theRegistryPath )
{
	NTSTATUS ntStatus=1;
	PDEVICE_OBJECT pDeviceObject;
	UNICODE_STRING usDeviceNameString;
	RtlInitUnicodeString(&usDeviceNameString, L"\\Device\\SSDTHOOK" );
	RtlInitUnicodeString(&usLinkDeviceNameString, L"\\DosDevices\\SSDTHOOK" );
	ntStatus = IoCreateDevice(
				 pDriverObject,
				 0,
				 &usDeviceNameString,
				 FILE_DEVICE_DISK_FILE_SYSTEM,
				 FILE_DEVICE_SECURE_OPEN,
				 FALSE,
				 &pDeviceObject);
	if (!NT_SUCCESS(ntStatus))
	{
		return ntStatus;
	}
	ntStatus = IoCreateSymbolicLink(&usLinkDeviceNameString,&usDeviceNameString);
	if (!NT_SUCCESS(ntStatus))
	{
		IoDeleteDevice(pDeviceObject);
		return ntStatus;
	}
	pDriverObject->DriverUnload=UnloadDriver;

	DbgPrint("Hello, world!\n");

	return ntStatus;
}

⌨️ 快捷键说明

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