User`s manual
CONTENTS
11
B.6.7 KP_IntDisable() . . . . . . . . . . . . . . . . . . . . . . .
334
B.6.8 KP_IntAtIrql() . . . . . . . . . . . . . . . . . . . . . . . . 335
B.6.9 KP_IntAtDpc() . . . . . . . . . . . . . . . . . . . . . . . . 338
B.6.10 COPY_TO_USER_OR_KERNEL,
COPY_FROM_USER_OR_KERNEL . . . . . . . . . . . 340
B.6.11 Kernel PlugIn Synchronization APIs . . . . . . . . . . . . 341
B.6.11.1 Kernel PlugIn Synchronization Types . . . . . . 341
B.6.11.2 kp_spinlock_init() . . . . . . . . . . . . . . . . . 342
B.6.11.3 kp_spinlock_wait() . . . . . . . . . . . . . . . . 343
B.6.11.4 kp_spinlock_release() . . . . . . . . . . . . . . . 344
B.6.11.5 kp_spinlock_uninit() . . . . . . . . . . . . . . . 345
B.6.11.6 kp_interlocked_init() . . . . . . . . . . . . . . . 346
B.6.11.7 kp_interlocked_uninit() . . . . . . . . . . . . . . 347
B.6.11.8 kp_interlocked_increment() . . . . . . . . . . . 348
B.6.11.9 kp_interlocked_decrement() . . . . . . . . . . . 349
B.6.11.10 kp_interlocked_add() . . . . . . . . . . . . . . . 350
B.6.11.11 kp_interlocked_read() . . . . . . . . . . . . . . . 351
B.6.11.12 kp_interlocked_set() . . . . . . . . . . . . . . . 352
B.6.11.13 kp_interlocked_exchange() . . . . . . . . . . . . 353
B.7 Kernel PlugIn Structure Reference . . . . . . . . . . . . . . . . . . 354
B.7.1 WD_KERNEL_PLUGIN . . . . . . . . . . . . . . . . . . 354
B.7.2 WD_INTERRUPT . . . . . . . . . . . . . . . . . . . . . . 355
B.7.3 WD_KERNEL_PLUGIN_CALL . . . . . . . . . . . . . . 356
B.7.4 KP_INIT . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
B.7.5 KP_OPEN_CALL . . . . . . . . . . . . . . . . . . . . . . 358
B.8 User-Mode Utility Functions . . . . . . . . . . . . . . . . . . . . . 360
B.8.1 Stat2Str() . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
B.8.2 get_os_type() . . . . . . . . . . . . . . . . . . . . . . . . . 361
B.8.3 ThreadStart() . . . . . . . . . . . . . . . . . . . . . . . . . 362
B.8.4 ThreadWait() . . . . . . . . . . . . . . . . . . . . . . . . . 363
B.8.5 OsEventCreate() . . . . . . . . . . . . . . . . . . . . . . . 364
B.8.6 OsEventClose() . . . . . . . . . . . . . . . . . . . . . . . . 365
B.8.7 OsEventWait() . . . . . . . . . . . . . . . . . . . . . . . . 366
B.8.8 OsEventSignal() . . . . . . . . . . . . . . . . . . . . . . . 367
B.8.9 OsEventReset() . . . . . . . . . . . . . . . . . . . . . . . . 368
B.8.10 OsMutexCreate() . . . . . . . . . . . . . . . . . . . . . . . 369
B.8.11 OsMutexClose() . . . . . . . . . . . . . . . . . . . . . . . 370
B.8.12 OsMutexLock() . . . . . . . . . . . . . . . . . . . . . . . . 371
B.8.13 OsMutexUnlock() . . . . . . . . . . . . . . . . . . . . . . 372
B.8.14 PrintDbgMessage() . . . . . . . . . . . . . . . . . . . . . . 373
B.8.15 WD_LogStart() . . . . . . . . . . . . . . . . . . . . . . . . 374
B.8.16 WD_LogStop() . . . . . . . . . . . . . . . . . . . . . . . . 375










