INFO: ??????? ?? Windows ????? ????? ???????? ?????? ????? NT--

?????? ????????? ?????? ?????????
???? ???????: 186775 - ??? ???????? ???? ????? ????? ??? ???????.
????? ???? | ?? ????

??????

???? ??? ??? ??????? ?????? ????? ????? ????? Windows NT. ??????? ????? ????? ???????? ????. ????? ????? ??????? ??? ?? ????? ???????? ????? ?????? ???????.

??? ?? ???? ???? ????? ?????? ????? Windows NT ? ????? ?????? ????? ?????? ??? ????? ???????? ????????? ???????? ???? ???? ????. ?????? ??? ???? ?? ????????? ??? ????? ?????? ????? ?????? ?????? ?????? ?????? ?????? ????? ?????? Windows NT (DDK) ? ????? ????? ?? ???? ????? Professional MSDN.

??????? ????

???? ?????? ????? ??????? ???? ????? ???? ???????? ??? ????? ?? ????? ????? ????? Windows NT:

  1. ??????? ????? STATUS_PENDING ?? ????? ????? ??? ??? ????? ???? ??? ???????/??????? (IRP) ??????? (IoMarkIrpPending).
  2. ??? ??????? KeSynchronizeExecution ?? ????? ???? ?????? (ISR). ????? ??? deadlock ?????? ????? ??.
  3. ??? ????? DeviceObject-> ?????? DO_BUFFERED_IO ? DO_DIRECT_IO. ???? ?? ???? ???????? ?????? ?? ?????? ???? ??? ??? ????. ?????? ????? ????? METHOD_BUFFERED ?? METHOD_NEITHER METHOD_IN_DIRECT ?? METHOD_OUT_DIRECT ?? DeviceObject-> ?????? ? ???? ??? ??????? ??? ????? ??? ?? ????? IOCTLs.
  4. ??? ????? ?????? ?????? ?? ???? ?????? ??? ?????. ??? ??? ????? ????? bugchecks ?????? ???????.
  5. ??? ????? ????? ?? ???? ???? ??? ????? ?? ?????? ??? ??????? ?? ?????? ?????? ??? ????? ????? ????? ?? IRQL > = DISPATCH_LEVEL. ??? ??? ????.
  6. ??? ???????? ??? ???? ???? kernel ?????? ???? ??? ????? ?? IRQL > = DISPATCH_LEVEL. ??? ??? ????.
  7. ?? ???? ??????? ?? ???? ???? ???? ????? ??????? ???????? ?? ??? ????? ????? ????? ?? IRQL > = DISPATCH_LEVEL. ??? ??? ????.
  8. ?? ???? ????? ??? ????? ???????? (IRQL) ??? ??????? ??? ?? ??????? ????? ??????? ?????? ???? ?????.
  9. ??????? KeLowerIrql() ????? ??? ?? ??? ???? KeRaiseIrql().
  10. ????? ????? ???????? ????? (KeStallExecutionProcessor) ???? ?? 50 microseconds.
  11. ????? ???? ?? ?????? ??????? ????? ?? ????? ???? ?? ????????. ?????? ??? ???? ?????? ????? ????? ?? ???? ?? ?????? ??????? ????? ?? ????? ????? ?????? ???? ?? 25 microseconds.
  12. ??? ??????? KeAcquireSpinLock KeReleaseSpinLock, ?? KeAcquireSpinLockAtDpcLevel ? KeReleaseSpinLockFromDpcLevel ? ????? ????? ?? IRQL ???? ?? DISPATCH_LEVEL.
  13. ??? ????? ????? ?? ????? ?? ?????? ?? KeAcquireSpinLock ?????? KeReleaseSpinLockFromDpcLevel ????????? ????? ???? ?? ??? ??????? IRQL ??????.
  14. ??? ??????? KeAcquireSpinLock KeReleaseSpinLock ?? ?? ????? ????? ???? ?????? ????? ????? ?? ????? ??????? ?? routine(s) ISR ?? SynchCritSection.
  15. ?? ??? ?? ?????? ????? ????? DO_DEVICE_INITIALIZING ??? ????? ???? ???? ?? ????? ??? DriverEntry.
  16. ????? ????? ???????? ???? ?????? (DPC) ????????? ??????? (???????? KeInsertQueueDpc) ?? ?????? ????? ?????? ?? ??????? ?????? ?? ??? ?????. ?? ???? ??? ??? ????.
  17. ??? ????? ????? ???? ????? ?? ????? CutomerTimerDPC. ???? ????? ????? ????? ??? ????? nonperiodic ?? ????? DPC.
  18. ??? ????? ???? DPC ??? KeSetTimer ?? KeSetTimerEx (CustomTimerDpc) ? KeInsertQueueDpc (CustomDpc) ???? ????? race ??????.
  19. ??? ??????? IoStartNextPacket ????? ????? ????? ????? ?? ?????. ???? ?? deadlock ?????? ????? ??.
  20. ??? ??????? IoCompleteRequest ????? ????? ????? ????? ?? ?????. ???? ?? deadlock ?????? ????? ??.
  21. ??? ??????? IoCompleteRequest ???? ????? ????? ????? ??? NULL ??? ??? ?????? ??????? ?????? ????? ???????.
  22. ?? ??? ????? ???? ???? ???????/??????? ?? IRP ???? ??? ??????? IoCompleteRequest.
  23. ??? ??????? IoMarkPending ??? ???????? IRP ?? ??????? ??? ?????? ????? ??? (IoCallDriver). ?? ??? ????? IRP ???? ??? ??????? ?????? ??????? IoMarkPending ?? ???? bugcheck. ?????? ?? ?????? ??????? ??? ?? ??????? ????? ??????? IoMarkPending ??? ?? ????? Irp-> PendingReturned.
  24. ????? ????? IRP ??? ?? ??????? IoCompleteRequest ????.
  25. ??? ??????? IoCancelIrp ??? IRP ?? ?????? ?????? ????? ??? ??? ???? ?? IRP ???? ?? ??? ????? ??? ????.
  26. ????? ???????? IoCancelIrp IRP ???? ???? ??? ????? ??????? ??? ???? ????? ??????? ??? ????????.
  27. ??? ??????? IoMakeAssociatedIrp ????? ?????? ????? ??????? ?????? ?? ?????? ????? ??????. ?? ???? IRP ???? ?? ?????? ????? ???????? IRP ?????? ? ?? ???? ????? ?????? ???? ??? IRP ????? ??????.
  28. ??? ??????? IoMakeAssociatedIrp ??? IRP ?? ?????? ?????? ?????? I/O.
  29. ????? ?????? dereference ?????? ??????? ??????? ?????? I/O ??????? ?????. ????? ??????? ??????? (HAL) "???? ????? ??????? ??????? ?????? ??? ????.
  30. ??? ?????? ??? ???? ???? IRP ?? ???? ?? ISR ?? ???? ??????? ?? DISPATCH_LEVEL. ??? ???? ????? ????????? ?????? ???? ?? ???? ??? ?? ????????.
  31. ??? ????? ???????? ????? ????? ?? IRQL ??????? ??? ??? ?? ??? ????? ??? ???????? ?????? ??? IRQL ?????. ??????? ????? KeSynchronizeExecution.
  32. ??? ?????? ???? ?????? ??????? ????? ?? ????? ??????? ??????? ????? (??? ??? ???? ??) ?? ??????? ????? ?? DispatchCleanup ??? ?????? ??? ????? ?????? ????? ??????? ????? ?????? (IoAcquireCancelSpinLock). ?????? ??????? ???? ?????? ??? ????? ?????? ???? ?????? ????? ???????? ???? deadlocks ????????.
  33. ????? ????? ???????? IoAcquireCancelSpinLock ?? ????? ????? ???? ??? ??????? ????? ?? ?????? ????? ????? ????? ?? ????? ????? ????? ??.
  34. ?? ??? ??????? IoReleaseCancelSpinLock ??? ?????? ?? ????? ?????.
  35. ?? ?????? ???????? ??? IRQL ???????? ??? ???? ??? ??? ????? ????? ???? ???. ?? ??? IRQL ??? ????? ???? ???? ????????? ??? ????????? ??????.
  36. ?? ?????? RtlCopyMemory ?? ?????? ?????? ??????? ?????????. ??????? RtlMoveMemory.
  37. ?? ????? ????? ?????? ????? ??? ??????? CPU ????. ??????? ???? PAGE_SIZE ? ?????? ??? ????? ??????? ???????? ?? ??? ??????? ???????? ??? ??????? ?????.
  38. ??? ?????? ??? ?? ?????? ??? ??? Registry\Machine\Hardware ?? Registry\Machine\System ?? ????? DriverEntry ?? ?????? ??????? ???? ?? ??????? ?? ????? ??????? Boot\System.
  39. ??? ????? ????? ????? ?????? ??? ????? ?????? ????? ??? ????? ??????? ?? ?????? ??????? (Registry\Machine\System\CurrentControlSet\Services). ???? ?????? ?????? ??? ??????? ???? ????.
  40. ??? ?????? ????? ???? ???? ???? ???? ????? ???????/??????? ???? ?????? ???????? ?????? ??????? ???????? ?? ?????? ??????? ??????? (DMA) ??????/???? ????? ??????? ?? ??????? ?????.
  41. ??? ??????? IoRegisterDriverReinitialization ?? DriverEntry ????? ?? ????? ?? ?? ???? ?????? STATUS_SUCCESS.
  42. ??? ??????? KeSetEvent ?? ????? ??????? ?????? ??? TRUE ?? ???? ??????? ??????? ??????? ?? ????? ?????? ??????? ??????? ??????? ???? ??? ??????? ??? PASSIVE_LEVEL IRQL. ???? ??? ????? ?? ????????? ??? ???? ???? ??? ??? ???? ??????? ??? ??????????? ??? KeSetEvent KeWait ??????? ????? ?????? (??????).
  43. ??? ??????? KeReleaseSemaphore ?? ????? ??????? ?????? ??? TRUE ?? ???? ??????? ??????? ??????? ?? ????? ?????? ??????? ??????? ??????? ???? ??? ??????? ??? PASSIVE_LEVEL IRQL. ??? ??? ???? ??????? ??? ??????????? ??? KeReleaseSemaphore KeWait ??????? ????? ?????? (??????) ? ????? ??? ????? ?? ??????? ??? ???? ????.
  44. ??? ??????? KeReleaseMutex ?? ????? ??????? ?????? ??? TRUE ?? ???? ??????? ??????? ??????? ?? ????? ?????? ??????? ??????? ??????? ???? ??? ??????? ??? PASSIVE_LEVEL IRQL. ??? ??? ???? ??????? ??? ??????????? ??? KeReleaseMutex KeWait ??????? ????? ?????? (??????) ? ????? ??? ????? ?? ??????? ??? ???? ????.
  45. ??? ??????? KeBugCheckEx ?? KeBugCheck ?? ?????? ????? Windows NT ????? ???????? ?????? ????? ??????, ??? ??? ???? ????? ?? ??? ???? ???? ?? ??? ????? ?????? ?? ????? ?? ?????? bugcheck ??????. ???? ????? ??????? ????? ????? ?????.
  46. ?? ????? ???? ???????? ????? IoTimer ??? ?? ??????? ???? ???? ??? ??????? ????? ????? ???? ?? ?? IoTimer ????? ?? ????? ????? ??? ??? ???? ??????.
  47. ??? ??????? Win32 ?????? ????? ????????? (API) ?? ?????? ????? ???? kernel-???.
  48. ??? ??????? ??????? ??????? ???? ?? ???? ?????? ????? ????? ???? ??? ????? ???? kernel-??? ???? ????? ??????? ???? ???? ????? ????? ?? ??? kernel.
  49. ?? ?????? ???????? ???? ???????? (PKINTERRUPT) ???? ????? ???????? ???? ?? ????? ????????? ?? ISR ???? ????? ???? ???????? ???? ??? ISR ?? ?????? ???? ?? ???? ???? ???? ???? ?? IoConnectInterrupt. ??? ??????? ?????? ServiceContext ???? ????? ?? IoConnectInterrupt ?????? ???? ?????? ??????.
  50. ??? ????? ????? ?????? ????? ??? ??? CustomTimerDpc (KeCancelTimer). ??? ??? ??? ?????? ?? DPC ??? ????? ????? ?????? ???????, ???? ????? ??? ????? ??? ??? ???? ??? bugcheck ??????.
  51. ?? ??? ????? ????? ????? ?????? ????? ??? IRPs ???? ??? CompletionRoutine I/O ?? ????? ???. ?? ???? ?????? ??? ????? IRP ???? ?????? ?????? ????? ??? ??? ????? ????? ?????? ????? ?????? ?? ?????? ????? ????????? ???????? ??? ????? ???? ??? ???? ??????.
  52. ??? ????? ???????? ?????? ??? ???? ?????? ??????? ????. ??? ???? ????? ??? ??? ????? ?????? ??????? ????? ?? ???? ???? ?? ????? ?????? ????? ????? ????? ??????? ??????? ?? ISR ? DPC.
  53. ??? ??????? ???? ?????? ????? ????? ????? ??? spinlock ????? ????? ???? ???? ???.
  54. ??? ????? ??? ???? ??? STATUS_MORE_PROCESSING_REQUIRED ?? CompletionRoutine I/O ????? ?? ?????? IRP ??????? ?????? ?????? ????? ?? IoBuildAsynchronousFsdRequest/IoAllocateIrp ???? ??? ??? ????? IRP ???? ?? ??? ????? ???????? post-processing ??? ????? ???????/???????. ??? ?? ??? ??????? ??? ??? IRP ???? ???? (IoFreeIrp) ?????? ?????? ???????. ??? ??? IRP ???? ?? ?? ???????? ?????? ????????? ???? ????? ?? CompletionRoutine ??? ????? ???? STATUS_MORE_PROCESSING_REQUIRED.
  55. ??? ????? IRP ?? IoBuildSynchronousFsdRequest/IoBuildDeviceIoControlRequest ?? ???? ???? ????? ?????? ???? IRP ???? ???? ??????? ?? ???? ????? (Irp-> ThreadListEntry) ??? ??? ?????.
  56. ??? ??????? IoInitializeIrp ??? IRP ???? ?? ????? ?? IoAllocateIrp ?? ????? ??????? ChargeQuota ??? TRUE. ??? ????? IRP ?? ????? ChargeQuota ??? TRUE ? ????? ????? I/O ????????? ?????? ???? ??? ????? ??????? IRP ?? ??????? ???????? IRP ????.

    ??? ??????? IoInitializeIrp ??? ??? ??? IRP ??? ????? ????????? ???? ????? ??? ??? ?????? blindly ????? IRP ??????. ??????? ??? ??? ??? ????? ??? ????? IRP ????. ?????? ??? ????? ??????? IRP ???? ???? ?? ????? ???????/???????. ??? ??? ???? ?? ????? ??????? IRP ???? ??? ????? ?????? ?? ???????? IoAllocateIrp.
  57. ??? ????? WaitMode UserMode ?? KeWaitForSingleObject/KeWaitForMultipleObjects ??? ?? ????? "????" ?? ???? ????? ??????? ??????. corollary ??? ??? ??? ?? ????? ???? ??? ?????? ?????? ?????? ? ??? ????? KernelMode ?? WaitMode ???? ??? ????? ???? ???? ???????.
  58. ??? ?????? ??? ??????? ??? ERESOURCES, FastMutex(Unsafe) ?? ???? ???? ??????? ??? ???????? ??? ????? ????????? ???????? ?? ???? ???.

    ??? ?????? ??? ??? ??????? ??? ??? IRQL ??? APC_LEVEL ? ??? ??? ???? ??????? ??????? (?? ????? ??? ?? ???? ???????? APC) ??? ??? ????? ?????? ?? ???? ??? ???? ???? ??? "?" ????? ???? ??????. ????? ??? ?? ???? ??? ??????? ??? ?? ???? ??? IRQL APC_LEVEL ?? ???? ???? ?? ???? ??? ?? ???? ??????? KeEnterCriticalRegion.

?????

????? ????? ????? ??????? MSDN ?????? ?? Windows NT

???????

???? ???????: 186775 - ????? ??? ??????: 10/????? ???????/1425 - ??????: 2.1
????? ???
  • Microsoft Win32 Device Driver Kit ?? Windows NT 3.51
  • Microsoft Win32 Device Driver Kit ?? Windows NT 4.0
????? ??????: 
kbmt kbinfo KB186775 KbMtar
????? ????
???: ??? ????? ??? ?????? ???????? ?????? ????? ???? ????? ?????????? ????? ?? ????????? ?????? ????. ???? ???? ?????????? ???? ?? ???????? ???????? ?????? ????????? ????? ????????? ???????? ????? ???????? ?????? ?? ?????? ??? ?? ???????? ???????? ?? ????? ??????? ?????? ??? ??????? ?????? ??. ?????? ?? ???? ??? ??????? ???????? ????? ?? ???? ????? ?????? ??? ????? ??? ????? ??????? ?? ????? ?? ?????? ??? ??? ??????? ??????? ?? ????? ????? ????? ????? ?????. ?? ????? ???? ?????????? ??????? ??? ????? ?? ??????? ?? ????? ?????? ?? ??? ????? ?? ????? ??????? ?? ???????? ?? ??? ???????. ???? ???? ?????????? ???????? ??? ????? ?????? ??????? ??????
???? ??? ????? ??????? ?????? ??????????186775
????? ??????? ?? ????? ???? ?? ????? ???????
?? ????? ????? ?????? ???? ???? ???? ??? ??????? ??? ?? ? ?? ??? ??????? Microsoft ??? ????? ??? ??????? ????? ?????? ?????

????? ???????

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com