Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MP_issues.doc
Скачиваний:
6
Добавлен:
23.09.2019
Размер:
395.26 Кб
Скачать

4.2.1Concurrency with Respect to Driver Object

Table 2 lists the concurrency of standard driver routines with respect to the driver object.

Table 2. Concurrency of Driver Functions per Driver Object

Routine to be called

AddDevice

Cancel

DispatchPnp1

DispatchPower

DispatchXxx2

DPC

ISR

StartIo

Unload

Worker Thread Routine

Routine currently running

System3

Device4

AddDevice

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

No

Maybe

Cancel (if set)5

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

No

Yes

DispatchPnP

Start device6

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

YesError: Reference source not found

No

Maybe

Other7

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

No

Maybe

DispatchPower

SystemError: Reference source not found

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

No

Maybe

DeviceError: Reference source not found

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

No

Maybe

DispatchXxxError: Reference source not found

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

No

Maybe

DPC

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Maybe

Maybe

Maybe

ISR

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Maybe

Maybe

Maybe

StartIo

Yes

Yes

Yes8

Yes

Yes

Yes

Maybe

Maybe

Maybe

No

Maybe

Unload

No

No

No

No

No

No

Maybe

Maybe

No

No

Maybe

Worker Thread Routine

Maybe

Yes

Maybe

Maybe

Maybe

Maybe

Maybe

Maybe

Maybe

Maybe

Maybe

Most driver routines are concurrent with respect to the driver object because most driver tasks are performed on behalf of a file or device object, rather than the driver itself. Driver routines that perform driver-wide activities, such as adding a device, are typically not concurrent. For example, in Table 2, a driver’s Unload routine for a given driver object cannot be called while the driver’s AddDevice routine is running.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]