Megosztás:


Statikus meghajtó-ellenőrző KMDF függvénydeklarációk

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

EvtChildListAddressDescriptionCleanup

EVT_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_COPY

EvtChildListAddressDescriptionCopy

EVT_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_DUPLICATE

EvtChildListIdentificationDescriptionDuplicate

EVT_WDF_CHILD_LIST_CREATE_DEVICE

EvtChildListCreateDevice

EVT_WDF_CHILD_LIST_ESZKÖZ_VISSZASOROLVA

EvtChildListDeviceReenumerated

EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_CLEANUP

EvtChildListIdentificationDescriptionCleanup

EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COMPARE

EvtChildListIdentificationDescriptionCompare

EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COPY

EvtChildListIdentificationDescriptionCopy

EVT_WDF_GYERMEK_LISTA_AZONOSÍTÁSI_LEÍRÁS_DUPLIKÁTUM

EvtChildListIdentificationDescriptionDuplicate

EVT_WDF_CHILD_LIST_SCAN_FOR_CHILDREN

EvtChildListScanForChildren

EVT_WDF_DEVICE_ARM_WAKE_FROM_S0

EvtDeviceArmWakeFromS0

EVT_WDF_DEVICE_ARM_WAKE_FROM_SX

EvtDeviceArmWakeFromSx

EVT_WDF_DEVICE_CONTEXT_CLEANUP

EvtCleanupCallback

EVT_WDF_DEVICE_CONTEXT_DESTROY

EvtDestroyCallback

EVT_WDF_DEVICE_D0_ENTRY

EvtDeviceD0Entry

EVT_WDF_DEVICE_D0_ENTRY_POST_INTERRUPTS_ENABLED

EvtDeviceD0EntryPostInterruptsEnabled

EVT_WDF_DEVICE_D0_EXIT

EvtDeviceD0Exit

EVT_WDF_DEVICE_D0_EXIT_PRE_INTERRUPTS_DISABLED

EvtDeviceD0ExitPreInterruptsDisabled

EVT_WDF_DEVICE_DISABLE_WAKE_AT_BUS

EvtDeviceDisableWakeAtBus

EVT_WDF_DEVICE_DISARM_WAKE_FROM_S0

EvtDeviceDisarmWakeFromS0

EVT_WDF_DEVICE_DISARM_WAKE_FROM_SX

EvtDeviceDisarmWakeFromSx

EVT_WDF_DEVICE_EJECT

EvtDeviceEject

EVT_WDF_DEVICE_ENABLE_WAKE_AT_BUS

EvtDeviceEnableWakeAtBus

EVT_WDF_DEVICE_FILE_CREATE

EvtDeviceFileCreate

EVT_WDF_DEVICE_FILTER_RESOURCE_REQUIREMENTS

EvtDeviceFilterAddResourceRequirements

EVT_WDF_ESZKÖZ_PNP_ÁLLAPOTVÁLTOZÁS_ÉRTESÍTÉS

EvtDevicePnpStateChange

EVT_WDF_DEVICE_POWER_POLICY_STATE_CHANGE_NOTIFICATION

EvtDevicePnpStateChange

EVT_WDF_DEVICE_POWER_STATE_CHANGE_NOTIFICATION

EvtDevicePowerStateChange

EVT_WDF_DEVICE_PREPARE_HARDWARE

EvtDevicePrepareHardware

EVT_WDF_DEVICE_PROCESS_QUERY_INTERFACE_REQUEST

EvtDeviceProcessQueryInterfaceRequest

EVT_WDF_DEVICE_QUERY_REMOVE (Eszköz eltávolítási lekérdezés esemény)

EvtDeviceQueryRemove

EVT_WDF_DEVICE_QUERY_STOP

EvtDeviceQueryStop

EVT_WDF_DEVICE_RELATIONS_QUERY

EvtDeviceRelationsQuery

EVT_WDF_DEVICE_RELEASE_HARDWARE

EvtDeviceReleaseHardware

EVT_WDF_DEVICE_REMOVE_ADDED_RESOURCES

EvtDeviceRemoveAddedResources

EVT_WDF_DEVICE_RESOURCE_REQUIREMENTS_QUERY

EvtDeviceResourceRequirementsQuery

EVT_WDF_DEVICE_ERŐFORRÁSOK_LEKÉRDEZÉSE (query for device resources)

EvtDeviceResourcesQuery

EVT_WDF_DEVICE_SELF_MANAGED_IO_CLEANUP

EvtDeviceSelfManagedIoCleanup

EVT_WDF_DEVICE_SELF_MANAGED_IO_FLUSH

EvtDeviceSelfManagedIoFlush

EVT_WDF_DEVICE_SELF_MANAGED_IO_INIT

EvtDeviceSelfManagedIoInit

EVT_WDF_DEVICE_SELF_MANAGED_IO_RESTART

EvtDeviceSelfManagedIoRestart

EVT_WDF_DEVICE_SELF_MANAGED_IO_SUSPEND

EvtDeviceSelfManagedIoSuspend

EVT_WDF_DEVICE_SET_LOCK

EvtDeviceSetLock

EVT_WDF_DEVICE_SHUTDOWN_NOTIFICATION

EvtDeviceShutdownNotification

EVT_WDF_ESZKÖZ_VÁRATLAN_ELTÁVOLÍTÁS

EvtDeviceSurpriseRemoval

EVT_WDF_DEVICE_USAGE_NOTIFICATION

EvtDeviceUsageNotification (Eszközhasználati Értesítés)

EVT_WDF_DEVICE_WAKE_FROM_S0_TRIGGERED

EvtDeviceWakeFromS0Triggered

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.

EvtDeviceWakeFromSxTriggered

EVT_WDF_DMA_ENABLER_DISABLE

EvtDmaEnablerDisable

EVT_WDF_DMA_ENABLER_ENABLE

EvtDmaEnablerEnable

EVT_WDF_DMA_ENABLER_FILL

EvtDmaEnablerFill

EVT_WDF_DMA_ENABLER_FLUSH

EvtDmaEnablerFlush

EVT_WDF_DMA_ENABLER_SELFMANAGED_IO_START

EvtDmaEnablerSelfManagedIoStart

EVT_WDF_DMA_ENABLER_SELFMANAGED_IO_STOP

EvtDmaEnablerSelfManagedIoStop

EVT_WDF_DPC

EvtDpcFunc

EVT_WDF_DRIVER_DEVICE_ADD

EvtDriverDeviceAdd

EVT_WDF_DRIVER_UNLOAD

EvtDriverUnload

EVT_WDF_FILE_CLEANUP

EvtFileCleanup

EVT_WDF_FILE_CLOSE

EvtFileClose

EVT_WDF_FILE_CONTEXT_CLEANUP_CALLBACK

EvtCleanupCallback

EVT_WDF_FILE_CONTEXT_DESTROY_CALLBACK

EvtDestroyCallback

EVT_WDF_INTERRUPT_DISABLE

EvtInterruptDisable

EVT_WDF_INTERRUPT_DPC

EvtInterruptDpc

EVT_WDF_INTERRUPT_ENABLE

EvtInterruptEnable

EVT_WDF_INTERRUPT_ISR

EvtInterruptIsr

EVT_WDF_INTERRUPT_SYNCHRONIZE

EvtInterruptSynchronize

EVT_WDF_IO_IN_CALLER_CONTEXT

EvtIoInCallerContext

EVT_WDF_IO_QUEUE_CONTEXT_CLEANUP_CALLBACK

EvtCleanupCallback

EVT_WDF_IO_QUEUE_CONTEXT_DESTROY_CALLBACK

EvtDestroyCallback

EVT_WDF_IO_QUEUE_IO_CANCELED_ON_QUEUE

EvtIoCanceledOnQueue

EVT_WDF_IO_QUEUE_IO_DEFAULT

EvtIoDefault

EVT_WDF_IO_QUEUE_IO_DEVICE_CONTROL

EvtIoDeviceControl

EVT_WDF_IO_QUEUE_IO_INTERNAL_DEVICE_CONTROL

EvtIoInternalDeviceControl

EVT_WDF_IO_QUEUE_IO_READ

EvtIoRead

EVT_WDF_IO_QUEUE_IO_RESUME

EvtIoResume

EVT_WDF_IO_QUEUE_IO_STOP

EvtIoStop

EVT_WDF_IO_QUEUE_IO_WRITE

EvtIoWrite

EVT_WDF_IO_QUEUE_STATE

EvtIoQueueState

EVT_WDF_IO_TARGET_QUERY_REMOVE

EvtIoTargetQueryRemove

EVT_WDF_IO_TARGET_REMOVE_CANCELED

EvtIoTargetRemoveCanceled

EVT_WDF_IO_TARGET_REMOVE_COMPLETE

EvtIoTargetRemoveComplete

EVT_WDF_OBJECT_CONTEXT_CLEANUP

EvtCleanupCallback

EVT_WDF_OBJECT_CONTEXT_DESTROY

EVT_WDF_PROGRAM_DMA

EvtProgramDma

EVT_WDF_REQUEST_CANCEL

EvtRequestCancel

EVT_WDF_REQUEST_COMPLETION_ROUTINE

BefejezésiEljárás

EVT_WDF_TIMER

EvtTimerFunc

EVT_WDF_TRACE_CALLBACK

EVT_WDF_WMI_INSTANCE_EXECUTE_METHOD

EvtWmiInstanceExecuteMethod

EVT_WDF_WMI_INSTANCE_QUERY_INSTANCE

EvtWmiInstanceQueryInstance

EVT_WDF_WMI_INSTANCE_SET_INSTANCE

EvtWmiInstanceSetInstance

EVT_WDF_WMI_INSTANCE_SET_ITEM

EvtWmiInstanceSetItem

EVT_WDF_WMI_PROVIDER_FUNCTION_CONTROL

EvtWmiProviderFunctionControl

EVT_WDF_WORKITEM

EvtWorkItem

EVT_WDFDEVICE_WDM_IRP_PREPROCESS

EvtDeviceWdmIrpPreprocess

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