阅读:6667回复:6
关于KeInitializespinlock()和KeInitializeEvent?
在98ddk bulkusb_createdeviceobject中调用iocreateDevice之后有如下调用,起什么作用?
RtlCopyMemory(deviceExtension->DeviceLinkNameBuffer, deviceLinkUnicodeString.Buffer, deviceLinkUnicodeString.Length); KeInitializeEvent(&deviceExtension->RemoveEvent, NotificationEvent, FALSE); KeInitializeEvent(&deviceExtension->SelfRequestedPowerIrpEvent, NotificationEvent, FALSE); KeInitializeEvent(&deviceExtension->StagingDoneEvent, NotificationEvent, FALSE); KeInitializeEvent(&deviceExtension->NoPendingIoEvent, NotificationEvent, FALSE); KeInitializeSpinLock (&deviceExtension->IoCountSpinLock); RtlFreeUnicodeString( &deviceLinkUnicodeString ); 虽然有说明但我比较笨,不太懂请大家指点, 另外 KeInitializeEvent()实现的是什么功能,参数中false or true 指什么? KeInitializeSpinLock 又实现??? 谢谢了先! |
|
最新喜欢:baoyib...
|
沙发#
发布于:2001-08-09 15:10
RtlCopyMemory(deviceExtension->DeviceLinkNameBuffer,
deviceLinkUnicodeString.Buffer, deviceLinkUnicodeString.Length); KeInitializeEvent(&deviceExtension->RemoveEvent, NotificationEvent, FALSE); KeInitializeEvent(&deviceExtension->SelfRequestedPowerIrpEvent, NotificationEvent, FALSE); KeInitializeEvent(&deviceExtension->StagingDoneEvent, NotificationEvent, FALSE); KeInitializeEvent(&deviceExtension->NoPendingIoEvent, NotificationEvent, FALSE); KeInitializeSpinLock (&deviceExtension->IoCountSpinLock); 这些东东在后面的程序里多处地方要用到,所以你要将它们放在DeviceExtension里。 KeInitializeEvent()和? KeInitializeSpinLock()ddk里有详细介绍。 |
|
板凳#
发布于:2001-08-09 19:23
谢谢!给分!能不能具体讲讲作用?谢谢!
|
|
|
地板#
发布于:2001-08-12 20:44
版主,能不能叫叫我怎么用?谢谢!
|
|
|
地下室#
发布于:2001-08-27 13:00
KeInitializespinlock()初始化一个自旋锁,你可以在一小段时间(25ms)内不让其他程序访问你的自旋锁直到你解锁。
|
|
5楼#
发布于:2001-08-27 13:13
25us,不是ms |
|
6楼#
发布于:2001-08-27 19:56
谢谢你呀,亏你这么长时间还记着,谢谢!
|
|
|