Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Ahhoz, hogy az SDV ellenőrizze a KMDF-illesztőprogramot, deklarálnia kell az egyes visszahívási függvényeket a visszahívási függvény szerepkörtípusának használatával. A visszahívási függvény szerepkörtípusai a különböző WDF-fejlécfájlokban vannak definiálva, és a Wdf.h fejlécfájllal történő illesztő létrehozásakor is megtalálhatók. Az alábbi táblázat a függvényszerepkör-típusokat és a hozzájuk társított eseményvisszahívási függvényeket mutatja be.
A visszahívási függvény definíciói előtt deklarálnia kell az illesztőprogram visszahívási függvényeit. Az alábbi példa az EvtDriverDeviceAdd visszahívási függvény függvényszerepkör-deklarációját mutatja be. Ebben a példában a visszahívási függvény neve EvtDriverDeviceAdd.
#include <NTDDK.h>
#include <wdf.h>
EVT_WDF_DRIVER_DEVICE_ADD EvtDriverDeviceAdd
Ha a visszahívási függvény rendelkezik függvény-prototípus deklarációval, a függvény prototípusát le kell cserélnie a függvényszerepkör-típus deklarációra. A függvényszerepkör-típus deklarációiról további információt a függvényszerepkör-típusdeklarációk használata című témakörben talál.
Az alábbi táblázat a visszahívási függvények típusait és a hozzájuk társított eseményvisszahívási függvényeket mutatja be.
| Funkciószerepkör típusa | Eseményvisszahívási függvény |
|---|---|
EVT_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_CLEANUP |
|
EVT_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_COPY |
|
EVT_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_DUPLICATE |
|
EVT_WDF_CHILD_LIST_CREATE_DEVICE |
|
EVT_WDF_CHILD_LIST_ESZKÖZ_VISSZASOROLVA |
|
EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_CLEANUP |
|
EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COMPARE |
|
EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COPY |
|
EVT_WDF_GYERMEK_LISTA_AZONOSÍTÁSI_LEÍRÁS_DUPLIKÁTUM |
|
EVT_WDF_CHILD_LIST_SCAN_FOR_CHILDREN |
|
EVT_WDF_DEVICE_ARM_WAKE_FROM_S0 |
|
EVT_WDF_DEVICE_ARM_WAKE_FROM_SX |
|
EVT_WDF_DEVICE_CONTEXT_CLEANUP |
|
EVT_WDF_DEVICE_CONTEXT_DESTROY |
|
EVT_WDF_DEVICE_D0_ENTRY |
|
EVT_WDF_DEVICE_D0_ENTRY_POST_INTERRUPTS_ENABLED |
|
EVT_WDF_DEVICE_D0_EXIT |
|
EVT_WDF_DEVICE_D0_EXIT_PRE_INTERRUPTS_DISABLED |
|
EVT_WDF_DEVICE_DISABLE_WAKE_AT_BUS |
|
EVT_WDF_DEVICE_DISARM_WAKE_FROM_S0 |
|
EVT_WDF_DEVICE_DISARM_WAKE_FROM_SX |
|
EVT_WDF_DEVICE_EJECT |
|
EVT_WDF_DEVICE_ENABLE_WAKE_AT_BUS |
|
EVT_WDF_DEVICE_FILE_CREATE |
|
EVT_WDF_DEVICE_FILTER_RESOURCE_REQUIREMENTS |
|
EVT_WDF_ESZKÖZ_PNP_ÁLLAPOTVÁLTOZÁS_ÉRTESÍTÉS |
|
EVT_WDF_DEVICE_POWER_POLICY_STATE_CHANGE_NOTIFICATION |
|
EVT_WDF_DEVICE_POWER_STATE_CHANGE_NOTIFICATION |
|
EVT_WDF_DEVICE_PREPARE_HARDWARE |
|
EVT_WDF_DEVICE_PROCESS_QUERY_INTERFACE_REQUEST |
|
EVT_WDF_DEVICE_QUERY_REMOVE (Eszköz eltávolítási lekérdezés esemény) |
|
EVT_WDF_DEVICE_QUERY_STOP |
|
EVT_WDF_DEVICE_RELATIONS_QUERY |
|
EVT_WDF_DEVICE_RELEASE_HARDWARE |
|
EVT_WDF_DEVICE_REMOVE_ADDED_RESOURCES |
|
EVT_WDF_DEVICE_RESOURCE_REQUIREMENTS_QUERY |
|
EVT_WDF_DEVICE_ERŐFORRÁSOK_LEKÉRDEZÉSE (query for device resources) |
|
EVT_WDF_DEVICE_SELF_MANAGED_IO_CLEANUP |
|
EVT_WDF_DEVICE_SELF_MANAGED_IO_FLUSH |
|
EVT_WDF_DEVICE_SELF_MANAGED_IO_INIT |
|
EVT_WDF_DEVICE_SELF_MANAGED_IO_RESTART |
|
EVT_WDF_DEVICE_SELF_MANAGED_IO_SUSPEND |
|
EVT_WDF_DEVICE_SET_LOCK |
|
EVT_WDF_DEVICE_SHUTDOWN_NOTIFICATION |
|
EVT_WDF_ESZKÖZ_VÁRATLAN_ELTÁVOLÍTÁS |
|
EVT_WDF_DEVICE_USAGE_NOTIFICATION |
|
EVT_WDF_DEVICE_WAKE_FROM_S0_TRIGGERED |
|
Ein some cases, there are no known available translations or needed translation if it’s a technical unrevised code or function name typically referring to standardized libraries or frameworks. Therefore, the translation remains the same. |
|
EVT_WDF_DMA_ENABLER_DISABLE |
|
EVT_WDF_DMA_ENABLER_ENABLE |
|
EVT_WDF_DMA_ENABLER_FILL |
|
EVT_WDF_DMA_ENABLER_FLUSH |
|
EVT_WDF_DMA_ENABLER_SELFMANAGED_IO_START |
|
EVT_WDF_DMA_ENABLER_SELFMANAGED_IO_STOP |
|
EVT_WDF_DPC |
|
EVT_WDF_DRIVER_DEVICE_ADD |
|
EVT_WDF_DRIVER_UNLOAD |
|
EVT_WDF_FILE_CLEANUP |
|
EVT_WDF_FILE_CLOSE |
|
EVT_WDF_FILE_CONTEXT_CLEANUP_CALLBACK |
|
EVT_WDF_FILE_CONTEXT_DESTROY_CALLBACK |
|
EVT_WDF_INTERRUPT_DISABLE |
|
EVT_WDF_INTERRUPT_DPC |
|
EVT_WDF_INTERRUPT_ENABLE |
|
EVT_WDF_INTERRUPT_ISR |
|
EVT_WDF_INTERRUPT_SYNCHRONIZE |
|
EVT_WDF_IO_IN_CALLER_CONTEXT |
|
EVT_WDF_IO_QUEUE_CONTEXT_CLEANUP_CALLBACK |
|
EVT_WDF_IO_QUEUE_CONTEXT_DESTROY_CALLBACK |
|
EVT_WDF_IO_QUEUE_IO_CANCELED_ON_QUEUE |
|
EVT_WDF_IO_QUEUE_IO_DEFAULT |
|
EVT_WDF_IO_QUEUE_IO_DEVICE_CONTROL |
|
EVT_WDF_IO_QUEUE_IO_INTERNAL_DEVICE_CONTROL |
|
EVT_WDF_IO_QUEUE_IO_READ |
|
EVT_WDF_IO_QUEUE_IO_RESUME |
|
EVT_WDF_IO_QUEUE_IO_STOP |
|
EVT_WDF_IO_QUEUE_IO_WRITE |
|
EVT_WDF_IO_QUEUE_STATE |
|
EVT_WDF_IO_TARGET_QUERY_REMOVE |
|
EVT_WDF_IO_TARGET_REMOVE_CANCELED |
|
EVT_WDF_IO_TARGET_REMOVE_COMPLETE |
|
EVT_WDF_OBJECT_CONTEXT_CLEANUP |
|
EVT_WDF_OBJECT_CONTEXT_DESTROY |
|
EVT_WDF_PROGRAM_DMA |
|
EVT_WDF_REQUEST_CANCEL |
|
EVT_WDF_REQUEST_COMPLETION_ROUTINE |
|
EVT_WDF_TIMER |
|
EVT_WDF_TRACE_CALLBACK |
|
EVT_WDF_WMI_INSTANCE_EXECUTE_METHOD |
|
EVT_WDF_WMI_INSTANCE_QUERY_INSTANCE |
|
EVT_WDF_WMI_INSTANCE_SET_INSTANCE |
|
EVT_WDF_WMI_INSTANCE_SET_ITEM |
|
EVT_WDF_WMI_PROVIDER_FUNCTION_CONTROL |
|
EVT_WDF_WORKITEM |
|
EVT_WDFDEVICE_WDM_IRP_PREPROCESS |
Több visszahívási függvényt engedélyező függvényszerepkör-típusok
Vannak olyan függvényszerepkör-típusok, amelyekhez több eseményvisszahívási függvény is társítható. Előfordulhat például, hogy egy illesztőprogram több EvtTimerFunc vagy EvtDpcFunc visszahívási függvénysel rendelkezik . Az alábbi táblázat az SDV által támogatott visszahívások maximális számát mutatja az egyes függvényszerepkör-típusokhoz. Bár nem helytelen, hogy az illesztőprogramok a táblázatban felsorolt maximális számú visszahívási függvénynél többet használjanak, az SDV használatakor bonyolítja az ellenőrzési folyamatot. Az Sdv-map.h fájlban a további visszahívási függvények elhelyezéséhez szükséges módosításokkal kapcsolatos információkért tekintse meg a függvényszerepkör-típus ismétlődő belépési pontjait.
| Funkciószerepkör típusa | Visszahívási függvények maximális száma |
|---|---|
EVT_WDF_DPC |
7 |
EVT_WDF_INTERRUPT_SYNCHRONIZE |
11 |
EVT_WDF_TIMER |
6 |
EVT_WDF_WMI_INSTANCE_EXECUTE_METHOD |
5 |
EVT_WDF_WMI_INSTANCE_QUERY_INSTANCE |
5 |
EVT_WDF_WMI_INSTANCE_SET_INSTANCE |
5 |
EVT_WDF_WMI_INSTANCE_SET_ITEM |
5 |
Függvényszerepkör-típusok és I/O sorok
A következő függvényszerepkör-típusokat akkor használja, ha deklarálja a KMDF-keretrendszerre támaszkodó kéréskezelőket és visszahívási függvényeket az I/O-kérések illesztőprogramnak való továbbításához (szekvenciális vagy párhuzamos kézbesítéshez). Ne használja ezeket a függvényszerepkör-típusokat azokhoz a függvényekhez, amelyek manuálisan továbbítják a kéréseket az alapértelmezett üzenetsorból más üzenetsorokra (manuális kézbesítés). Az SDV nem támogatja a memóriamodellt, amely lehetővé teszi a kérések nyomon követését az egyik üzenetsorból a másikba.
További információ az I/O-üzenetsorokról: I/O-üzenetsorok létrehozása.
| A manuális küldéshez konfigurált I/O-üzenetsorhoz használt függvényszerepkör-típusok |
|---|
EVT_WDF_IO_QUEUE_CONTEXT_CLEANUP_CALLBACK |
EVT_WDF_IO_QUEUE_CONTEXT_DESTROY_CALLBACK |
EVT_WDF_IO_QUEUE_IO_CANCELED_ON_QUEUE |
EVT_WDF_IO_QUEUE_IO_DEFAULT |
EVT_WDF_IO_QUEUE_IO_DEVICE_CONTROL |
EVT_WDF_IO_QUEUE_IO_INTERNAL_DEVICE_CONTROL |
EVT_WDF_IO_QUEUE_IO_READ |
EVT_WDF_IO_QUEUE_IO_RESUME |
EVT_WDF_IO_QUEUE_IO_STOP |
EVT_WDF_IO_QUEUE_IO_WRITE |
EVT_WDF_IO_QUEUE_STATE |
Az EvtCleanupCallback és az EvtDestroyCallback függvények függvényszereptípusai
Az EvtCleanupCallback és az EvtDestroyCallback függvényt objektumspecifikus, függvényszerepkör-típusokkal kell deklarálni. Az SDV-hez ezek az objektumspecifikus szerepkörtípusok szükségesek annak megállapításához, hogy az illesztőprogram megfelelően használja-e a visszahívási függvényt. A következő táblák segítségével meghatározhatja, hogy melyik függvénytípust használja.
| Objektumtípus | Az EvtCleanupCallback függvényszerepkör-típusa |
|---|---|
Eszközobjektum |
EVT_WDF_DEVICE_CONTEXT_CLEANUP |
I/O-üzenetsor-objektum |
EVT_WDF_IO_QUEUE_CONTEXT_CLEANUP_CALLBACK |
Fájlobjektum |
EVT_WDF_FILE_CONTEXT_CLEANUP_CALLBACK |
Minden más objektum |
EVT_WDF_OBJECT_CONTEXT_CLEANUP |
| Objektumtípus | Az EvDestroyCallback függvényszerepkör-típusa |
|---|---|
Eszközobjektum |
EVT_WDF_DEVICE_CONTEXT_DESTROY |
I/O-sorobjektum |
EVT_WDF_IO_QUEUE_CONTEXT_DESTROY_CALLBACK |
Fájlobjektum |
EVT_WDF_FILE_CONTEXT_DESTROY_CALLBACK |
Minden más objektum |
EVT_WDF_OBJECT_CONTEXT_DESTROY |