阅读:2629回复:24
NDIS passthru 例子 中能不能这样修改 请指点
我如果想在应用层传递数据到 passthru 驱动中 在passthru的DriverEntry中能不能加
// Initialize function pointers DriverObject->DriverUnload = DriverUnload; DriverObject->DriverExtension->AddDevice = AddDevice; DriverObject->MajorFunction[IRP_MJ_CREATE] = DispatchCreate; DriverObject->MajorFunction[IRP_MJ_CLOSE] = DispatchClose; DriverObject->MajorFunction[IRP_MJ_READ] =DispatchReadWrite; DriverObject->MajorFunction[IRP_MJ_WRITE]=DispatchReadWrite; DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = DispatchControl; 并通过deviceiocontrol 传数据进去的 |
|
沙发#
发布于:2003-02-28 13:58
请问Device和Driver有什么区别呢???(我是一个新手请帮助谢谢)
|
|
板凳#
发布于:2003-02-28 02:35
要学的东西还好多呀!
|
|
|
地板#
发布于:2003-02-26 16:16
还是到
http://www.driverdevelop.com/forum/html_34571.html?1046247305 这儿去看看吧,里面有你想要的东东 |
|
地下室#
发布于:2003-02-26 09:15
Create Device 应该要注意勇NDIS的 专门的注册函数,这个在DDK中已经做了声明
|
|
5楼#
发布于:2003-02-25 12:44
mikeluo: 不是,不过差不多,应该是一样的。 |
|
|
6楼#
发布于:2003-02-25 12:33
passthru里面有调用NdisTranferdata么? 混了--- 我看的是winxp的passthru和NdisUio 我把他们合2为一了。 实际是NdisUio里面的。 这个东西很久以前做完了就没管了,搞混了 |
|
|
7楼#
发布于:2003-02-25 12:18
mikeluo:
你的那段代码是XP PASSTHRU里的吗? 要仔细看看XP PASSTHRU了 |
|
|
8楼#
发布于:2003-02-25 11:11
passthru里面有调用NdisTranferdata么?
|
|
|
9楼#
发布于:2003-02-25 11:06
看win xp的,win2k的没用
更正 winxp下的NdisUio很不错,就是一开始会被它的宏搞昏。下面说的是指NdisUio winxp在PacketSize> LookAheadBufferSizes时的NdisTranferdata()用了一个小小的技巧,很有意思。 [编辑 - 2/25/03 by kaput] [编辑 - 2/25/03 by kaput] |
|
|
10楼#
发布于:2003-02-25 10:51
我给完了 希望下次还能得到你的解答 谢谢 祝好
|
|
11楼#
发布于:2003-02-25 10:48
谢谢你 给分 我去看例子 我懂得东西不多 谢谢你告诉我在哪里看例子 这可能就是说的 师父领进门修行在个人 吧 呵呵
非常感谢 嗯 怎么给你分 |
|
12楼#
发布于:2003-02-24 19:50
2k ddk中的passthru的例子没有这段,不过xp的例子里面有
|
|
|
13楼#
发布于:2003-02-24 17:58
kaput 你是说 那个什么都不做的例子?
|
|
14楼#
发布于:2003-02-24 17:21
把windows下的passthru看明白,差不多也就明白了
|
|
|
15楼#
发布于:2003-02-24 16:39
你不会替换成自己的函数么????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
|
|
|
16楼#
发布于:2003-02-24 16:32
for (i = 0; i < IRP_MJ_MAXIMUM_FUNCTION; i++)
{ DispatchTable = IPSecConfigProc; } 中是不是 DispatchTable = IPSecConfigProc; 啊? IPSecConfigProc 这个是处理所有IRP的 函数么? |
|
17楼#
发布于:2003-02-24 16:00
NDIS_STATUS status = NDIS_STATUS_SUCCESS;
UNICODE_STRING DeviceName; UNICODE_STRING DeviceLinkUnicodeString; PDRIVER_DISPATCH DispatchTable[IRP_MJ_MXAIMUM_FUNCTION]; PDEVICE_OBJECT deviceObject; NDIS_HANDLE NdisDeviceHandle; UINT i; for (i = 0; i < IRP_MJ_MAXIMUM_FUNCTION; i++) { DispatchTable = yourdispatchfun; } NdisInitUnicodeString(&DeviceName, NT_DEVICE_NAME); NdisInitUnicodeString(&DeviceLinkUnicodeString, DOS_DEVICE_NAME); status = NdisMRegisterDevice( NdisWrapperHandle, &DeviceName, &DeviceLinkUnicodeString, &DispatchTable[0], &deviceObject, // global variable &NdisDeviceHandle //global variable ); return status; } 大概就是这样的过程 [编辑 - 2/24/03 by mikeluo] |
|
|
18楼#
发布于:2003-02-24 15:50
看过了 对MajorFunction 怎么赋值啊 哪里有没有例子的啊
NdisMRegisterDevice( WrapperHandle,// IN NDIS_HANDLE NdisWrapperHandle, myName, //IN PNDIS_STRING DeviceName, myName, //IN PNDIS_STRING SymbolicName, MajorFunction,//IN PDRIVER_DISPATCH MajorFunctions[], myDriverObject,//OUT PDEVICE_OBJECT *pDeviceObject, NdisDeviceHandle,//OUT NDIS_HANDLE *NdisDeviceHandle ); |
|
19楼#
发布于:2003-02-24 14:59
看一下ddk里面NdisMRegisterDevice的说明先
|
|
|
上一页
下一页