[WDF] Enable Resource and Interrupt APIs
authorVictor Perevertkin <victor.perevertkin@reactos.org>
Wed, 4 Nov 2020 16:34:14 +0000 (19:34 +0300)
committerVictor Perevertkin <victor.perevertkin@reactos.org>
Wed, 4 Nov 2020 16:34:14 +0000 (19:34 +0300)
sdk/lib/drivers/wdf/CMakeLists.txt
sdk/lib/drivers/wdf/kmdf/inc/private/fxdynamics.h
sdk/lib/drivers/wdf/shared/irphandlers/pnp/fxinterruptapi.cpp
sdk/lib/drivers/wdf/shared/support/fxresourceapi.cpp

index 8b4efe8..cfb4718 100644 (file)
@@ -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
index fcf73d3..9d2c75d 100644 (file)
@@ -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,
index efdbc17..839bc94 100644 (file)
@@ -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,
index 6d966d0..50f18af 100644 (file)
@@ -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,