https://git.reactos.org/?p=reactos.git;a=commitdiff;h=7c734db034ac93a85fa35…
commit 7c734db034ac93a85fa352ca948efcdd001e5171
Author: Victor Perevertkin <victor.perevertkin(a)reactos.org>
AuthorDate: Wed Nov 4 19:34:14 2020 +0300
Commit: Victor Perevertkin <victor.perevertkin(a)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,