-
-
[求助]IoCreateDevice,MjorFunction没反应?
-
发表于:
2009-11-28 15:15
4510
-
[求助]IoCreateDevice,MjorFunction没反应?
打印不出那 KdPrint(("---------Dispatch------------\n"));这行,
create设备创建成功了。
那位帮忙~
~~~~
一直在模仿,却从未超越
~
#include <NTDDK.h>
VOID MyUnload(PDRIVER_OBJECT DriverObject);//
NTSTATUS MyDispatch(IN PDEVICE_OBJECT pDevObj,IN PIRP pIrp);
NTSTATUS IoCreate(IN PDRIVER_OBJECT DriverObject);
////////////////////////////////////////////////////////////////
PDEVICE_OBJECT pDevObj; // Var Device Object
////////////////////////////////////////////////////////////////
NTSTATUS DriverEntry(
IN PDRIVER_OBJECT DriverObject,
IN PUNICODE_STRING RegistryPath
)
{
NTSTATUS stauts=STATUS_SUCCESS;
KdPrint(("=========Start==============\n"));
DriverObject->DriverUnload=MyUnload;
DriverObject->MajorFunction[IRP_MJ_CREATE]=MyDispatch;
DriverObject->MajorFunction[IRP_MJ_CLOSE]=MyDispatch;
stauts=IoCreate(DriverObject);
return stauts;
}
////////////////////////////////////////////////////////////////
VOID MyUnload(PDRIVER_OBJECT DriverObject)
{
if (pDevObj != NULL)
{
IoDeleteDevice(pDevObj);
}
KdPrint(("============End========== \n"));
}
////////////////////////////////////////////////////////////////
NTSTATUS MyDispatch(IN PDEVICE_OBJECT pDevObj,IN PIRP pIrp)
{
KdPrint(("---------Dispatch------------\n"));
pIrp->IoStatus.Status = STATUS_SUCCESS;
IoCompleteRequest( pIrp, IO_NO_INCREMENT );
return STATUS_SUCCESS;
}
////////////////////////////////////////////////////////////////
NTSTATUS IoCreate(IN PDRIVER_OBJECT DriverObject)
{
NTSTATUS status;
UNICODE_STRING deviceName;
RtlInitUnicodeString(&deviceName,L"\\Device\\MyDevice");
status=IoCreateDevice(DriverObject,0,&deviceName,FILE_DEVICE_UNKNOWN,0,FALSE,&pDevObj);
if (!NT_SUCCESS(status))
{
IoDeleteDevice(pDevObj);
return status;
}
return STATUS_SUCCESS;
}
[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法