https://git.reactos.org/?p=reactos.git;a=commitdiff;h=7c734db034ac93a85fa352...
commit 7c734db034ac93a85fa352ca948efcdd001e5171 Author: Victor Perevertkin victor.perevertkin@reactos.org AuthorDate: Wed Nov 4 19:34:14 2020 +0300 Commit: Victor Perevertkin victor.perevertkin@reactos.org CommitDate: Wed Nov 4 19:34:14 2020 +0300
[WDF] Enable Resource and Interrupt APIs --- sdk/lib/drivers/wdf/CMakeLists.txt | 4 +- sdk/lib/drivers/wdf/kmdf/inc/private/fxdynamics.h | 234 +++++++-------------- .../wdf/shared/irphandlers/pnp/fxinterruptapi.cpp | 16 ++ .../drivers/wdf/shared/support/fxresourceapi.cpp | 22 ++ 4 files changed, 116 insertions(+), 160 deletions(-)
diff --git a/sdk/lib/drivers/wdf/CMakeLists.txt b/sdk/lib/drivers/wdf/CMakeLists.txt index 8b4efe8c3b5..cfb47188138 100644 --- a/sdk/lib/drivers/wdf/CMakeLists.txt +++ b/sdk/lib/drivers/wdf/CMakeLists.txt @@ -50,7 +50,7 @@ list(APPEND SOURCE_SHARED # shared/irphandlers/pnp/devicepwrreqstatemachine.cpp shared/irphandlers/pnp/eventqueue.cpp shared/irphandlers/pnp/fdopower.cpp - # shared/irphandlers/pnp/fxinterruptapi.cpp + shared/irphandlers/pnp/fxinterruptapi.cpp shared/irphandlers/pnp/fxpkgfdo.cpp shared/irphandlers/pnp/fxpkgpdo.cpp shared/irphandlers/pnp/fxpkgpnp.cpp @@ -85,7 +85,7 @@ list(APPEND SOURCE_SHARED shared/support/fxregistryapi.cpp shared/support/fxregkey.cpp shared/support/fxrequestbuffer.cpp - # shared/support/fxresourceapi.cpp + shared/support/fxresourceapi.cpp shared/support/fxresourcecollection.cpp shared/support/fxspinlock.cpp shared/support/fxspinlockapi.cpp diff --git a/sdk/lib/drivers/wdf/kmdf/inc/private/fxdynamics.h b/sdk/lib/drivers/wdf/kmdf/inc/private/fxdynamics.h index fcf73d3722b..9d2c75def55 100644 --- a/sdk/lib/drivers/wdf/kmdf/inc/private/fxdynamics.h +++ b/sdk/lib/drivers/wdf/kmdf/inc/private/fxdynamics.h @@ -189,29 +189,17 @@ typedef struct _WDFFUNCTIONS { PFN_WDFFILEOBJECTGETFLAGS pfnWdfFileObjectGetFlags; PFN_WDFFILEOBJECTGETDEVICE pfnWdfFileObjectGetDevice; PFN_WDFFILEOBJECTWDMGETFILEOBJECT pfnWdfFileObjectWdmGetFileObject; - // PFN_WDFINTERRUPTCREATE pfnWdfInterruptCreate; - // PFN_WDFINTERRUPTQUEUEDPCFORISR pfnWdfInterruptQueueDpcForIsr; - // PFN_WDFINTERRUPTSYNCHRONIZE pfnWdfInterruptSynchronize; - // PFN_WDFINTERRUPTACQUIRELOCK pfnWdfInterruptAcquireLock; - // PFN_WDFINTERRUPTRELEASELOCK pfnWdfInterruptReleaseLock; - // PFN_WDFINTERRUPTENABLE pfnWdfInterruptEnable; - // PFN_WDFINTERRUPTDISABLE pfnWdfInterruptDisable; - // PFN_WDFINTERRUPTWDMGETINTERRUPT pfnWdfInterruptWdmGetInterrupt; - // PFN_WDFINTERRUPTGETINFO pfnWdfInterruptGetInfo; - // PFN_WDFINTERRUPTSETPOLICY pfnWdfInterruptSetPolicy; - // PFN_WDFINTERRUPTGETDEVICE pfnWdfInterruptGetDevice; - PFN_ROSWDFUNIMPLEMENTED pfnWdfInterruptCreate; - PFN_ROSWDFUNIMPLEMENTED pfnWdfInterruptQueueDpcForIsr; - PFN_ROSWDFUNIMPLEMENTED pfnWdfInterruptSynchronize; - PFN_ROSWDFUNIMPLEMENTED pfnWdfInterruptAcquireLock; - PFN_ROSWDFUNIMPLEMENTED pfnWdfInterruptReleaseLock; - PFN_ROSWDFUNIMPLEMENTED pfnWdfInterruptEnable; - PFN_ROSWDFUNIMPLEMENTED pfnWdfInterruptDisable; - PFN_ROSWDFUNIMPLEMENTED pfnWdfInterruptWdmGetInterrupt; - PFN_ROSWDFUNIMPLEMENTED pfnWdfInterruptGetInfo; - PFN_ROSWDFUNIMPLEMENTED pfnWdfInterruptSetPolicy; - PFN_ROSWDFUNIMPLEMENTED pfnWdfInterruptGetDevice; - + PFN_WDFINTERRUPTCREATE pfnWdfInterruptCreate; + PFN_WDFINTERRUPTQUEUEDPCFORISR pfnWdfInterruptQueueDpcForIsr; + PFN_WDFINTERRUPTSYNCHRONIZE pfnWdfInterruptSynchronize; + PFN_WDFINTERRUPTACQUIRELOCK pfnWdfInterruptAcquireLock; + PFN_WDFINTERRUPTRELEASELOCK pfnWdfInterruptReleaseLock; + PFN_WDFINTERRUPTENABLE pfnWdfInterruptEnable; + PFN_WDFINTERRUPTDISABLE pfnWdfInterruptDisable; + PFN_WDFINTERRUPTWDMGETINTERRUPT pfnWdfInterruptWdmGetInterrupt; + PFN_WDFINTERRUPTGETINFO pfnWdfInterruptGetInfo; + PFN_WDFINTERRUPTSETPOLICY pfnWdfInterruptSetPolicy; + PFN_WDFINTERRUPTGETDEVICE pfnWdfInterruptGetDevice; PFN_WDFIOQUEUECREATE pfnWdfIoQueueCreate; PFN_WDFIOQUEUEGETSTATE pfnWdfIoQueueGetState; PFN_WDFIOQUEUESTART pfnWdfIoQueueStart; @@ -346,51 +334,28 @@ typedef struct _WDFFUNCTIONS { PFN_WDFREQUESTREQUEUE pfnWdfRequestRequeue; PFN_WDFREQUESTSTOPACKNOWLEDGE pfnWdfRequestStopAcknowledge; PFN_WDFREQUESTWDMGETIRP pfnWdfRequestWdmGetIrp; - // PFN_WDFIORESOURCEREQUIREMENTSLISTSETSLOTNUMBER pfnWdfIoResourceRequirementsListSetSlotNumber; - // PFN_WDFIORESOURCEREQUIREMENTSLISTSETINTERFACETYPE pfnWdfIoResourceRequirementsListSetInterfaceType; - // PFN_WDFIORESOURCEREQUIREMENTSLISTAPPENDIORESLIST pfnWdfIoResourceRequirementsListAppendIoResList; - // PFN_WDFIORESOURCEREQUIREMENTSLISTINSERTIORESLIST pfnWdfIoResourceRequirementsListInsertIoResList; - // PFN_WDFIORESOURCEREQUIREMENTSLISTGETCOUNT pfnWdfIoResourceRequirementsListGetCount; - // PFN_WDFIORESOURCEREQUIREMENTSLISTGETIORESLIST pfnWdfIoResourceRequirementsListGetIoResList; - // PFN_WDFIORESOURCEREQUIREMENTSLISTREMOVE pfnWdfIoResourceRequirementsListRemove; - // PFN_WDFIORESOURCEREQUIREMENTSLISTREMOVEBYIORESLIST pfnWdfIoResourceRequirementsListRemoveByIoResList; - // PFN_WDFIORESOURCELISTCREATE pfnWdfIoResourceListCreate; - // PFN_WDFIORESOURCELISTAPPENDDESCRIPTOR pfnWdfIoResourceListAppendDescriptor; - // PFN_WDFIORESOURCELISTINSERTDESCRIPTOR pfnWdfIoResourceListInsertDescriptor; - // PFN_WDFIORESOURCELISTUPDATEDESCRIPTOR pfnWdfIoResourceListUpdateDescriptor; - // PFN_WDFIORESOURCELISTGETCOUNT pfnWdfIoResourceListGetCount; - // PFN_WDFIORESOURCELISTGETDESCRIPTOR pfnWdfIoResourceListGetDescriptor; - // PFN_WDFIORESOURCELISTREMOVE pfnWdfIoResourceListRemove; - // PFN_WDFIORESOURCELISTREMOVEBYDESCRIPTOR pfnWdfIoResourceListRemoveByDescriptor; - // PFN_WDFCMRESOURCELISTAPPENDDESCRIPTOR pfnWdfCmResourceListAppendDescriptor; - // PFN_WDFCMRESOURCELISTINSERTDESCRIPTOR pfnWdfCmResourceListInsertDescriptor; - // PFN_WDFCMRESOURCELISTGETCOUNT pfnWdfCmResourceListGetCount; - // PFN_WDFCMRESOURCELISTGETDESCRIPTOR pfnWdfCmResourceListGetDescriptor; - // PFN_WDFCMRESOURCELISTREMOVE pfnWdfCmResourceListRemove; - // PFN_WDFCMRESOURCELISTREMOVEBYDESCRIPTOR pfnWdfCmResourceListRemoveByDescriptor; - PFN_ROSWDFUNIMPLEMENTED pfnWdfIoResourceRequirementsListSetSlotNumber; - PFN_ROSWDFUNIMPLEMENTED pfnWdfIoResourceRequirementsListSetInterfaceType; - PFN_ROSWDFUNIMPLEMENTED pfnWdfIoResourceRequirementsListAppendIoResList; - PFN_ROSWDFUNIMPLEMENTED pfnWdfIoResourceRequirementsListInsertIoResList; - PFN_ROSWDFUNIMPLEMENTED pfnWdfIoResourceRequirementsListGetCount; - PFN_ROSWDFUNIMPLEMENTED pfnWdfIoResourceRequirementsListGetIoResList; - PFN_ROSWDFUNIMPLEMENTED pfnWdfIoResourceRequirementsListRemove; - PFN_ROSWDFUNIMPLEMENTED pfnWdfIoResourceRequirementsListRemoveByIoResList; - PFN_ROSWDFUNIMPLEMENTED pfnWdfIoResourceListCreate; - PFN_ROSWDFUNIMPLEMENTED pfnWdfIoResourceListAppendDescriptor; - PFN_ROSWDFUNIMPLEMENTED pfnWdfIoResourceListInsertDescriptor; - PFN_ROSWDFUNIMPLEMENTED pfnWdfIoResourceListUpdateDescriptor; - PFN_ROSWDFUNIMPLEMENTED pfnWdfIoResourceListGetCount; - PFN_ROSWDFUNIMPLEMENTED pfnWdfIoResourceListGetDescriptor; - PFN_ROSWDFUNIMPLEMENTED pfnWdfIoResourceListRemove; - PFN_ROSWDFUNIMPLEMENTED pfnWdfIoResourceListRemoveByDescriptor; - PFN_ROSWDFUNIMPLEMENTED pfnWdfCmResourceListAppendDescriptor; - PFN_ROSWDFUNIMPLEMENTED pfnWdfCmResourceListInsertDescriptor; - PFN_ROSWDFUNIMPLEMENTED pfnWdfCmResourceListGetCount; - PFN_ROSWDFUNIMPLEMENTED pfnWdfCmResourceListGetDescriptor; - PFN_ROSWDFUNIMPLEMENTED pfnWdfCmResourceListRemove; - PFN_ROSWDFUNIMPLEMENTED pfnWdfCmResourceListRemoveByDescriptor; - + PFN_WDFIORESOURCEREQUIREMENTSLISTSETSLOTNUMBER pfnWdfIoResourceRequirementsListSetSlotNumber; + PFN_WDFIORESOURCEREQUIREMENTSLISTSETINTERFACETYPE pfnWdfIoResourceRequirementsListSetInterfaceType; + PFN_WDFIORESOURCEREQUIREMENTSLISTAPPENDIORESLIST pfnWdfIoResourceRequirementsListAppendIoResList; + PFN_WDFIORESOURCEREQUIREMENTSLISTINSERTIORESLIST pfnWdfIoResourceRequirementsListInsertIoResList; + PFN_WDFIORESOURCEREQUIREMENTSLISTGETCOUNT pfnWdfIoResourceRequirementsListGetCount; + PFN_WDFIORESOURCEREQUIREMENTSLISTGETIORESLIST pfnWdfIoResourceRequirementsListGetIoResList; + PFN_WDFIORESOURCEREQUIREMENTSLISTREMOVE pfnWdfIoResourceRequirementsListRemove; + PFN_WDFIORESOURCEREQUIREMENTSLISTREMOVEBYIORESLIST pfnWdfIoResourceRequirementsListRemoveByIoResList; + PFN_WDFIORESOURCELISTCREATE pfnWdfIoResourceListCreate; + PFN_WDFIORESOURCELISTAPPENDDESCRIPTOR pfnWdfIoResourceListAppendDescriptor; + PFN_WDFIORESOURCELISTINSERTDESCRIPTOR pfnWdfIoResourceListInsertDescriptor; + PFN_WDFIORESOURCELISTUPDATEDESCRIPTOR pfnWdfIoResourceListUpdateDescriptor; + PFN_WDFIORESOURCELISTGETCOUNT pfnWdfIoResourceListGetCount; + PFN_WDFIORESOURCELISTGETDESCRIPTOR pfnWdfIoResourceListGetDescriptor; + PFN_WDFIORESOURCELISTREMOVE pfnWdfIoResourceListRemove; + PFN_WDFIORESOURCELISTREMOVEBYDESCRIPTOR pfnWdfIoResourceListRemoveByDescriptor; + PFN_WDFCMRESOURCELISTAPPENDDESCRIPTOR pfnWdfCmResourceListAppendDescriptor; + PFN_WDFCMRESOURCELISTINSERTDESCRIPTOR pfnWdfCmResourceListInsertDescriptor; + PFN_WDFCMRESOURCELISTGETCOUNT pfnWdfCmResourceListGetCount; + PFN_WDFCMRESOURCELISTGETDESCRIPTOR pfnWdfCmResourceListGetDescriptor; + PFN_WDFCMRESOURCELISTREMOVE pfnWdfCmResourceListRemove; + PFN_WDFCMRESOURCELISTREMOVEBYDESCRIPTOR pfnWdfCmResourceListRemoveByDescriptor; PFN_WDFSTRINGCREATE pfnWdfStringCreate; PFN_WDFSTRINGGETUNICODESTRING pfnWdfStringGetUnicodeString; PFN_WDFOBJECTACQUIRELOCK pfnWdfObjectAcquireLock; @@ -535,9 +500,7 @@ typedef struct _WDFFUNCTIONS {
PFN_WDFDEVICEREMOVEDEPENDENTUSAGEDEVICEOBJECT pfnWdfDeviceRemoveDependentUsageDeviceObject; PFN_WDFDEVICEGETSYSTEMPOWERACTION pfnWdfDeviceGetSystemPowerAction; - // PFN_WDFINTERRUPTSETEXTENDEDPOLICY pfnWdfInterruptSetExtendedPolicy; - PFN_ROSWDFUNIMPLEMENTED pfnWdfInterruptSetExtendedPolicy; - + PFN_WDFINTERRUPTSETEXTENDEDPOLICY pfnWdfInterruptSetExtendedPolicy; PFN_WDFIOQUEUEASSIGNFORWARDPROGRESSPOLICY pfnWdfIoQueueAssignForwardProgressPolicy; PFN_WDFPDOINITASSIGNCONTAINERID pfnWdfPdoInitAssignContainerID; PFN_WDFPDOINITALLOWFORWARDINGREQUESTTOPARENT pfnWdfPdoInitAllowForwardingRequestToParent; @@ -570,8 +533,6 @@ typedef struct _WDFFUNCTIONS { // PFN_WDFDMATRANSACTIONFREERESOURCES pfnWdfDmaTransactionFreeResources; // PFN_WDFDMATRANSACTIONCANCEL pfnWdfDmaTransactionCancel; // PFN_WDFDMATRANSACTIONWDMGETTRANSFERCONTEXT pfnWdfDmaTransactionWdmGetTransferContext; - // PFN_WDFINTERRUPTQUEUEWORKITEMFORISR pfnWdfInterruptQueueWorkItemForIsr; - // PFN_WDFINTERRUPTTRYTOACQUIRELOCK pfnWdfInterruptTryToAcquireLock; PFN_ROSWDFUNIMPLEMENTED pfnWdfDmaEnablerConfigureSystemProfile; PFN_ROSWDFUNIMPLEMENTED pfnWdfDmaTransactionInitializeUsingOffset; PFN_ROSWDFUNIMPLEMENTED pfnWdfDmaTransactionGetTransferInfo; @@ -583,9 +544,9 @@ typedef struct _WDFFUNCTIONS { PFN_ROSWDFUNIMPLEMENTED pfnWdfDmaTransactionFreeResources; PFN_ROSWDFUNIMPLEMENTED pfnWdfDmaTransactionCancel; PFN_ROSWDFUNIMPLEMENTED pfnWdfDmaTransactionWdmGetTransferContext; - PFN_ROSWDFUNIMPLEMENTED pfnWdfInterruptQueueWorkItemForIsr; - PFN_ROSWDFUNIMPLEMENTED pfnWdfInterruptTryToAcquireLock;
+ PFN_WDFINTERRUPTQUEUEWORKITEMFORISR pfnWdfInterruptQueueWorkItemForIsr; + PFN_WDFINTERRUPTTRYTOACQUIRELOCK pfnWdfInterruptTryToAcquireLock; PFN_WDFIOQUEUESTOPANDPURGE pfnWdfIoQueueStopAndPurge; PFN_WDFIOQUEUESTOPANDPURGESYNCHRONOUSLY pfnWdfIoQueueStopAndPurgeSynchronously; PFN_WDFIOTARGETPURGE pfnWdfIoTargetPurge; @@ -601,13 +562,11 @@ typedef struct _WDFFUNCTIONS { PFN_WDFDEVICEWDMASSIGNPOWERFRAMEWORKSETTINGS pfnWdfDeviceWdmAssignPowerFrameworkSettings; // PFN_WDFDMATRANSACTIONSTOPSYSTEMTRANSFER pfnWdfDmaTransactionStopSystemTransfer; // PFN_WDFCXVERIFIERKEBUGCHECK pfnWdfCxVerifierKeBugCheck; - // PFN_WDFINTERRUPTREPORTACTIVE pfnWdfInterruptReportActive; - // PFN_WDFINTERRUPTREPORTINACTIVE pfnWdfInterruptReportInactive; PFN_ROSWDFUNIMPLEMENTED pfnWdfDmaTransactionStopSystemTransfer; PFN_ROSWDFUNIMPLEMENTED pfnWdfCxVerifierKeBugCheck; - PFN_ROSWDFUNIMPLEMENTED pfnWdfInterruptReportActive; - PFN_ROSWDFUNIMPLEMENTED pfnWdfInterruptReportInactive;
+ PFN_WDFINTERRUPTREPORTACTIVE pfnWdfInterruptReportActive; + PFN_WDFINTERRUPTREPORTINACTIVE pfnWdfInterruptReportInactive; PFN_WDFDEVICEINITSETRELEASEHARDWAREORDERONFAILURE pfnWdfDeviceInitSetReleaseHardwareOrderOnFailure; // PFN_WDFGETTRIAGEINFO pfnWdfGetTriageInfo; PFN_ROSWDFUNIMPLEMENTED pfnWdfGetTriageInfo; @@ -7259,29 +7218,17 @@ WDFVERSION WdfVersion = { WDFEXPORT(WdfFileObjectGetFlags), WDFEXPORT(WdfFileObjectGetDevice), WDFEXPORT(WdfFileObjectWdmGetFileObject), - // WDFEXPORT(WdfInterruptCreate), - // WDFEXPORT(WdfInterruptQueueDpcForIsr), - // WDFEXPORT(WdfInterruptSynchronize), - // WDFEXPORT(WdfInterruptAcquireLock), - // WDFEXPORT(WdfInterruptReleaseLock), - // WDFEXPORT(WdfInterruptEnable), - // WDFEXPORT(WdfInterruptDisable), - // WDFEXPORT(WdfInterruptWdmGetInterrupt), - // WDFEXPORT(WdfInterruptGetInfo), - // WDFEXPORT(WdfInterruptSetPolicy), - // WDFEXPORT(WdfInterruptGetDevice), - WdfApiNotImplemented, - WdfApiNotImplemented, - WdfApiNotImplemented, - WdfApiNotImplemented, - WdfApiNotImplemented, - WdfApiNotImplemented, - WdfApiNotImplemented, - WdfApiNotImplemented, - WdfApiNotImplemented, - WdfApiNotImplemented, - WdfApiNotImplemented, - + WDFEXPORT(WdfInterruptCreate), + WDFEXPORT(WdfInterruptQueueDpcForIsr), + WDFEXPORT(WdfInterruptSynchronize), + WDFEXPORT(WdfInterruptAcquireLock), + WDFEXPORT(WdfInterruptReleaseLock), + WDFEXPORT(WdfInterruptEnable), + WDFEXPORT(WdfInterruptDisable), + WDFEXPORT(WdfInterruptWdmGetInterrupt), + WDFEXPORT(WdfInterruptGetInfo), + WDFEXPORT(WdfInterruptSetPolicy), + WDFEXPORT(WdfInterruptGetDevice), WDFEXPORT(WdfIoQueueCreate), WDFEXPORT(WdfIoQueueGetState), WDFEXPORT(WdfIoQueueStart), @@ -7416,51 +7363,28 @@ WDFVERSION WdfVersion = { WDFEXPORT(WdfRequestRequeue), WDFEXPORT(WdfRequestStopAcknowledge), WDFEXPORT(WdfRequestWdmGetIrp), - // WDFEXPORT(WdfIoResourceRequirementsListSetSlotNumber), - // WDFEXPORT(WdfIoResourceRequirementsListSetInterfaceType), - // WDFEXPORT(WdfIoResourceRequirementsListAppendIoResList), - // WDFEXPORT(WdfIoResourceRequirementsListInsertIoResList), - // WDFEXPORT(WdfIoResourceRequirementsListGetCount), - // WDFEXPORT(WdfIoResourceRequirementsListGetIoResList), - // WDFEXPORT(WdfIoResourceRequirementsListRemove), - // WDFEXPORT(WdfIoResourceRequirementsListRemoveByIoResList), - // WDFEXPORT(WdfIoResourceListCreate), - // WDFEXPORT(WdfIoResourceListAppendDescriptor), - // WDFEXPORT(WdfIoResourceListInsertDescriptor), - // WDFEXPORT(WdfIoResourceListUpdateDescriptor), - // WDFEXPORT(WdfIoResourceListGetCount), - // WDFEXPORT(WdfIoResourceListGetDescriptor), - // WDFEXPORT(WdfIoResourceListRemove), - // WDFEXPORT(WdfIoResourceListRemoveByDescriptor), - // WDFEXPORT(WdfCmResourceListAppendDescriptor), - // WDFEXPORT(WdfCmResourceListInsertDescriptor), - // WDFEXPORT(WdfCmResourceListGetCount), - // WDFEXPORT(WdfCmResourceListGetDescriptor), - // WDFEXPORT(WdfCmResourceListRemove), - // WDFEXPORT(WdfCmResourceListRemoveByDescriptor), - WdfApiNotImplemented, - WdfApiNotImplemented, - WdfApiNotImplemented, - WdfApiNotImplemented, - WdfApiNotImplemented, - WdfApiNotImplemented, - WdfApiNotImplemented, - WdfApiNotImplemented, - WdfApiNotImplemented, - WdfApiNotImplemented, - WdfApiNotImplemented, - WdfApiNotImplemented, - WdfApiNotImplemented, - WdfApiNotImplemented, - WdfApiNotImplemented, - WdfApiNotImplemented, - WdfApiNotImplemented, - WdfApiNotImplemented, - WdfApiNotImplemented, - WdfApiNotImplemented, - WdfApiNotImplemented, - WdfApiNotImplemented, - + WDFEXPORT(WdfIoResourceRequirementsListSetSlotNumber), + WDFEXPORT(WdfIoResourceRequirementsListSetInterfaceType), + WDFEXPORT(WdfIoResourceRequirementsListAppendIoResList), + WDFEXPORT(WdfIoResourceRequirementsListInsertIoResList), + WDFEXPORT(WdfIoResourceRequirementsListGetCount), + WDFEXPORT(WdfIoResourceRequirementsListGetIoResList), + WDFEXPORT(WdfIoResourceRequirementsListRemove), + WDFEXPORT(WdfIoResourceRequirementsListRemoveByIoResList), + WDFEXPORT(WdfIoResourceListCreate), + WDFEXPORT(WdfIoResourceListAppendDescriptor), + WDFEXPORT(WdfIoResourceListInsertDescriptor), + WDFEXPORT(WdfIoResourceListUpdateDescriptor), + WDFEXPORT(WdfIoResourceListGetCount), + WDFEXPORT(WdfIoResourceListGetDescriptor), + WDFEXPORT(WdfIoResourceListRemove), + WDFEXPORT(WdfIoResourceListRemoveByDescriptor), + WDFEXPORT(WdfCmResourceListAppendDescriptor), + WDFEXPORT(WdfCmResourceListInsertDescriptor), + WDFEXPORT(WdfCmResourceListGetCount), + WDFEXPORT(WdfCmResourceListGetDescriptor), + WDFEXPORT(WdfCmResourceListRemove), + WDFEXPORT(WdfCmResourceListRemoveByDescriptor), WDFEXPORT(WdfStringCreate), WDFEXPORT(WdfStringGetUnicodeString), WDFEXPORT(WdfObjectAcquireLock), @@ -7605,9 +7529,7 @@ WDFVERSION WdfVersion = {
WDFEXPORT(WdfDeviceRemoveDependentUsageDeviceObject), WDFEXPORT(WdfDeviceGetSystemPowerAction), - // WDFEXPORT(WdfInterruptSetExtendedPolicy), - WdfApiNotImplemented, - + WDFEXPORT(WdfInterruptSetExtendedPolicy), WDFEXPORT(WdfIoQueueAssignForwardProgressPolicy), WDFEXPORT(WdfPdoInitAssignContainerID), WDFEXPORT(WdfPdoInitAllowForwardingRequestToParent), @@ -7640,10 +7562,6 @@ WDFVERSION WdfVersion = { // WDFEXPORT(WdfDmaTransactionFreeResources), // WDFEXPORT(WdfDmaTransactionCancel), // WDFEXPORT(WdfDmaTransactionWdmGetTransferContext), - // WDFEXPORT(WdfInterruptQueueWorkItemForIsr), - // WDFEXPORT(WdfInterruptTryToAcquireLock), - WdfApiNotImplemented, - WdfApiNotImplemented, WdfApiNotImplemented, WdfApiNotImplemented, WdfApiNotImplemented, @@ -7656,6 +7574,8 @@ WDFVERSION WdfVersion = { WdfApiNotImplemented, WdfApiNotImplemented,
+ WDFEXPORT(WdfInterruptQueueWorkItemForIsr), + WDFEXPORT(WdfInterruptTryToAcquireLock), WDFEXPORT(WdfIoQueueStopAndPurge), WDFEXPORT(WdfIoQueueStopAndPurgeSynchronously), WDFEXPORT(WdfIoTargetPurge), @@ -7671,13 +7591,11 @@ WDFVERSION WdfVersion = { WDFEXPORT(WdfDeviceWdmAssignPowerFrameworkSettings), // WDFEXPORT(WdfDmaTransactionStopSystemTransfer), // WDFEXPORT(WdfCxVerifierKeBugCheck), - // WDFEXPORT(WdfInterruptReportActive), - // WDFEXPORT(WdfInterruptReportInactive), - WdfApiNotImplemented, - WdfApiNotImplemented, WdfApiNotImplemented, WdfApiNotImplemented,
+ WDFEXPORT(WdfInterruptReportActive), + WDFEXPORT(WdfInterruptReportInactive), WDFEXPORT(WdfDeviceInitSetReleaseHardwareOrderOnFailure), // WDFEXPORT(WdfGetTriageInfo), WdfApiNotImplemented, diff --git a/sdk/lib/drivers/wdf/shared/irphandlers/pnp/fxinterruptapi.cpp b/sdk/lib/drivers/wdf/shared/irphandlers/pnp/fxinterruptapi.cpp index efdbc17c4e3..839bc9418d6 100644 --- a/sdk/lib/drivers/wdf/shared/irphandlers/pnp/fxinterruptapi.cpp +++ b/sdk/lib/drivers/wdf/shared/irphandlers/pnp/fxinterruptapi.cpp @@ -190,6 +190,7 @@ extern "C" { _Must_inspect_result_ __drv_maxIRQL(DISPATCH_LEVEL) NTSTATUS +STDCALL WDFEXPORT(WdfInterruptCreate)( __in PWDF_DRIVER_GLOBALS DriverGlobals, @@ -618,6 +619,7 @@ Returns: }
BOOLEAN +STDCALL WDFEXPORT(WdfInterruptQueueDpcForIsr)( __in PWDF_DRIVER_GLOBALS DriverGlobals, @@ -657,6 +659,7 @@ Returns: }
BOOLEAN +STDCALL WDFEXPORT(WdfInterruptQueueWorkItemForIsr)( __in PWDF_DRIVER_GLOBALS DriverGlobals, @@ -698,6 +701,7 @@ Returns:
__drv_maxIRQL(DISPATCH_LEVEL) BOOLEAN +STDCALL WDFEXPORT(WdfInterruptSynchronize)( __in PWDF_DRIVER_GLOBALS DriverGlobals, @@ -755,6 +759,7 @@ Returns:
__drv_maxIRQL(DISPATCH_LEVEL) VOID +STDCALL WDFEXPORT(WdfInterruptAcquireLock)( __in PWDF_DRIVER_GLOBALS DriverGlobals, @@ -802,6 +807,7 @@ Returns:
__drv_maxIRQL(DISPATCH_LEVEL + 1) VOID +STDCALL WDFEXPORT(WdfInterruptReleaseLock)( __in PWDF_DRIVER_GLOBALS DriverGlobals, @@ -849,6 +855,7 @@ Returns:
__drv_maxIRQL(PASSIVE_LEVEL) VOID +STDCALL WDFEXPORT(WdfInterruptEnable)( __in PWDF_DRIVER_GLOBALS DriverGlobals, @@ -895,6 +902,7 @@ Returns:
__drv_maxIRQL(PASSIVE_LEVEL) VOID +STDCALL WDFEXPORT(WdfInterruptDisable)( __in PWDF_DRIVER_GLOBALS DriverGlobals, @@ -941,6 +949,7 @@ Returns:
_Must_inspect_result_ struct _KINTERRUPT* +STDCALL WDFEXPORT(WdfInterruptWdmGetInterrupt)( __in PWDF_DRIVER_GLOBALS DriverGlobals, @@ -977,6 +986,7 @@ Returns:
__drv_maxIRQL(DISPATCH_LEVEL) VOID +STDCALL WDFEXPORT(WdfInterruptGetInfo)( __in PWDF_DRIVER_GLOBALS DriverGlobals, @@ -1037,6 +1047,7 @@ Returns: }
WDFDEVICE +STDCALL WDFEXPORT(WdfInterruptGetDevice)( __in PWDF_DRIVER_GLOBALS DriverGlobals, @@ -1075,6 +1086,7 @@ Returns:
__drv_maxIRQL(DISPATCH_LEVEL) VOID +STDCALL WDFEXPORT(WdfInterruptSetPolicy)( __in PWDF_DRIVER_GLOBALS DriverGlobals, @@ -1144,6 +1156,7 @@ Returns:
__drv_maxIRQL(DISPATCH_LEVEL) VOID +STDCALL WDFEXPORT(WdfInterruptSetExtendedPolicy)( __in PWDF_DRIVER_GLOBALS DriverGlobals, @@ -1236,6 +1249,7 @@ _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) _Post_satisfies_(return == 1 || return == 0) BOOLEAN +STDCALL WDFEXPORT(WdfInterruptTryToAcquireLock)( __in PWDF_DRIVER_GLOBALS DriverGlobals, @@ -1297,6 +1311,7 @@ Returns:
__drv_maxIRQL(DISPATCH_LEVEL) VOID +STDCALL WDFEXPORT(WdfInterruptReportActive)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, @@ -1342,6 +1357,7 @@ Returns:
__drv_maxIRQL(DISPATCH_LEVEL) VOID +STDCALL WDFEXPORT(WdfInterruptReportInactive)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, diff --git a/sdk/lib/drivers/wdf/shared/support/fxresourceapi.cpp b/sdk/lib/drivers/wdf/shared/support/fxresourceapi.cpp index 6d966d0855d..50f18af9e17 100644 --- a/sdk/lib/drivers/wdf/shared/support/fxresourceapi.cpp +++ b/sdk/lib/drivers/wdf/shared/support/fxresourceapi.cpp @@ -35,6 +35,7 @@ extern "C" {
__drv_maxIRQL(DISPATCH_LEVEL) VOID +STDCALL WDFEXPORT(WdfIoResourceRequirementsListSetSlotNumber)( __in PWDF_DRIVER_GLOBALS DriverGlobals, @@ -73,6 +74,7 @@ Return Value:
__drv_maxIRQL(DISPATCH_LEVEL) VOID +STDCALL WDFEXPORT(WdfIoResourceRequirementsListSetInterfaceType)( __in PWDF_DRIVER_GLOBALS DriverGlobals, @@ -177,6 +179,7 @@ Return Value: _Must_inspect_result_ __drv_maxIRQL(DISPATCH_LEVEL) NTSTATUS +STDCALL WDFEXPORT(WdfIoResourceRequirementsListInsertIoResList)( __in PWDF_DRIVER_GLOBALS DriverGlobals, @@ -213,6 +216,7 @@ Return Value: _Must_inspect_result_ __drv_maxIRQL(DISPATCH_LEVEL) NTSTATUS +STDCALL WDFEXPORT(WdfIoResourceRequirementsListAppendIoResList)( __in PWDF_DRIVER_GLOBALS DriverGlobals, @@ -246,6 +250,7 @@ Return Value:
__drv_maxIRQL(DISPATCH_LEVEL) ULONG +STDCALL WDFEXPORT(WdfIoResourceRequirementsListGetCount)( __in PWDF_DRIVER_GLOBALS DriverGlobals, @@ -285,6 +290,7 @@ Return Value:
__drv_maxIRQL(DISPATCH_LEVEL) WDFIORESLIST +STDCALL WDFEXPORT(WdfIoResourceRequirementsListGetIoResList)( __in PWDF_DRIVER_GLOBALS DriverGlobals, @@ -331,6 +337,7 @@ Return Value:
__drv_maxIRQL(DISPATCH_LEVEL) VOID +STDCALL WDFEXPORT(WdfIoResourceRequirementsListRemove)( __in PWDF_DRIVER_GLOBALS DriverGlobals, @@ -376,6 +383,7 @@ Return Value:
__drv_maxIRQL(DISPATCH_LEVEL) VOID +STDCALL WDFEXPORT(WdfIoResourceRequirementsListRemoveByIoResList)( __in PWDF_DRIVER_GLOBALS DriverGlobals, @@ -456,6 +464,7 @@ Return Value: _Must_inspect_result_ __drv_maxIRQL(DISPATCH_LEVEL) NTSTATUS +STDCALL WDFEXPORT(WdfIoResourceListCreate)( __in PWDF_DRIVER_GLOBALS DriverGlobals, @@ -604,6 +613,7 @@ Return Value: _Must_inspect_result_ __drv_maxIRQL(DISPATCH_LEVEL) NTSTATUS +STDCALL WDFEXPORT(WdfIoResourceListInsertDescriptor)( __in PWDF_DRIVER_GLOBALS DriverGlobals, @@ -640,6 +650,7 @@ Return Value: _Must_inspect_result_ __drv_maxIRQL(DISPATCH_LEVEL) NTSTATUS +STDCALL WDFEXPORT(WdfIoResourceListAppendDescriptor)( __in PWDF_DRIVER_GLOBALS DriverGlobals, @@ -671,6 +682,7 @@ Return Value:
__drv_maxIRQL(DISPATCH_LEVEL) VOID +STDCALL WDFEXPORT(WdfIoResourceListUpdateDescriptor)( __in PWDF_DRIVER_GLOBALS DriverGlobals, @@ -746,6 +758,7 @@ Return Value:
__drv_maxIRQL(DISPATCH_LEVEL) ULONG +STDCALL WDFEXPORT(WdfIoResourceListGetCount)( __in PWDF_DRIVER_GLOBALS DriverGlobals, @@ -784,6 +797,7 @@ Return Value:
__drv_maxIRQL(DISPATCH_LEVEL) PIO_RESOURCE_DESCRIPTOR +STDCALL WDFEXPORT(WdfIoResourceListGetDescriptor)( __in PWDF_DRIVER_GLOBALS DriverGlobals, @@ -838,6 +852,7 @@ Return Value:
__drv_maxIRQL(DISPATCH_LEVEL) VOID +STDCALL WDFEXPORT(WdfIoResourceListRemove)( __in PWDF_DRIVER_GLOBALS DriverGlobals, @@ -892,6 +907,7 @@ Return Value:
__drv_maxIRQL(DISPATCH_LEVEL) VOID +STDCALL WDFEXPORT(WdfIoResourceListRemoveByDescriptor)( __in PWDF_DRIVER_GLOBALS DriverGlobals, @@ -1041,6 +1057,7 @@ Return Value: _Must_inspect_result_ __drv_maxIRQL(DISPATCH_LEVEL) NTSTATUS +STDCALL WDFEXPORT(WdfCmResourceListInsertDescriptor)( __in PWDF_DRIVER_GLOBALS DriverGlobals, @@ -1079,6 +1096,7 @@ Return Value: _Must_inspect_result_ __drv_maxIRQL(DISPATCH_LEVEL) NTSTATUS +STDCALL WDFEXPORT(WdfCmResourceListAppendDescriptor)( __in PWDF_DRIVER_GLOBALS DriverGlobals, @@ -1112,6 +1130,7 @@ Return Value:
__drv_maxIRQL(DISPATCH_LEVEL) ULONG +STDCALL WDFEXPORT(WdfCmResourceListGetCount)( __in PWDF_DRIVER_GLOBALS DriverGlobals, @@ -1144,6 +1163,7 @@ Return Value:
__drv_maxIRQL(DISPATCH_LEVEL) PCM_PARTIAL_RESOURCE_DESCRIPTOR +STDCALL WDFEXPORT(WdfCmResourceListGetDescriptor)( __in PWDF_DRIVER_GLOBALS DriverGlobals, @@ -1181,6 +1201,7 @@ Return Value:
__drv_maxIRQL(DISPATCH_LEVEL) VOID +STDCALL WDFEXPORT(WdfCmResourceListRemove)( __in PWDF_DRIVER_GLOBALS DriverGlobals, @@ -1227,6 +1248,7 @@ Return Value:
__drv_maxIRQL(DISPATCH_LEVEL) VOID +STDCALL WDFEXPORT(WdfCmResourceListRemoveByDescriptor)( __in PWDF_DRIVER_GLOBALS DriverGlobals,