--- /dev/null
+/*++
+
+Module Name: FxDynamics.h
+
+Abstract:
+ Generated header for WDF APIs
+
+Environment:
+ kernel mode only
+
+ Warning: manual changes to this file will be lost.
+--*/
+
+#ifndef _FXDYNAMICS_H_
+#define _FXDYNAMICS_H_
+
+
+typedef struct _WDFFUNCTIONS {
+
+ PFN_WDFCHILDLISTCREATE pfnWdfChildListCreate;
+ PFN_WDFCHILDLISTGETDEVICE pfnWdfChildListGetDevice;
+ PFN_WDFCHILDLISTRETRIEVEPDO pfnWdfChildListRetrievePdo;
+ PFN_WDFCHILDLISTRETRIEVEADDRESSDESCRIPTION pfnWdfChildListRetrieveAddressDescription;
+ PFN_WDFCHILDLISTBEGINSCAN pfnWdfChildListBeginScan;
+ PFN_WDFCHILDLISTENDSCAN pfnWdfChildListEndScan;
+ PFN_WDFCHILDLISTBEGINITERATION pfnWdfChildListBeginIteration;
+ PFN_WDFCHILDLISTRETRIEVENEXTDEVICE pfnWdfChildListRetrieveNextDevice;
+ PFN_WDFCHILDLISTENDITERATION pfnWdfChildListEndIteration;
+ PFN_WDFCHILDLISTADDORUPDATECHILDDESCRIPTIONASPRESENT pfnWdfChildListAddOrUpdateChildDescriptionAsPresent;
+ PFN_WDFCHILDLISTUPDATECHILDDESCRIPTIONASMISSING pfnWdfChildListUpdateChildDescriptionAsMissing;
+ PFN_WDFCHILDLISTUPDATEALLCHILDDESCRIPTIONSASPRESENT pfnWdfChildListUpdateAllChildDescriptionsAsPresent;
+ PFN_WDFCHILDLISTREQUESTCHILDEJECT pfnWdfChildListRequestChildEject;
+ PFN_WDFCOLLECTIONCREATE pfnWdfCollectionCreate;
+ PFN_WDFCOLLECTIONGETCOUNT pfnWdfCollectionGetCount;
+ PFN_WDFCOLLECTIONADD pfnWdfCollectionAdd;
+ PFN_WDFCOLLECTIONREMOVE pfnWdfCollectionRemove;
+ PFN_WDFCOLLECTIONREMOVEITEM pfnWdfCollectionRemoveItem;
+ PFN_WDFCOLLECTIONGETITEM pfnWdfCollectionGetItem;
+ PFN_WDFCOLLECTIONGETFIRSTITEM pfnWdfCollectionGetFirstItem;
+ PFN_WDFCOLLECTIONGETLASTITEM pfnWdfCollectionGetLastItem;
+ PFN_WDFCOMMONBUFFERCREATE pfnWdfCommonBufferCreate;
+ PFN_WDFCOMMONBUFFERGETALIGNEDVIRTUALADDRESS pfnWdfCommonBufferGetAlignedVirtualAddress;
+ PFN_WDFCOMMONBUFFERGETALIGNEDLOGICALADDRESS pfnWdfCommonBufferGetAlignedLogicalAddress;
+ PFN_WDFCOMMONBUFFERGETLENGTH pfnWdfCommonBufferGetLength;
+ PFN_WDFCONTROLDEVICEINITALLOCATE pfnWdfControlDeviceInitAllocate;
+ PFN_WDFCONTROLDEVICEINITSETSHUTDOWNNOTIFICATION pfnWdfControlDeviceInitSetShutdownNotification;
+ PFN_WDFCONTROLFINISHINITIALIZING pfnWdfControlFinishInitializing;
+ PFN_WDFDEVICEGETDEVICESTATE pfnWdfDeviceGetDeviceState;
+ PFN_WDFDEVICESETDEVICESTATE pfnWdfDeviceSetDeviceState;
+ PFN_WDFWDMDEVICEGETWDFDEVICEHANDLE pfnWdfWdmDeviceGetWdfDeviceHandle;
+ PFN_WDFDEVICEWDMGETDEVICEOBJECT pfnWdfDeviceWdmGetDeviceObject;
+ PFN_WDFDEVICEWDMGETATTACHEDDEVICE pfnWdfDeviceWdmGetAttachedDevice;
+ PFN_WDFDEVICEWDMGETPHYSICALDEVICE pfnWdfDeviceWdmGetPhysicalDevice;
+ PFN_WDFDEVICEWDMDISPATCHPREPROCESSEDIRP pfnWdfDeviceWdmDispatchPreprocessedIrp;
+ PFN_WDFDEVICEADDDEPENDENTUSAGEDEVICEOBJECT pfnWdfDeviceAddDependentUsageDeviceObject;
+ PFN_WDFDEVICEADDREMOVALRELATIONSPHYSICALDEVICE pfnWdfDeviceAddRemovalRelationsPhysicalDevice;
+ PFN_WDFDEVICEREMOVEREMOVALRELATIONSPHYSICALDEVICE pfnWdfDeviceRemoveRemovalRelationsPhysicalDevice;
+ PFN_WDFDEVICECLEARREMOVALRELATIONSDEVICES pfnWdfDeviceClearRemovalRelationsDevices;
+ PFN_WDFDEVICEGETDRIVER pfnWdfDeviceGetDriver;
+ PFN_WDFDEVICERETRIEVEDEVICENAME pfnWdfDeviceRetrieveDeviceName;
+ PFN_WDFDEVICEASSIGNMOFRESOURCENAME pfnWdfDeviceAssignMofResourceName;
+ PFN_WDFDEVICEGETIOTARGET pfnWdfDeviceGetIoTarget;
+ PFN_WDFDEVICEGETDEVICEPNPSTATE pfnWdfDeviceGetDevicePnpState;
+ PFN_WDFDEVICEGETDEVICEPOWERSTATE pfnWdfDeviceGetDevicePowerState;
+ PFN_WDFDEVICEGETDEVICEPOWERPOLICYSTATE pfnWdfDeviceGetDevicePowerPolicyState;
+ PFN_WDFDEVICEASSIGNS0IDLESETTINGS pfnWdfDeviceAssignS0IdleSettings;
+ PFN_WDFDEVICEASSIGNSXWAKESETTINGS pfnWdfDeviceAssignSxWakeSettings;
+ PFN_WDFDEVICEOPENREGISTRYKEY pfnWdfDeviceOpenRegistryKey;
+ PFN_WDFDEVICESETSPECIALFILESUPPORT pfnWdfDeviceSetSpecialFileSupport;
+ PFN_WDFDEVICESETCHARACTERISTICS pfnWdfDeviceSetCharacteristics;
+ PFN_WDFDEVICEGETCHARACTERISTICS pfnWdfDeviceGetCharacteristics;
+ PFN_WDFDEVICEGETALIGNMENTREQUIREMENT pfnWdfDeviceGetAlignmentRequirement;
+ PFN_WDFDEVICESETALIGNMENTREQUIREMENT pfnWdfDeviceSetAlignmentRequirement;
+ PFN_WDFDEVICEINITFREE pfnWdfDeviceInitFree;
+ PFN_WDFDEVICEINITSETPNPPOWEREVENTCALLBACKS pfnWdfDeviceInitSetPnpPowerEventCallbacks;
+ PFN_WDFDEVICEINITSETPOWERPOLICYEVENTCALLBACKS pfnWdfDeviceInitSetPowerPolicyEventCallbacks;
+ PFN_WDFDEVICEINITSETPOWERPOLICYOWNERSHIP pfnWdfDeviceInitSetPowerPolicyOwnership;
+ PFN_WDFDEVICEINITREGISTERPNPSTATECHANGECALLBACK pfnWdfDeviceInitRegisterPnpStateChangeCallback;
+ PFN_WDFDEVICEINITREGISTERPOWERSTATECHANGECALLBACK pfnWdfDeviceInitRegisterPowerStateChangeCallback;
+ PFN_WDFDEVICEINITREGISTERPOWERPOLICYSTATECHANGECALLBACK pfnWdfDeviceInitRegisterPowerPolicyStateChangeCallback;
+ PFN_WDFDEVICEINITSETIOTYPE pfnWdfDeviceInitSetIoType;
+ PFN_WDFDEVICEINITSETEXCLUSIVE pfnWdfDeviceInitSetExclusive;
+ PFN_WDFDEVICEINITSETPOWERNOTPAGEABLE pfnWdfDeviceInitSetPowerNotPageable;
+ PFN_WDFDEVICEINITSETPOWERPAGEABLE pfnWdfDeviceInitSetPowerPageable;
+ PFN_WDFDEVICEINITSETPOWERINRUSH pfnWdfDeviceInitSetPowerInrush;
+ PFN_WDFDEVICEINITSETDEVICETYPE pfnWdfDeviceInitSetDeviceType;
+ PFN_WDFDEVICEINITASSIGNNAME pfnWdfDeviceInitAssignName;
+ PFN_WDFDEVICEINITASSIGNSDDLSTRING pfnWdfDeviceInitAssignSDDLString;
+ PFN_WDFDEVICEINITSETDEVICECLASS pfnWdfDeviceInitSetDeviceClass;
+ PFN_WDFDEVICEINITSETCHARACTERISTICS pfnWdfDeviceInitSetCharacteristics;
+ PFN_WDFDEVICEINITSETFILEOBJECTCONFIG pfnWdfDeviceInitSetFileObjectConfig;
+ PFN_WDFDEVICEINITSETREQUESTATTRIBUTES pfnWdfDeviceInitSetRequestAttributes;
+ PFN_WDFDEVICEINITASSIGNWDMIRPPREPROCESSCALLBACK pfnWdfDeviceInitAssignWdmIrpPreprocessCallback;
+ PFN_WDFDEVICEINITSETIOINCALLERCONTEXTCALLBACK pfnWdfDeviceInitSetIoInCallerContextCallback;
+ PFN_WDFDEVICECREATE pfnWdfDeviceCreate;
+ PFN_WDFDEVICESETSTATICSTOPREMOVE pfnWdfDeviceSetStaticStopRemove;
+ PFN_WDFDEVICECREATEDEVICEINTERFACE pfnWdfDeviceCreateDeviceInterface;
+ PFN_WDFDEVICESETDEVICEINTERFACESTATE pfnWdfDeviceSetDeviceInterfaceState;
+ PFN_WDFDEVICERETRIEVEDEVICEINTERFACESTRING pfnWdfDeviceRetrieveDeviceInterfaceString;
+ PFN_WDFDEVICECREATESYMBOLICLINK pfnWdfDeviceCreateSymbolicLink;
+ PFN_WDFDEVICEQUERYPROPERTY pfnWdfDeviceQueryProperty;
+ PFN_WDFDEVICEALLOCANDQUERYPROPERTY pfnWdfDeviceAllocAndQueryProperty;
+ PFN_WDFDEVICESETPNPCAPABILITIES pfnWdfDeviceSetPnpCapabilities;
+ PFN_WDFDEVICESETPOWERCAPABILITIES pfnWdfDeviceSetPowerCapabilities;
+ PFN_WDFDEVICESETBUSINFORMATIONFORCHILDREN pfnWdfDeviceSetBusInformationForChildren;
+ PFN_WDFDEVICEINDICATEWAKESTATUS pfnWdfDeviceIndicateWakeStatus;
+ PFN_WDFDEVICESETFAILED pfnWdfDeviceSetFailed;
+ PFN_WDFDEVICESTOPIDLENOTRACK pfnWdfDeviceStopIdleNoTrack;
+ PFN_WDFDEVICERESUMEIDLENOTRACK pfnWdfDeviceResumeIdleNoTrack;
+ PFN_WDFDEVICEGETFILEOBJECT pfnWdfDeviceGetFileObject;
+ PFN_WDFDEVICEENQUEUEREQUEST pfnWdfDeviceEnqueueRequest;
+ PFN_WDFDEVICEGETDEFAULTQUEUE pfnWdfDeviceGetDefaultQueue;
+ PFN_WDFDEVICECONFIGUREREQUESTDISPATCHING pfnWdfDeviceConfigureRequestDispatching;
+ PFN_WDFDMAENABLERCREATE pfnWdfDmaEnablerCreate;
+ PFN_WDFDMAENABLERGETMAXIMUMLENGTH pfnWdfDmaEnablerGetMaximumLength;
+ PFN_WDFDMAENABLERGETMAXIMUMSCATTERGATHERELEMENTS pfnWdfDmaEnablerGetMaximumScatterGatherElements;
+ PFN_WDFDMAENABLERSETMAXIMUMSCATTERGATHERELEMENTS pfnWdfDmaEnablerSetMaximumScatterGatherElements;
+ PFN_WDFDMATRANSACTIONCREATE pfnWdfDmaTransactionCreate;
+ PFN_WDFDMATRANSACTIONINITIALIZE pfnWdfDmaTransactionInitialize;
+ PFN_WDFDMATRANSACTIONINITIALIZEUSINGREQUEST pfnWdfDmaTransactionInitializeUsingRequest;
+ PFN_WDFDMATRANSACTIONEXECUTE pfnWdfDmaTransactionExecute;
+ PFN_WDFDMATRANSACTIONRELEASE pfnWdfDmaTransactionRelease;
+ PFN_WDFDMATRANSACTIONDMACOMPLETED pfnWdfDmaTransactionDmaCompleted;
+ PFN_WDFDMATRANSACTIONDMACOMPLETEDWITHLENGTH pfnWdfDmaTransactionDmaCompletedWithLength;
+ PFN_WDFDMATRANSACTIONDMACOMPLETEDFINAL pfnWdfDmaTransactionDmaCompletedFinal;
+ PFN_WDFDMATRANSACTIONGETBYTESTRANSFERRED pfnWdfDmaTransactionGetBytesTransferred;
+ PFN_WDFDMATRANSACTIONSETMAXIMUMLENGTH pfnWdfDmaTransactionSetMaximumLength;
+ PFN_WDFDMATRANSACTIONGETREQUEST pfnWdfDmaTransactionGetRequest;
+ PFN_WDFDMATRANSACTIONGETCURRENTDMATRANSFERLENGTH pfnWdfDmaTransactionGetCurrentDmaTransferLength;
+ PFN_WDFDMATRANSACTIONGETDEVICE pfnWdfDmaTransactionGetDevice;
+ PFN_WDFDPCCREATE pfnWdfDpcCreate;
+ PFN_WDFDPCENQUEUE pfnWdfDpcEnqueue;
+ PFN_WDFDPCCANCEL pfnWdfDpcCancel;
+ PFN_WDFDPCGETPARENTOBJECT pfnWdfDpcGetParentObject;
+ PFN_WDFDPCWDMGETDPC pfnWdfDpcWdmGetDpc;
+ PFN_WDFDRIVERCREATE pfnWdfDriverCreate;
+ PFN_WDFDRIVERGETREGISTRYPATH pfnWdfDriverGetRegistryPath;
+ PFN_WDFDRIVERWDMGETDRIVEROBJECT pfnWdfDriverWdmGetDriverObject;
+ PFN_WDFDRIVEROPENPARAMETERSREGISTRYKEY pfnWdfDriverOpenParametersRegistryKey;
+ PFN_WDFWDMDRIVERGETWDFDRIVERHANDLE pfnWdfWdmDriverGetWdfDriverHandle;
+ PFN_WDFDRIVERREGISTERTRACEINFO pfnWdfDriverRegisterTraceInfo;
+ PFN_WDFDRIVERRETRIEVEVERSIONSTRING pfnWdfDriverRetrieveVersionString;
+ PFN_WDFDRIVERISVERSIONAVAILABLE pfnWdfDriverIsVersionAvailable;
+ PFN_WDFFDOINITWDMGETPHYSICALDEVICE pfnWdfFdoInitWdmGetPhysicalDevice;
+ PFN_WDFFDOINITOPENREGISTRYKEY pfnWdfFdoInitOpenRegistryKey;
+ PFN_WDFFDOINITQUERYPROPERTY pfnWdfFdoInitQueryProperty;
+ PFN_WDFFDOINITALLOCANDQUERYPROPERTY pfnWdfFdoInitAllocAndQueryProperty;
+ PFN_WDFFDOINITSETEVENTCALLBACKS pfnWdfFdoInitSetEventCallbacks;
+ PFN_WDFFDOINITSETFILTER pfnWdfFdoInitSetFilter;
+ PFN_WDFFDOINITSETDEFAULTCHILDLISTCONFIG pfnWdfFdoInitSetDefaultChildListConfig;
+ PFN_WDFFDOQUERYFORINTERFACE pfnWdfFdoQueryForInterface;
+ PFN_WDFFDOGETDEFAULTCHILDLIST pfnWdfFdoGetDefaultChildList;
+ PFN_WDFFDOADDSTATICCHILD pfnWdfFdoAddStaticChild;
+ PFN_WDFFDOLOCKSTATICCHILDLISTFORITERATION pfnWdfFdoLockStaticChildListForIteration;
+ PFN_WDFFDORETRIEVENEXTSTATICCHILD pfnWdfFdoRetrieveNextStaticChild;
+ PFN_WDFFDOUNLOCKSTATICCHILDLISTFROMITERATION pfnWdfFdoUnlockStaticChildListFromIteration;
+ PFN_WDFFILEOBJECTGETFILENAME pfnWdfFileObjectGetFileName;
+ 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_WDFIOQUEUECREATE pfnWdfIoQueueCreate;
+ PFN_WDFIOQUEUEGETSTATE pfnWdfIoQueueGetState;
+ PFN_WDFIOQUEUESTART pfnWdfIoQueueStart;
+ PFN_WDFIOQUEUESTOP pfnWdfIoQueueStop;
+ PFN_WDFIOQUEUESTOPSYNCHRONOUSLY pfnWdfIoQueueStopSynchronously;
+ PFN_WDFIOQUEUEGETDEVICE pfnWdfIoQueueGetDevice;
+ PFN_WDFIOQUEUERETRIEVENEXTREQUEST pfnWdfIoQueueRetrieveNextRequest;
+ PFN_WDFIOQUEUERETRIEVEREQUESTBYFILEOBJECT pfnWdfIoQueueRetrieveRequestByFileObject;
+ PFN_WDFIOQUEUEFINDREQUEST pfnWdfIoQueueFindRequest;
+ PFN_WDFIOQUEUERETRIEVEFOUNDREQUEST pfnWdfIoQueueRetrieveFoundRequest;
+ PFN_WDFIOQUEUEDRAINSYNCHRONOUSLY pfnWdfIoQueueDrainSynchronously;
+ PFN_WDFIOQUEUEDRAIN pfnWdfIoQueueDrain;
+ PFN_WDFIOQUEUEPURGESYNCHRONOUSLY pfnWdfIoQueuePurgeSynchronously;
+ PFN_WDFIOQUEUEPURGE pfnWdfIoQueuePurge;
+ PFN_WDFIOQUEUEREADYNOTIFY pfnWdfIoQueueReadyNotify;
+ PFN_WDFIOTARGETCREATE pfnWdfIoTargetCreate;
+ PFN_WDFIOTARGETOPEN pfnWdfIoTargetOpen;
+ PFN_WDFIOTARGETCLOSEFORQUERYREMOVE pfnWdfIoTargetCloseForQueryRemove;
+ PFN_WDFIOTARGETCLOSE pfnWdfIoTargetClose;
+ PFN_WDFIOTARGETSTART pfnWdfIoTargetStart;
+ PFN_WDFIOTARGETSTOP pfnWdfIoTargetStop;
+ PFN_WDFIOTARGETGETSTATE pfnWdfIoTargetGetState;
+ PFN_WDFIOTARGETGETDEVICE pfnWdfIoTargetGetDevice;
+ PFN_WDFIOTARGETQUERYTARGETPROPERTY pfnWdfIoTargetQueryTargetProperty;
+ PFN_WDFIOTARGETALLOCANDQUERYTARGETPROPERTY pfnWdfIoTargetAllocAndQueryTargetProperty;
+ PFN_WDFIOTARGETQUERYFORINTERFACE pfnWdfIoTargetQueryForInterface;
+ PFN_WDFIOTARGETWDMGETTARGETDEVICEOBJECT pfnWdfIoTargetWdmGetTargetDeviceObject;
+ PFN_WDFIOTARGETWDMGETTARGETPHYSICALDEVICE pfnWdfIoTargetWdmGetTargetPhysicalDevice;
+ PFN_WDFIOTARGETWDMGETTARGETFILEOBJECT pfnWdfIoTargetWdmGetTargetFileObject;
+ PFN_WDFIOTARGETWDMGETTARGETFILEHANDLE pfnWdfIoTargetWdmGetTargetFileHandle;
+ PFN_WDFIOTARGETSENDREADSYNCHRONOUSLY pfnWdfIoTargetSendReadSynchronously;
+ PFN_WDFIOTARGETFORMATREQUESTFORREAD pfnWdfIoTargetFormatRequestForRead;
+ PFN_WDFIOTARGETSENDWRITESYNCHRONOUSLY pfnWdfIoTargetSendWriteSynchronously;
+ PFN_WDFIOTARGETFORMATREQUESTFORWRITE pfnWdfIoTargetFormatRequestForWrite;
+ PFN_WDFIOTARGETSENDIOCTLSYNCHRONOUSLY pfnWdfIoTargetSendIoctlSynchronously;
+ PFN_WDFIOTARGETFORMATREQUESTFORIOCTL pfnWdfIoTargetFormatRequestForIoctl;
+ PFN_WDFIOTARGETSENDINTERNALIOCTLSYNCHRONOUSLY pfnWdfIoTargetSendInternalIoctlSynchronously;
+ PFN_WDFIOTARGETFORMATREQUESTFORINTERNALIOCTL pfnWdfIoTargetFormatRequestForInternalIoctl;
+ PFN_WDFIOTARGETSENDINTERNALIOCTLOTHERSSYNCHRONOUSLY pfnWdfIoTargetSendInternalIoctlOthersSynchronously;
+ PFN_WDFIOTARGETFORMATREQUESTFORINTERNALIOCTLOTHERS pfnWdfIoTargetFormatRequestForInternalIoctlOthers;
+ PFN_WDFMEMORYCREATE pfnWdfMemoryCreate;
+ PFN_WDFMEMORYCREATEPREALLOCATED pfnWdfMemoryCreatePreallocated;
+ PFN_WDFMEMORYGETBUFFER pfnWdfMemoryGetBuffer;
+ PFN_WDFMEMORYASSIGNBUFFER pfnWdfMemoryAssignBuffer;
+ PFN_WDFMEMORYCOPYTOBUFFER pfnWdfMemoryCopyToBuffer;
+ PFN_WDFMEMORYCOPYFROMBUFFER pfnWdfMemoryCopyFromBuffer;
+ PFN_WDFLOOKASIDELISTCREATE pfnWdfLookasideListCreate;
+ PFN_WDFMEMORYCREATEFROMLOOKASIDE pfnWdfMemoryCreateFromLookaside;
+ PFN_WDFDEVICEMINIPORTCREATE pfnWdfDeviceMiniportCreate;
+ PFN_WDFDRIVERMINIPORTUNLOAD pfnWdfDriverMiniportUnload;
+ PFN_WDFOBJECTGETTYPEDCONTEXTWORKER pfnWdfObjectGetTypedContextWorker;
+ PFN_WDFOBJECTALLOCATECONTEXT pfnWdfObjectAllocateContext;
+ PFN_WDFOBJECTCONTEXTGETOBJECT pfnWdfObjectContextGetObject;
+ PFN_WDFOBJECTREFERENCEACTUAL pfnWdfObjectReferenceActual;
+ PFN_WDFOBJECTDEREFERENCEACTUAL pfnWdfObjectDereferenceActual;
+ PFN_WDFOBJECTCREATE pfnWdfObjectCreate;
+ PFN_WDFOBJECTDELETE pfnWdfObjectDelete;
+ PFN_WDFOBJECTQUERY pfnWdfObjectQuery;
+ PFN_WDFPDOINITALLOCATE pfnWdfPdoInitAllocate;
+ PFN_WDFPDOINITSETEVENTCALLBACKS pfnWdfPdoInitSetEventCallbacks;
+ PFN_WDFPDOINITASSIGNDEVICEID pfnWdfPdoInitAssignDeviceID;
+ PFN_WDFPDOINITASSIGNINSTANCEID pfnWdfPdoInitAssignInstanceID;
+ PFN_WDFPDOINITADDHARDWAREID pfnWdfPdoInitAddHardwareID;
+ PFN_WDFPDOINITADDCOMPATIBLEID pfnWdfPdoInitAddCompatibleID;
+ PFN_WDFPDOINITADDDEVICETEXT pfnWdfPdoInitAddDeviceText;
+ PFN_WDFPDOINITSETDEFAULTLOCALE pfnWdfPdoInitSetDefaultLocale;
+ PFN_WDFPDOINITASSIGNRAWDEVICE pfnWdfPdoInitAssignRawDevice;
+ PFN_WDFPDOMARKMISSING pfnWdfPdoMarkMissing;
+ PFN_WDFPDOREQUESTEJECT pfnWdfPdoRequestEject;
+ PFN_WDFPDOGETPARENT pfnWdfPdoGetParent;
+ PFN_WDFPDORETRIEVEIDENTIFICATIONDESCRIPTION pfnWdfPdoRetrieveIdentificationDescription;
+ PFN_WDFPDORETRIEVEADDRESSDESCRIPTION pfnWdfPdoRetrieveAddressDescription;
+ PFN_WDFPDOUPDATEADDRESSDESCRIPTION pfnWdfPdoUpdateAddressDescription;
+ PFN_WDFPDOADDEJECTIONRELATIONSPHYSICALDEVICE pfnWdfPdoAddEjectionRelationsPhysicalDevice;
+ PFN_WDFPDOREMOVEEJECTIONRELATIONSPHYSICALDEVICE pfnWdfPdoRemoveEjectionRelationsPhysicalDevice;
+ PFN_WDFPDOCLEAREJECTIONRELATIONSDEVICES pfnWdfPdoClearEjectionRelationsDevices;
+ PFN_WDFDEVICEADDQUERYINTERFACE pfnWdfDeviceAddQueryInterface;
+ PFN_WDFREGISTRYOPENKEY pfnWdfRegistryOpenKey;
+ PFN_WDFREGISTRYCREATEKEY pfnWdfRegistryCreateKey;
+ PFN_WDFREGISTRYCLOSE pfnWdfRegistryClose;
+ PFN_WDFREGISTRYWDMGETHANDLE pfnWdfRegistryWdmGetHandle;
+ PFN_WDFREGISTRYREMOVEKEY pfnWdfRegistryRemoveKey;
+ PFN_WDFREGISTRYREMOVEVALUE pfnWdfRegistryRemoveValue;
+ PFN_WDFREGISTRYQUERYVALUE pfnWdfRegistryQueryValue;
+ PFN_WDFREGISTRYQUERYMEMORY pfnWdfRegistryQueryMemory;
+ PFN_WDFREGISTRYQUERYMULTISTRING pfnWdfRegistryQueryMultiString;
+ PFN_WDFREGISTRYQUERYUNICODESTRING pfnWdfRegistryQueryUnicodeString;
+ PFN_WDFREGISTRYQUERYSTRING pfnWdfRegistryQueryString;
+ PFN_WDFREGISTRYQUERYULONG pfnWdfRegistryQueryULong;
+ PFN_WDFREGISTRYASSIGNVALUE pfnWdfRegistryAssignValue;
+ PFN_WDFREGISTRYASSIGNMEMORY pfnWdfRegistryAssignMemory;
+ PFN_WDFREGISTRYASSIGNMULTISTRING pfnWdfRegistryAssignMultiString;
+ PFN_WDFREGISTRYASSIGNUNICODESTRING pfnWdfRegistryAssignUnicodeString;
+ PFN_WDFREGISTRYASSIGNSTRING pfnWdfRegistryAssignString;
+ PFN_WDFREGISTRYASSIGNULONG pfnWdfRegistryAssignULong;
+ PFN_WDFREQUESTCREATE pfnWdfRequestCreate;
+ PFN_WDFREQUESTCREATEFROMIRP pfnWdfRequestCreateFromIrp;
+ PFN_WDFREQUESTREUSE pfnWdfRequestReuse;
+ PFN_WDFREQUESTCHANGETARGET pfnWdfRequestChangeTarget;
+ PFN_WDFREQUESTFORMATREQUESTUSINGCURRENTTYPE pfnWdfRequestFormatRequestUsingCurrentType;
+ PFN_WDFREQUESTWDMFORMATUSINGSTACKLOCATION pfnWdfRequestWdmFormatUsingStackLocation;
+ PFN_WDFREQUESTSEND pfnWdfRequestSend;
+ PFN_WDFREQUESTGETSTATUS pfnWdfRequestGetStatus;
+ PFN_WDFREQUESTMARKCANCELABLE pfnWdfRequestMarkCancelable;
+ PFN_WDFREQUESTUNMARKCANCELABLE pfnWdfRequestUnmarkCancelable;
+ PFN_WDFREQUESTISCANCELED pfnWdfRequestIsCanceled;
+ PFN_WDFREQUESTCANCELSENTREQUEST pfnWdfRequestCancelSentRequest;
+ PFN_WDFREQUESTISFROM32BITPROCESS pfnWdfRequestIsFrom32BitProcess;
+ PFN_WDFREQUESTSETCOMPLETIONROUTINE pfnWdfRequestSetCompletionRoutine;
+ PFN_WDFREQUESTGETCOMPLETIONPARAMS pfnWdfRequestGetCompletionParams;
+ PFN_WDFREQUESTALLOCATETIMER pfnWdfRequestAllocateTimer;
+ PFN_WDFREQUESTCOMPLETE pfnWdfRequestComplete;
+ PFN_WDFREQUESTCOMPLETEWITHPRIORITYBOOST pfnWdfRequestCompleteWithPriorityBoost;
+ PFN_WDFREQUESTCOMPLETEWITHINFORMATION pfnWdfRequestCompleteWithInformation;
+ PFN_WDFREQUESTGETPARAMETERS pfnWdfRequestGetParameters;
+ PFN_WDFREQUESTRETRIEVEINPUTMEMORY pfnWdfRequestRetrieveInputMemory;
+ PFN_WDFREQUESTRETRIEVEOUTPUTMEMORY pfnWdfRequestRetrieveOutputMemory;
+ PFN_WDFREQUESTRETRIEVEINPUTBUFFER pfnWdfRequestRetrieveInputBuffer;
+ PFN_WDFREQUESTRETRIEVEOUTPUTBUFFER pfnWdfRequestRetrieveOutputBuffer;
+ PFN_WDFREQUESTRETRIEVEINPUTWDMMDL pfnWdfRequestRetrieveInputWdmMdl;
+ PFN_WDFREQUESTRETRIEVEOUTPUTWDMMDL pfnWdfRequestRetrieveOutputWdmMdl;
+ PFN_WDFREQUESTRETRIEVEUNSAFEUSERINPUTBUFFER pfnWdfRequestRetrieveUnsafeUserInputBuffer;
+ PFN_WDFREQUESTRETRIEVEUNSAFEUSEROUTPUTBUFFER pfnWdfRequestRetrieveUnsafeUserOutputBuffer;
+ PFN_WDFREQUESTSETINFORMATION pfnWdfRequestSetInformation;
+ PFN_WDFREQUESTGETINFORMATION pfnWdfRequestGetInformation;
+ PFN_WDFREQUESTGETFILEOBJECT pfnWdfRequestGetFileObject;
+ PFN_WDFREQUESTPROBEANDLOCKUSERBUFFERFORREAD pfnWdfRequestProbeAndLockUserBufferForRead;
+ PFN_WDFREQUESTPROBEANDLOCKUSERBUFFERFORWRITE pfnWdfRequestProbeAndLockUserBufferForWrite;
+ PFN_WDFREQUESTGETREQUESTORMODE pfnWdfRequestGetRequestorMode;
+ PFN_WDFREQUESTFORWARDTOIOQUEUE pfnWdfRequestForwardToIoQueue;
+ PFN_WDFREQUESTGETIOQUEUE pfnWdfRequestGetIoQueue;
+ 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_WDFSTRINGCREATE pfnWdfStringCreate;
+ PFN_WDFSTRINGGETUNICODESTRING pfnWdfStringGetUnicodeString;
+ PFN_WDFOBJECTACQUIRELOCK pfnWdfObjectAcquireLock;
+ PFN_WDFOBJECTRELEASELOCK pfnWdfObjectReleaseLock;
+ PFN_WDFWAITLOCKCREATE pfnWdfWaitLockCreate;
+ PFN_WDFWAITLOCKACQUIRE pfnWdfWaitLockAcquire;
+ PFN_WDFWAITLOCKRELEASE pfnWdfWaitLockRelease;
+ PFN_WDFSPINLOCKCREATE pfnWdfSpinLockCreate;
+ PFN_WDFSPINLOCKACQUIRE pfnWdfSpinLockAcquire;
+ PFN_WDFSPINLOCKRELEASE pfnWdfSpinLockRelease;
+ PFN_WDFTIMERCREATE pfnWdfTimerCreate;
+ PFN_WDFTIMERSTART pfnWdfTimerStart;
+ PFN_WDFTIMERSTOP pfnWdfTimerStop;
+ PFN_WDFTIMERGETPARENTOBJECT pfnWdfTimerGetParentObject;
+ PFN_WDFUSBTARGETDEVICECREATE pfnWdfUsbTargetDeviceCreate;
+ PFN_WDFUSBTARGETDEVICERETRIEVEINFORMATION pfnWdfUsbTargetDeviceRetrieveInformation;
+ PFN_WDFUSBTARGETDEVICEGETDEVICEDESCRIPTOR pfnWdfUsbTargetDeviceGetDeviceDescriptor;
+ PFN_WDFUSBTARGETDEVICERETRIEVECONFIGDESCRIPTOR pfnWdfUsbTargetDeviceRetrieveConfigDescriptor;
+ PFN_WDFUSBTARGETDEVICEQUERYSTRING pfnWdfUsbTargetDeviceQueryString;
+ PFN_WDFUSBTARGETDEVICEALLOCANDQUERYSTRING pfnWdfUsbTargetDeviceAllocAndQueryString;
+ PFN_WDFUSBTARGETDEVICEFORMATREQUESTFORSTRING pfnWdfUsbTargetDeviceFormatRequestForString;
+ PFN_WDFUSBTARGETDEVICEGETNUMINTERFACES pfnWdfUsbTargetDeviceGetNumInterfaces;
+ PFN_WDFUSBTARGETDEVICESELECTCONFIG pfnWdfUsbTargetDeviceSelectConfig;
+ PFN_WDFUSBTARGETDEVICEWDMGETCONFIGURATIONHANDLE pfnWdfUsbTargetDeviceWdmGetConfigurationHandle;
+ PFN_WDFUSBTARGETDEVICERETRIEVECURRENTFRAMENUMBER pfnWdfUsbTargetDeviceRetrieveCurrentFrameNumber;
+ PFN_WDFUSBTARGETDEVICESENDCONTROLTRANSFERSYNCHRONOUSLY pfnWdfUsbTargetDeviceSendControlTransferSynchronously;
+ PFN_WDFUSBTARGETDEVICEFORMATREQUESTFORCONTROLTRANSFER pfnWdfUsbTargetDeviceFormatRequestForControlTransfer;
+ PFN_WDFUSBTARGETDEVICEISCONNECTEDSYNCHRONOUS pfnWdfUsbTargetDeviceIsConnectedSynchronous;
+ PFN_WDFUSBTARGETDEVICERESETPORTSYNCHRONOUSLY pfnWdfUsbTargetDeviceResetPortSynchronously;
+ PFN_WDFUSBTARGETDEVICECYCLEPORTSYNCHRONOUSLY pfnWdfUsbTargetDeviceCyclePortSynchronously;
+ PFN_WDFUSBTARGETDEVICEFORMATREQUESTFORCYCLEPORT pfnWdfUsbTargetDeviceFormatRequestForCyclePort;
+ PFN_WDFUSBTARGETDEVICESENDURBSYNCHRONOUSLY pfnWdfUsbTargetDeviceSendUrbSynchronously;
+ PFN_WDFUSBTARGETDEVICEFORMATREQUESTFORURB pfnWdfUsbTargetDeviceFormatRequestForUrb;
+ PFN_WDFUSBTARGETPIPEGETINFORMATION pfnWdfUsbTargetPipeGetInformation;
+ PFN_WDFUSBTARGETPIPEISINENDPOINT pfnWdfUsbTargetPipeIsInEndpoint;
+ PFN_WDFUSBTARGETPIPEISOUTENDPOINT pfnWdfUsbTargetPipeIsOutEndpoint;
+ PFN_WDFUSBTARGETPIPEGETTYPE pfnWdfUsbTargetPipeGetType;
+ PFN_WDFUSBTARGETPIPESETNOMAXIMUMPACKETSIZECHECK pfnWdfUsbTargetPipeSetNoMaximumPacketSizeCheck;
+ PFN_WDFUSBTARGETPIPEWRITESYNCHRONOUSLY pfnWdfUsbTargetPipeWriteSynchronously;
+ PFN_WDFUSBTARGETPIPEFORMATREQUESTFORWRITE pfnWdfUsbTargetPipeFormatRequestForWrite;
+ PFN_WDFUSBTARGETPIPEREADSYNCHRONOUSLY pfnWdfUsbTargetPipeReadSynchronously;
+ PFN_WDFUSBTARGETPIPEFORMATREQUESTFORREAD pfnWdfUsbTargetPipeFormatRequestForRead;
+ PFN_WDFUSBTARGETPIPECONFIGCONTINUOUSREADER pfnWdfUsbTargetPipeConfigContinuousReader;
+ PFN_WDFUSBTARGETPIPEABORTSYNCHRONOUSLY pfnWdfUsbTargetPipeAbortSynchronously;
+ PFN_WDFUSBTARGETPIPEFORMATREQUESTFORABORT pfnWdfUsbTargetPipeFormatRequestForAbort;
+ PFN_WDFUSBTARGETPIPERESETSYNCHRONOUSLY pfnWdfUsbTargetPipeResetSynchronously;
+ PFN_WDFUSBTARGETPIPEFORMATREQUESTFORRESET pfnWdfUsbTargetPipeFormatRequestForReset;
+ PFN_WDFUSBTARGETPIPESENDURBSYNCHRONOUSLY pfnWdfUsbTargetPipeSendUrbSynchronously;
+ PFN_WDFUSBTARGETPIPEFORMATREQUESTFORURB pfnWdfUsbTargetPipeFormatRequestForUrb;
+ PFN_WDFUSBINTERFACEGETINTERFACENUMBER pfnWdfUsbInterfaceGetInterfaceNumber;
+ PFN_WDFUSBINTERFACEGETNUMENDPOINTS pfnWdfUsbInterfaceGetNumEndpoints;
+ PFN_WDFUSBINTERFACEGETDESCRIPTOR pfnWdfUsbInterfaceGetDescriptor;
+ PFN_WDFUSBINTERFACESELECTSETTING pfnWdfUsbInterfaceSelectSetting;
+ PFN_WDFUSBINTERFACEGETENDPOINTINFORMATION pfnWdfUsbInterfaceGetEndpointInformation;
+ PFN_WDFUSBTARGETDEVICEGETINTERFACE pfnWdfUsbTargetDeviceGetInterface;
+ PFN_WDFUSBINTERFACEGETCONFIGUREDSETTINGINDEX pfnWdfUsbInterfaceGetConfiguredSettingIndex;
+ PFN_WDFUSBINTERFACEGETNUMCONFIGUREDPIPES pfnWdfUsbInterfaceGetNumConfiguredPipes;
+ PFN_WDFUSBINTERFACEGETCONFIGUREDPIPE pfnWdfUsbInterfaceGetConfiguredPipe;
+ PFN_WDFUSBTARGETPIPEWDMGETPIPEHANDLE pfnWdfUsbTargetPipeWdmGetPipeHandle;
+ PFN_WDFVERIFIERDBGBREAKPOINT pfnWdfVerifierDbgBreakPoint;
+ PFN_WDFVERIFIERKEBUGCHECK pfnWdfVerifierKeBugCheck;
+ PFN_WDFWMIPROVIDERCREATE pfnWdfWmiProviderCreate;
+ PFN_WDFWMIPROVIDERGETDEVICE pfnWdfWmiProviderGetDevice;
+ PFN_WDFWMIPROVIDERISENABLED pfnWdfWmiProviderIsEnabled;
+ PFN_WDFWMIPROVIDERGETTRACINGHANDLE pfnWdfWmiProviderGetTracingHandle;
+ PFN_WDFWMIINSTANCECREATE pfnWdfWmiInstanceCreate;
+ PFN_WDFWMIINSTANCEREGISTER pfnWdfWmiInstanceRegister;
+ PFN_WDFWMIINSTANCEDEREGISTER pfnWdfWmiInstanceDeregister;
+ PFN_WDFWMIINSTANCEGETDEVICE pfnWdfWmiInstanceGetDevice;
+ PFN_WDFWMIINSTANCEGETPROVIDER pfnWdfWmiInstanceGetProvider;
+ PFN_WDFWMIINSTANCEFIREEVENT pfnWdfWmiInstanceFireEvent;
+ PFN_WDFWORKITEMCREATE pfnWdfWorkItemCreate;
+ PFN_WDFWORKITEMENQUEUE pfnWdfWorkItemEnqueue;
+ PFN_WDFWORKITEMGETPARENTOBJECT pfnWdfWorkItemGetParentObject;
+ PFN_WDFWORKITEMFLUSH pfnWdfWorkItemFlush;
+ PFN_WDFCOMMONBUFFERCREATEWITHCONFIG pfnWdfCommonBufferCreateWithConfig;
+ PFN_WDFDMAENABLERGETFRAGMENTLENGTH pfnWdfDmaEnablerGetFragmentLength;
+ PFN_WDFDMAENABLERWDMGETDMAADAPTER pfnWdfDmaEnablerWdmGetDmaAdapter;
+ PFN_WDFUSBINTERFACEGETNUMSETTINGS pfnWdfUsbInterfaceGetNumSettings;
+ PFN_WDFDEVICEREMOVEDEPENDENTUSAGEDEVICEOBJECT pfnWdfDeviceRemoveDependentUsageDeviceObject;
+ PFN_WDFDEVICEGETSYSTEMPOWERACTION pfnWdfDeviceGetSystemPowerAction;
+ PFN_WDFINTERRUPTSETEXTENDEDPOLICY pfnWdfInterruptSetExtendedPolicy;
+ PFN_WDFIOQUEUEASSIGNFORWARDPROGRESSPOLICY pfnWdfIoQueueAssignForwardProgressPolicy;
+ PFN_WDFPDOINITASSIGNCONTAINERID pfnWdfPdoInitAssignContainerID;
+ PFN_WDFPDOINITALLOWFORWARDINGREQUESTTOPARENT pfnWdfPdoInitAllowForwardingRequestToParent;
+ PFN_WDFREQUESTMARKCANCELABLEEX pfnWdfRequestMarkCancelableEx;
+ PFN_WDFREQUESTISRESERVED pfnWdfRequestIsReserved;
+ PFN_WDFREQUESTFORWARDTOPARENTDEVICEIOQUEUE pfnWdfRequestForwardToParentDeviceIoQueue;
+ PFN_WDFCXDEVICEINITALLOCATE pfnWdfCxDeviceInitAllocate;
+ PFN_WDFCXDEVICEINITASSIGNWDMIRPPREPROCESSCALLBACK pfnWdfCxDeviceInitAssignWdmIrpPreprocessCallback;
+ PFN_WDFCXDEVICEINITSETIOINCALLERCONTEXTCALLBACK pfnWdfCxDeviceInitSetIoInCallerContextCallback;
+ PFN_WDFCXDEVICEINITSETREQUESTATTRIBUTES pfnWdfCxDeviceInitSetRequestAttributes;
+ PFN_WDFCXDEVICEINITSETFILEOBJECTCONFIG pfnWdfCxDeviceInitSetFileObjectConfig;
+ PFN_WDFDEVICEWDMDISPATCHIRP pfnWdfDeviceWdmDispatchIrp;
+ PFN_WDFDEVICEWDMDISPATCHIRPTOIOQUEUE pfnWdfDeviceWdmDispatchIrpToIoQueue;
+ PFN_WDFDEVICEINITSETREMOVELOCKOPTIONS pfnWdfDeviceInitSetRemoveLockOptions;
+ PFN_WDFDEVICECONFIGUREWDMIRPDISPATCHCALLBACK pfnWdfDeviceConfigureWdmIrpDispatchCallback;
+ PFN_WDFDMAENABLERCONFIGURESYSTEMPROFILE pfnWdfDmaEnablerConfigureSystemProfile;
+ PFN_WDFDMATRANSACTIONINITIALIZEUSINGOFFSET pfnWdfDmaTransactionInitializeUsingOffset;
+ PFN_WDFDMATRANSACTIONGETTRANSFERINFO pfnWdfDmaTransactionGetTransferInfo;
+ PFN_WDFDMATRANSACTIONSETCHANNELCONFIGURATIONCALLBACK pfnWdfDmaTransactionSetChannelConfigurationCallback;
+ PFN_WDFDMATRANSACTIONSETTRANSFERCOMPLETECALLBACK pfnWdfDmaTransactionSetTransferCompleteCallback;
+ PFN_WDFDMATRANSACTIONSETIMMEDIATEEXECUTION pfnWdfDmaTransactionSetImmediateExecution;
+ PFN_WDFDMATRANSACTIONALLOCATERESOURCES pfnWdfDmaTransactionAllocateResources;
+ PFN_WDFDMATRANSACTIONSETDEVICEADDRESSOFFSET pfnWdfDmaTransactionSetDeviceAddressOffset;
+ PFN_WDFDMATRANSACTIONFREERESOURCES pfnWdfDmaTransactionFreeResources;
+ PFN_WDFDMATRANSACTIONCANCEL pfnWdfDmaTransactionCancel;
+ PFN_WDFDMATRANSACTIONWDMGETTRANSFERCONTEXT pfnWdfDmaTransactionWdmGetTransferContext;
+ PFN_WDFINTERRUPTQUEUEWORKITEMFORISR pfnWdfInterruptQueueWorkItemForIsr;
+ PFN_WDFINTERRUPTTRYTOACQUIRELOCK pfnWdfInterruptTryToAcquireLock;
+ PFN_WDFIOQUEUESTOPANDPURGE pfnWdfIoQueueStopAndPurge;
+ PFN_WDFIOQUEUESTOPANDPURGESYNCHRONOUSLY pfnWdfIoQueueStopAndPurgeSynchronously;
+ PFN_WDFIOTARGETPURGE pfnWdfIoTargetPurge;
+ PFN_WDFUSBTARGETDEVICECREATEWITHPARAMETERS pfnWdfUsbTargetDeviceCreateWithParameters;
+ PFN_WDFUSBTARGETDEVICEQUERYUSBCAPABILITY pfnWdfUsbTargetDeviceQueryUsbCapability;
+ PFN_WDFUSBTARGETDEVICECREATEURB pfnWdfUsbTargetDeviceCreateUrb;
+ PFN_WDFUSBTARGETDEVICECREATEISOCHURB pfnWdfUsbTargetDeviceCreateIsochUrb;
+ PFN_WDFDEVICEWDMASSIGNPOWERFRAMEWORKSETTINGS pfnWdfDeviceWdmAssignPowerFrameworkSettings;
+ PFN_WDFDMATRANSACTIONSTOPSYSTEMTRANSFER pfnWdfDmaTransactionStopSystemTransfer;
+ PFN_WDFCXVERIFIERKEBUGCHECK pfnWdfCxVerifierKeBugCheck;
+ PFN_WDFINTERRUPTREPORTACTIVE pfnWdfInterruptReportActive;
+ PFN_WDFINTERRUPTREPORTINACTIVE pfnWdfInterruptReportInactive;
+ PFN_WDFDEVICEINITSETRELEASEHARDWAREORDERONFAILURE pfnWdfDeviceInitSetReleaseHardwareOrderOnFailure;
+ PFN_WDFGETTRIAGEINFO pfnWdfGetTriageInfo;
+ PFN_WDFDEVICEINITSETIOTYPEEX pfnWdfDeviceInitSetIoTypeEx;
+ PFN_WDFDEVICEQUERYPROPERTYEX pfnWdfDeviceQueryPropertyEx;
+ PFN_WDFDEVICEALLOCANDQUERYPROPERTYEX pfnWdfDeviceAllocAndQueryPropertyEx;
+ PFN_WDFDEVICEASSIGNPROPERTY pfnWdfDeviceAssignProperty;
+ PFN_WDFFDOINITQUERYPROPERTYEX pfnWdfFdoInitQueryPropertyEx;
+ PFN_WDFFDOINITALLOCANDQUERYPROPERTYEX pfnWdfFdoInitAllocAndQueryPropertyEx;
+ PFN_WDFDEVICESTOPIDLEACTUAL pfnWdfDeviceStopIdleActual;
+ PFN_WDFDEVICERESUMEIDLEACTUAL pfnWdfDeviceResumeIdleActual;
+ PFN_WDFDEVICEGETSELFIOTARGET pfnWdfDeviceGetSelfIoTarget;
+ PFN_WDFDEVICEINITALLOWSELFIOTARGET pfnWdfDeviceInitAllowSelfIoTarget;
+ PFN_WDFIOTARGETSELFASSIGNDEFAULTIOQUEUE pfnWdfIoTargetSelfAssignDefaultIoQueue;
+ PFN_WDFDEVICEOPENDEVICEMAPKEY pfnWdfDeviceOpenDevicemapKey;
+
+} WDFFUNCTIONS, *PWDFFUNCTIONS;
+
+
+typedef struct _WDFVERSION {
+
+ ULONG Size;
+ ULONG FuncCount;
+ WDFFUNCTIONS Functions;
+
+} WDFVERSION, *PWDFVERSION;
+
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfChildListCreate)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ PWDF_CHILD_LIST_CONFIG Config,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES ChildListAttributes,
+ _Out_
+ WDFCHILDLIST* ChildList
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+WDFDEVICE
+WDFEXPORT(WdfChildListGetDevice)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFCHILDLIST ChildList
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+WDFDEVICE
+WDFEXPORT(WdfChildListRetrievePdo)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFCHILDLIST ChildList,
+ _Inout_
+ PWDF_CHILD_RETRIEVE_INFO RetrieveInfo
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfChildListRetrieveAddressDescription)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFCHILDLIST ChildList,
+ _In_
+ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER IdentificationDescription,
+ _Inout_
+ PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER AddressDescription
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfChildListBeginScan)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFCHILDLIST ChildList
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfChildListEndScan)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFCHILDLIST ChildList
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfChildListBeginIteration)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFCHILDLIST ChildList,
+ _In_
+ PWDF_CHILD_LIST_ITERATOR Iterator
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfChildListRetrieveNextDevice)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFCHILDLIST ChildList,
+ _In_
+ PWDF_CHILD_LIST_ITERATOR Iterator,
+ _Out_
+ WDFDEVICE* Device,
+ _Inout_opt_
+ PWDF_CHILD_RETRIEVE_INFO Info
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfChildListEndIteration)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFCHILDLIST ChildList,
+ _In_
+ PWDF_CHILD_LIST_ITERATOR Iterator
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfChildListAddOrUpdateChildDescriptionAsPresent)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFCHILDLIST ChildList,
+ _In_
+ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER IdentificationDescription,
+ _In_opt_
+ PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER AddressDescription
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfChildListUpdateChildDescriptionAsMissing)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFCHILDLIST ChildList,
+ _In_
+ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER IdentificationDescription
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfChildListUpdateAllChildDescriptionsAsPresent)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFCHILDLIST ChildList
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+BOOLEAN
+WDFEXPORT(WdfChildListRequestChildEject)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFCHILDLIST ChildList,
+ _In_
+ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER IdentificationDescription
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfCollectionCreate)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES CollectionAttributes,
+ _Out_
+ WDFCOLLECTION* Collection
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+ULONG
+WDFEXPORT(WdfCollectionGetCount)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFCOLLECTION Collection
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfCollectionAdd)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFCOLLECTION Collection,
+ _In_
+ WDFOBJECT Object
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfCollectionRemove)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFCOLLECTION Collection,
+ _In_
+ WDFOBJECT Item
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfCollectionRemoveItem)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFCOLLECTION Collection,
+ _In_
+ ULONG Index
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+WDFOBJECT
+WDFEXPORT(WdfCollectionGetItem)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFCOLLECTION Collection,
+ _In_
+ ULONG Index
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+WDFOBJECT
+WDFEXPORT(WdfCollectionGetFirstItem)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFCOLLECTION Collection
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+WDFOBJECT
+WDFEXPORT(WdfCollectionGetLastItem)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFCOLLECTION Collection
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfCommonBufferCreate)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDMAENABLER DmaEnabler,
+ _In_
+ _When_(Length == 0, __drv_reportError(Length cannot be zero))
+ size_t Length,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES Attributes,
+ _Out_
+ WDFCOMMONBUFFER* CommonBuffer
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfCommonBufferCreateWithConfig)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDMAENABLER DmaEnabler,
+ _In_
+ _When_(Length == 0, __drv_reportError(Length cannot be zero))
+ size_t Length,
+ _In_
+ PWDF_COMMON_BUFFER_CONFIG Config,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES Attributes,
+ _Out_
+ WDFCOMMONBUFFER* CommonBuffer
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+PVOID
+WDFEXPORT(WdfCommonBufferGetAlignedVirtualAddress)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFCOMMONBUFFER CommonBuffer
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+PHYSICAL_ADDRESS
+WDFEXPORT(WdfCommonBufferGetAlignedLogicalAddress)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFCOMMONBUFFER CommonBuffer
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+size_t
+WDFEXPORT(WdfCommonBufferGetLength)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFCOMMONBUFFER CommonBuffer
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+PWDFDEVICE_INIT
+WDFEXPORT(WdfControlDeviceInitAllocate)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDRIVER Driver,
+ _In_
+ CONST UNICODE_STRING* SDDLString
+ );
+
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfControlDeviceInitSetShutdownNotification)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFDEVICE_INIT DeviceInit,
+ _In_
+ PFN_WDF_DEVICE_SHUTDOWN_NOTIFICATION Notification,
+ _In_
+ UCHAR Flags
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfControlFinishInitializing)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+PWDFCXDEVICE_INIT
+WDFEXPORT(WdfCxDeviceInitAllocate)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFDEVICE_INIT DeviceInit
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfCxDeviceInitAssignWdmIrpPreprocessCallback)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFCXDEVICE_INIT CxDeviceInit,
+ _In_
+ PFN_WDFCXDEVICE_WDM_IRP_PREPROCESS EvtCxDeviceWdmIrpPreprocess,
+ _In_
+ UCHAR MajorFunction,
+ _When_(NumMinorFunctions > 0, _In_reads_bytes_(NumMinorFunctions))
+ _When_(NumMinorFunctions == 0, _In_opt_)
+ PUCHAR MinorFunctions,
+ _In_
+ ULONG NumMinorFunctions
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfCxDeviceInitSetIoInCallerContextCallback)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFCXDEVICE_INIT CxDeviceInit,
+ _In_
+ PFN_WDF_IO_IN_CALLER_CONTEXT EvtIoInCallerContext
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfCxDeviceInitSetRequestAttributes)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFCXDEVICE_INIT CxDeviceInit,
+ _In_
+ PWDF_OBJECT_ATTRIBUTES RequestAttributes
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfCxDeviceInitSetFileObjectConfig)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFCXDEVICE_INIT CxDeviceInit,
+ _In_
+ PWDFCX_FILEOBJECT_CONFIG CxFileObjectConfig,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES FileObjectAttributes
+ );
+
+WDFAPI
+VOID
+WDFEXPORT(WdfCxVerifierKeBugCheck)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_opt_
+ WDFOBJECT Object,
+ _In_
+ ULONG BugCheckCode,
+ _In_
+ ULONG_PTR BugCheckParameter1,
+ _In_
+ ULONG_PTR BugCheckParameter2,
+ _In_
+ ULONG_PTR BugCheckParameter3,
+ _In_
+ ULONG_PTR BugCheckParameter4
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfDeviceGetDeviceState)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _Out_
+ PWDF_DEVICE_STATE DeviceState
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfDeviceSetDeviceState)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ PWDF_DEVICE_STATE DeviceState
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+WDFDEVICE
+WDFEXPORT(WdfWdmDeviceGetWdfDeviceHandle)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PDEVICE_OBJECT DeviceObject
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+PDEVICE_OBJECT
+WDFEXPORT(WdfDeviceWdmGetDeviceObject)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+PDEVICE_OBJECT
+WDFEXPORT(WdfDeviceWdmGetAttachedDevice)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+PDEVICE_OBJECT
+WDFEXPORT(WdfDeviceWdmGetPhysicalDevice)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDeviceWdmDispatchPreprocessedIrp)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ PIRP Irp
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDeviceWdmDispatchIrp)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ PIRP Irp,
+ _In_
+ WDFCONTEXT DispatchContext
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDeviceWdmDispatchIrpToIoQueue)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ PIRP Irp,
+ _In_
+ WDFQUEUE Queue,
+ _In_
+ ULONG Flags
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDeviceAddDependentUsageDeviceObject)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ PDEVICE_OBJECT DependentDevice
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfDeviceRemoveDependentUsageDeviceObject)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ PDEVICE_OBJECT DependentDevice
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDeviceAddRemovalRelationsPhysicalDevice)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ PDEVICE_OBJECT PhysicalDevice
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfDeviceRemoveRemovalRelationsPhysicalDevice)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ PDEVICE_OBJECT PhysicalDevice
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfDeviceClearRemovalRelationsDevices)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+WDFDRIVER
+WDFEXPORT(WdfDeviceGetDriver)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDeviceRetrieveDeviceName)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ WDFSTRING String
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDeviceAssignMofResourceName)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ PCUNICODE_STRING MofResourceName
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+WDFIOTARGET
+WDFEXPORT(WdfDeviceGetIoTarget)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+WDF_DEVICE_PNP_STATE
+WDFEXPORT(WdfDeviceGetDevicePnpState)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+WDF_DEVICE_POWER_STATE
+WDFEXPORT(WdfDeviceGetDevicePowerState)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+WDF_DEVICE_POWER_POLICY_STATE
+WDFEXPORT(WdfDeviceGetDevicePowerPolicyState)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDeviceAssignS0IdleSettings)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ PWDF_DEVICE_POWER_POLICY_IDLE_SETTINGS Settings
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDeviceAssignSxWakeSettings)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ PWDF_DEVICE_POWER_POLICY_WAKE_SETTINGS Settings
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDeviceOpenRegistryKey)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ ULONG DeviceInstanceKeyType,
+ _In_
+ ACCESS_MASK DesiredAccess,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES KeyAttributes,
+ _Out_
+ WDFKEY* Key
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDeviceOpenDevicemapKey)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ PCUNICODE_STRING KeyName,
+ _In_
+ ACCESS_MASK DesiredAccess,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES KeyAttributes,
+ _Out_
+ WDFKEY* Key
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfDeviceSetSpecialFileSupport)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ WDF_SPECIAL_FILE_TYPE FileType,
+ _In_
+ BOOLEAN FileTypeIsSupported
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfDeviceSetCharacteristics)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ ULONG DeviceCharacteristics
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+ULONG
+WDFEXPORT(WdfDeviceGetCharacteristics)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+ULONG
+WDFEXPORT(WdfDeviceGetAlignmentRequirement)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfDeviceSetAlignmentRequirement)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ ULONG AlignmentRequirement
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfDeviceInitFree)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFDEVICE_INIT DeviceInit
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfDeviceInitSetPnpPowerEventCallbacks)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFDEVICE_INIT DeviceInit,
+ _In_
+ PWDF_PNPPOWER_EVENT_CALLBACKS PnpPowerEventCallbacks
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfDeviceInitSetPowerPolicyEventCallbacks)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFDEVICE_INIT DeviceInit,
+ _In_
+ PWDF_POWER_POLICY_EVENT_CALLBACKS PowerPolicyEventCallbacks
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfDeviceInitSetPowerPolicyOwnership)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFDEVICE_INIT DeviceInit,
+ _In_
+ BOOLEAN IsPowerPolicyOwner
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDeviceInitRegisterPnpStateChangeCallback)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFDEVICE_INIT DeviceInit,
+ _In_
+ WDF_DEVICE_PNP_STATE PnpState,
+ _In_
+ PFN_WDF_DEVICE_PNP_STATE_CHANGE_NOTIFICATION EvtDevicePnpStateChange,
+ _In_
+ ULONG CallbackTypes
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDeviceInitRegisterPowerStateChangeCallback)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFDEVICE_INIT DeviceInit,
+ _In_
+ WDF_DEVICE_POWER_STATE PowerState,
+ _In_
+ PFN_WDF_DEVICE_POWER_STATE_CHANGE_NOTIFICATION EvtDevicePowerStateChange,
+ _In_
+ ULONG CallbackTypes
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDeviceInitRegisterPowerPolicyStateChangeCallback)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFDEVICE_INIT DeviceInit,
+ _In_
+ WDF_DEVICE_POWER_POLICY_STATE PowerPolicyState,
+ _In_
+ PFN_WDF_DEVICE_POWER_POLICY_STATE_CHANGE_NOTIFICATION EvtDevicePowerPolicyStateChange,
+ _In_
+ ULONG CallbackTypes
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfDeviceInitSetExclusive)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFDEVICE_INIT DeviceInit,
+ _In_
+ BOOLEAN IsExclusive
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfDeviceInitSetIoType)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFDEVICE_INIT DeviceInit,
+ _In_
+ WDF_DEVICE_IO_TYPE IoType
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfDeviceInitSetPowerNotPageable)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFDEVICE_INIT DeviceInit
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfDeviceInitSetPowerPageable)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFDEVICE_INIT DeviceInit
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfDeviceInitSetPowerInrush)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFDEVICE_INIT DeviceInit
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfDeviceInitSetDeviceType)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFDEVICE_INIT DeviceInit,
+ _In_
+ DEVICE_TYPE DeviceType
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDeviceInitAssignName)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFDEVICE_INIT DeviceInit,
+ _In_opt_
+ PCUNICODE_STRING DeviceName
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDeviceInitAssignSDDLString)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFDEVICE_INIT DeviceInit,
+ _In_opt_
+ PCUNICODE_STRING SDDLString
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfDeviceInitSetDeviceClass)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFDEVICE_INIT DeviceInit,
+ _In_
+ CONST GUID* DeviceClassGuid
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfDeviceInitSetCharacteristics)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFDEVICE_INIT DeviceInit,
+ _In_
+ ULONG DeviceCharacteristics,
+ _In_
+ BOOLEAN OrInValues
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfDeviceInitSetFileObjectConfig)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFDEVICE_INIT DeviceInit,
+ _In_
+ PWDF_FILEOBJECT_CONFIG FileObjectConfig,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES FileObjectAttributes
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfDeviceInitSetRequestAttributes)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFDEVICE_INIT DeviceInit,
+ _In_
+ PWDF_OBJECT_ATTRIBUTES RequestAttributes
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDeviceInitAssignWdmIrpPreprocessCallback)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFDEVICE_INIT DeviceInit,
+ _In_
+ PFN_WDFDEVICE_WDM_IRP_PREPROCESS EvtDeviceWdmIrpPreprocess,
+ _In_
+ UCHAR MajorFunction,
+ _When_(NumMinorFunctions > 0, _In_reads_bytes_(NumMinorFunctions))
+ _When_(NumMinorFunctions == 0, _In_opt_)
+ PUCHAR MinorFunctions,
+ _In_
+ ULONG NumMinorFunctions
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfDeviceInitSetIoInCallerContextCallback)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFDEVICE_INIT DeviceInit,
+ _In_
+ PFN_WDF_IO_IN_CALLER_CONTEXT EvtIoInCallerContext
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfDeviceInitSetRemoveLockOptions)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFDEVICE_INIT DeviceInit,
+ _In_
+ PWDF_REMOVE_LOCK_OPTIONS Options
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDeviceCreate)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _Inout_
+ PWDFDEVICE_INIT* DeviceInit,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES DeviceAttributes,
+ _Out_
+ WDFDEVICE* Device
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfDeviceSetStaticStopRemove)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ BOOLEAN Stoppable
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDeviceCreateDeviceInterface)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ CONST GUID* InterfaceClassGUID,
+ _In_opt_
+ PCUNICODE_STRING ReferenceString
+ );
+
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfDeviceSetDeviceInterfaceState)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ CONST GUID* InterfaceClassGUID,
+ _In_opt_
+ PCUNICODE_STRING ReferenceString,
+ _In_
+ BOOLEAN IsInterfaceEnabled
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDeviceRetrieveDeviceInterfaceString)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ CONST GUID* InterfaceClassGUID,
+ _In_opt_
+ PCUNICODE_STRING ReferenceString,
+ _In_
+ WDFSTRING String
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDeviceCreateSymbolicLink)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ PCUNICODE_STRING SymbolicLinkName
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDeviceQueryProperty)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ DEVICE_REGISTRY_PROPERTY DeviceProperty,
+ _In_
+ ULONG BufferLength,
+ _Out_writes_bytes_all_(BufferLength)
+ PVOID PropertyBuffer,
+ _Out_
+ PULONG ResultLength
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDeviceAllocAndQueryProperty)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ DEVICE_REGISTRY_PROPERTY DeviceProperty,
+ _In_
+ _Strict_type_match_
+ POOL_TYPE PoolType,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES PropertyMemoryAttributes,
+ _Out_
+ WDFMEMORY* PropertyMemory
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfDeviceSetPnpCapabilities)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ PWDF_DEVICE_PNP_CAPABILITIES PnpCapabilities
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfDeviceSetPowerCapabilities)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ PWDF_DEVICE_POWER_CAPABILITIES PowerCapabilities
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfDeviceSetBusInformationForChildren)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ PPNP_BUS_INFORMATION BusInformation
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDeviceIndicateWakeStatus)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ NTSTATUS WaitWakeStatus
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfDeviceSetFailed)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ WDF_DEVICE_FAILED_ACTION FailedAction
+ );
+
+_Must_inspect_result_
+_When_(WaitForD0 == 0, _IRQL_requires_max_(DISPATCH_LEVEL))
+_When_(WaitForD0 != 0, _IRQL_requires_max_(PASSIVE_LEVEL))
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDeviceStopIdleNoTrack)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ BOOLEAN WaitForD0
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfDeviceResumeIdleNoTrack)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device
+ );
+
+_Must_inspect_result_
+_When_(WaitForD0 == 0, _IRQL_requires_max_(DISPATCH_LEVEL))
+_When_(WaitForD0 != 0, _IRQL_requires_max_(PASSIVE_LEVEL))
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDeviceStopIdleActual)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ BOOLEAN WaitForD0,
+ _In_opt_
+ PVOID Tag,
+ _In_
+ LONG Line,
+ _In_z_
+ PCHAR File
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfDeviceResumeIdleActual)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_opt_
+ PVOID Tag,
+ _In_
+ LONG Line,
+ _In_z_
+ PCHAR File
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+WDFFILEOBJECT
+WDFEXPORT(WdfDeviceGetFileObject)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ PFILE_OBJECT FileObject
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDeviceEnqueueRequest)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ WDFREQUEST Request
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+WDFQUEUE
+WDFEXPORT(WdfDeviceGetDefaultQueue)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDeviceConfigureRequestDispatching)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ WDFQUEUE Queue,
+ _In_
+ _Strict_type_match_
+ WDF_REQUEST_TYPE RequestType
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDeviceConfigureWdmIrpDispatchCallback)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_opt_
+ WDFDRIVER Driver,
+ _In_
+ UCHAR MajorFunction,
+ _In_
+ PFN_WDFDEVICE_WDM_IRP_DISPATCH EvtDeviceWdmIrpDisptach,
+ _In_opt_
+ WDFCONTEXT DriverContext
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+POWER_ACTION
+WDFEXPORT(WdfDeviceGetSystemPowerAction)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDeviceWdmAssignPowerFrameworkSettings)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ PWDF_POWER_FRAMEWORK_SETTINGS PowerFrameworkSettings
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfDeviceInitSetReleaseHardwareOrderOnFailure)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFDEVICE_INIT DeviceInit,
+ _In_
+ WDF_RELEASE_HARDWARE_ORDER_ON_FAILURE ReleaseHardwareOrderOnFailure
+ );
+
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfDeviceInitSetIoTypeEx)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFDEVICE_INIT DeviceInit,
+ _In_
+ PWDF_IO_TYPE_CONFIG IoTypeConfig
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(APC_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDeviceQueryPropertyEx)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ PWDF_DEVICE_PROPERTY_DATA DeviceProperty,
+ _In_
+ ULONG BufferLength,
+ _Out_
+ PVOID PropertyBuffer,
+ _Out_
+ PULONG RequiredSize,
+ _Out_
+ PDEVPROPTYPE Type
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(APC_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDeviceAllocAndQueryPropertyEx)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ PWDF_DEVICE_PROPERTY_DATA DeviceProperty,
+ _In_
+ _Strict_type_match_
+ POOL_TYPE PoolType,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES PropertyMemoryAttributes,
+ _Out_
+ WDFMEMORY* PropertyMemory,
+ _Out_
+ PDEVPROPTYPE Type
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(APC_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDeviceAssignProperty)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ PWDF_DEVICE_PROPERTY_DATA DeviceProperty,
+ _In_
+ DEVPROPTYPE Type,
+ _In_
+ ULONG Size,
+ _In_opt_
+ PVOID Data
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+WDFIOTARGET
+WDFEXPORT(WdfDeviceGetSelfIoTarget)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfDeviceInitAllowSelfIoTarget)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFDEVICE_INIT DeviceInit
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDmaEnablerCreate)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ PWDF_DMA_ENABLER_CONFIG Config,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES Attributes,
+ _Out_
+ WDFDMAENABLER* DmaEnablerHandle
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDmaEnablerConfigureSystemProfile)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDMAENABLER DmaEnabler,
+ _In_
+ PWDF_DMA_SYSTEM_PROFILE_CONFIG ProfileConfig,
+ _In_
+ WDF_DMA_DIRECTION ConfigDirection
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+size_t
+WDFEXPORT(WdfDmaEnablerGetMaximumLength)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDMAENABLER DmaEnabler
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+size_t
+WDFEXPORT(WdfDmaEnablerGetMaximumScatterGatherElements)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDMAENABLER DmaEnabler
+ );
+
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfDmaEnablerSetMaximumScatterGatherElements)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDMAENABLER DmaEnabler,
+ _In_
+ _When_(MaximumFragments == 0, __drv_reportError(MaximumFragments cannot be zero))
+ size_t MaximumFragments
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+size_t
+WDFEXPORT(WdfDmaEnablerGetFragmentLength)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDMAENABLER DmaEnabler,
+ _In_
+ WDF_DMA_DIRECTION DmaDirection
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+PDMA_ADAPTER
+WDFEXPORT(WdfDmaEnablerWdmGetDmaAdapter)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDMAENABLER DmaEnabler,
+ _In_
+ WDF_DMA_DIRECTION DmaDirection
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDmaTransactionCreate)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDMAENABLER DmaEnabler,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES Attributes,
+ _Out_
+ WDFDMATRANSACTION* DmaTransaction
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDmaTransactionInitialize)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDMATRANSACTION DmaTransaction,
+ _In_
+ PFN_WDF_PROGRAM_DMA EvtProgramDmaFunction,
+ _In_
+ WDF_DMA_DIRECTION DmaDirection,
+ _In_
+ PMDL Mdl,
+ _In_
+ PVOID VirtualAddress,
+ _In_
+ _When_(Length == 0, __drv_reportError(Length cannot be zero))
+ size_t Length
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDmaTransactionInitializeUsingOffset)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDMATRANSACTION DmaTransaction,
+ _In_
+ PFN_WDF_PROGRAM_DMA EvtProgramDmaFunction,
+ _In_
+ WDF_DMA_DIRECTION DmaDirection,
+ _In_
+ PMDL Mdl,
+ _In_
+ size_t Offset,
+ _In_
+ _When_(Length == 0, __drv_reportError(Length cannot be zero))
+ size_t Length
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDmaTransactionInitializeUsingRequest)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDMATRANSACTION DmaTransaction,
+ _In_
+ WDFREQUEST Request,
+ _In_
+ PFN_WDF_PROGRAM_DMA EvtProgramDmaFunction,
+ _In_
+ WDF_DMA_DIRECTION DmaDirection
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDmaTransactionExecute)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDMATRANSACTION DmaTransaction,
+ _In_opt_
+ WDFCONTEXT Context
+ );
+
+_Success_(TRUE)
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDmaTransactionRelease)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDMATRANSACTION DmaTransaction
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+BOOLEAN
+WDFEXPORT(WdfDmaTransactionDmaCompleted)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDMATRANSACTION DmaTransaction,
+ _Out_
+ NTSTATUS* Status
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+BOOLEAN
+WDFEXPORT(WdfDmaTransactionDmaCompletedWithLength)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDMATRANSACTION DmaTransaction,
+ _In_
+ size_t TransferredLength,
+ _Out_
+ NTSTATUS* Status
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+BOOLEAN
+WDFEXPORT(WdfDmaTransactionDmaCompletedFinal)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDMATRANSACTION DmaTransaction,
+ _In_
+ size_t FinalTransferredLength,
+ _Out_
+ NTSTATUS* Status
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+size_t
+WDFEXPORT(WdfDmaTransactionGetBytesTransferred)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDMATRANSACTION DmaTransaction
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfDmaTransactionSetMaximumLength)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDMATRANSACTION DmaTransaction,
+ _In_
+ size_t MaximumLength
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+WDFREQUEST
+WDFEXPORT(WdfDmaTransactionGetRequest)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDMATRANSACTION DmaTransaction
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+size_t
+WDFEXPORT(WdfDmaTransactionGetCurrentDmaTransferLength)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDMATRANSACTION DmaTransaction
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+WDFDEVICE
+WDFEXPORT(WdfDmaTransactionGetDevice)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDMATRANSACTION DmaTransaction
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfDmaTransactionGetTransferInfo)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDMATRANSACTION DmaTransaction,
+ _Out_opt_
+ ULONG* MapRegisterCount,
+ _Out_opt_
+ ULONG* ScatterGatherElementCount
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfDmaTransactionSetChannelConfigurationCallback)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDMATRANSACTION DmaTransaction,
+ _In_opt_
+ PFN_WDF_DMA_TRANSACTION_CONFIGURE_DMA_CHANNEL ConfigureRoutine,
+ _In_opt_
+ PVOID ConfigureContext
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfDmaTransactionSetTransferCompleteCallback)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDMATRANSACTION DmaTransaction,
+ _In_opt_
+ PFN_WDF_DMA_TRANSACTION_DMA_TRANSFER_COMPLETE DmaCompletionRoutine,
+ _In_opt_
+ PVOID DmaCompletionContext
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfDmaTransactionSetImmediateExecution)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDMATRANSACTION DmaTransaction,
+ _In_
+ BOOLEAN UseImmediateExecution
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDmaTransactionAllocateResources)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDMATRANSACTION DmaTransaction,
+ _In_
+ WDF_DMA_DIRECTION DmaDirection,
+ _In_
+ ULONG RequiredMapRegisters,
+ _In_
+ PFN_WDF_RESERVE_DMA EvtReserveDmaFunction,
+ _In_
+ PVOID EvtReserveDmaContext
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfDmaTransactionSetDeviceAddressOffset)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDMATRANSACTION DmaTransaction,
+ _In_
+ ULONG Offset
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfDmaTransactionFreeResources)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDMATRANSACTION DmaTransaction
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+BOOLEAN
+WDFEXPORT(WdfDmaTransactionCancel)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDMATRANSACTION DmaTransaction
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+PVOID
+WDFEXPORT(WdfDmaTransactionWdmGetTransferContext)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDMATRANSACTION DmaTransaction
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfDmaTransactionStopSystemTransfer)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDMATRANSACTION DmaTransaction
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDpcCreate)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDF_DPC_CONFIG Config,
+ _In_
+ PWDF_OBJECT_ATTRIBUTES Attributes,
+ _Out_
+ WDFDPC* Dpc
+ );
+
+_IRQL_requires_max_(HIGH_LEVEL)
+WDFAPI
+BOOLEAN
+WDFEXPORT(WdfDpcEnqueue)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDPC Dpc
+ );
+
+_When_(Wait == __true, _IRQL_requires_max_(PASSIVE_LEVEL))
+_When_(Wait == __false, _IRQL_requires_max_(HIGH_LEVEL))
+WDFAPI
+BOOLEAN
+WDFEXPORT(WdfDpcCancel)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDPC Dpc,
+ _In_
+ BOOLEAN Wait
+ );
+
+_IRQL_requires_max_(HIGH_LEVEL)
+WDFAPI
+WDFOBJECT
+WDFEXPORT(WdfDpcGetParentObject)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDPC Dpc
+ );
+
+_IRQL_requires_max_(HIGH_LEVEL)
+WDFAPI
+PKDPC
+WDFEXPORT(WdfDpcWdmGetDpc)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDPC Dpc
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDriverCreate)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PDRIVER_OBJECT DriverObject,
+ _In_
+ PCUNICODE_STRING RegistryPath,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES DriverAttributes,
+ _In_
+ PWDF_DRIVER_CONFIG DriverConfig,
+ _Out_opt_
+ WDFDRIVER* Driver
+ );
+
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+PWSTR
+WDFEXPORT(WdfDriverGetRegistryPath)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDRIVER Driver
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+PDRIVER_OBJECT
+WDFEXPORT(WdfDriverWdmGetDriverObject)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDRIVER Driver
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDriverOpenParametersRegistryKey)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDRIVER Driver,
+ _In_
+ ACCESS_MASK DesiredAccess,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES KeyAttributes,
+ _Out_
+ WDFKEY* Key
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+WDFDRIVER
+WDFEXPORT(WdfWdmDriverGetWdfDriverHandle)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PDRIVER_OBJECT DriverObject
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDriverRegisterTraceInfo)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PDRIVER_OBJECT DriverObject,
+ _In_
+ PFN_WDF_TRACE_CALLBACK EvtTraceCallback,
+ _In_
+ PVOID ControlBlock
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDriverRetrieveVersionString)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDRIVER Driver,
+ _In_
+ WDFSTRING String
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+BOOLEAN
+WDFEXPORT(WdfDriverIsVersionAvailable)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDRIVER Driver,
+ _In_
+ PWDF_DRIVER_VERSION_AVAILABLE_PARAMS VersionAvailableParams
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+PDEVICE_OBJECT
+WDFEXPORT(WdfFdoInitWdmGetPhysicalDevice)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFDEVICE_INIT DeviceInit
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfFdoInitOpenRegistryKey)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFDEVICE_INIT DeviceInit,
+ _In_
+ ULONG DeviceInstanceKeyType,
+ _In_
+ ACCESS_MASK DesiredAccess,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES KeyAttributes,
+ _Out_
+ WDFKEY* Key
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfFdoInitQueryProperty)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFDEVICE_INIT DeviceInit,
+ _In_
+ DEVICE_REGISTRY_PROPERTY DeviceProperty,
+ _In_
+ ULONG BufferLength,
+ _Out_writes_bytes_all_opt_(BufferLength)
+ PVOID PropertyBuffer,
+ _Out_
+ PULONG ResultLength
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfFdoInitAllocAndQueryProperty)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFDEVICE_INIT DeviceInit,
+ _In_
+ DEVICE_REGISTRY_PROPERTY DeviceProperty,
+ _In_
+ _Strict_type_match_
+ POOL_TYPE PoolType,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES PropertyMemoryAttributes,
+ _Out_
+ WDFMEMORY* PropertyMemory
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfFdoInitQueryPropertyEx)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFDEVICE_INIT DeviceInit,
+ _In_
+ PWDF_DEVICE_PROPERTY_DATA DeviceProperty,
+ _In_
+ ULONG BufferLength,
+ _Out_
+ PVOID PropertyBuffer,
+ _Out_
+ PULONG ResultLength,
+ _Out_
+ PDEVPROPTYPE Type
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfFdoInitAllocAndQueryPropertyEx)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFDEVICE_INIT DeviceInit,
+ _In_
+ PWDF_DEVICE_PROPERTY_DATA DeviceProperty,
+ _In_
+ _Strict_type_match_
+ POOL_TYPE PoolType,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES PropertyMemoryAttributes,
+ _Out_
+ WDFMEMORY* PropertyMemory,
+ _Out_
+ PDEVPROPTYPE Type
+ );
+
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfFdoInitSetEventCallbacks)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFDEVICE_INIT DeviceInit,
+ _In_
+ PWDF_FDO_EVENT_CALLBACKS FdoEventCallbacks
+ );
+
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfFdoInitSetFilter)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFDEVICE_INIT DeviceInit
+ );
+
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfFdoInitSetDefaultChildListConfig)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _Inout_
+ PWDFDEVICE_INIT DeviceInit,
+ _In_
+ PWDF_CHILD_LIST_CONFIG Config,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES DefaultChildListAttributes
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfFdoQueryForInterface)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Fdo,
+ _In_
+ LPCGUID InterfaceType,
+ _Out_
+ PINTERFACE Interface,
+ _In_
+ USHORT Size,
+ _In_
+ USHORT Version,
+ _In_opt_
+ PVOID InterfaceSpecificData
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+WDFCHILDLIST
+WDFEXPORT(WdfFdoGetDefaultChildList)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Fdo
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfFdoAddStaticChild)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Fdo,
+ _In_
+ WDFDEVICE Child
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfFdoLockStaticChildListForIteration)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Fdo
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+WDFDEVICE
+WDFEXPORT(WdfFdoRetrieveNextStaticChild)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Fdo,
+ _In_opt_
+ WDFDEVICE PreviousChild,
+ _In_
+ ULONG Flags
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfFdoUnlockStaticChildListFromIteration)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Fdo
+ );
+
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+PUNICODE_STRING
+WDFEXPORT(WdfFileObjectGetFileName)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFFILEOBJECT FileObject
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+ULONG
+WDFEXPORT(WdfFileObjectGetFlags)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFFILEOBJECT FileObject
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+WDFDEVICE
+WDFEXPORT(WdfFileObjectGetDevice)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFFILEOBJECT FileObject
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+PFILE_OBJECT
+WDFEXPORT(WdfFileObjectWdmGetFileObject)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFFILEOBJECT FileObject
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfInterruptCreate)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ PWDF_INTERRUPT_CONFIG Configuration,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES Attributes,
+ _Out_
+ WDFINTERRUPT* Interrupt
+ );
+
+WDFAPI
+BOOLEAN
+WDFEXPORT(WdfInterruptQueueDpcForIsr)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFINTERRUPT Interrupt
+ );
+
+WDFAPI
+BOOLEAN
+WDFEXPORT(WdfInterruptQueueWorkItemForIsr)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFINTERRUPT Interrupt
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+BOOLEAN
+WDFEXPORT(WdfInterruptSynchronize)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFINTERRUPT Interrupt,
+ _In_
+ PFN_WDF_INTERRUPT_SYNCHRONIZE Callback,
+ _In_
+ WDFCONTEXT Context
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL + 1)
+WDFAPI
+VOID
+WDFEXPORT(WdfInterruptAcquireLock)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ _Requires_lock_not_held_(_Curr_)
+ _Acquires_lock_(_Curr_)
+ WDFINTERRUPT Interrupt
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL + 1)
+WDFAPI
+VOID
+WDFEXPORT(WdfInterruptReleaseLock)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ _Requires_lock_held_(_Curr_)
+ _Releases_lock_(_Curr_)
+ WDFINTERRUPT Interrupt
+ );
+
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfInterruptEnable)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFINTERRUPT Interrupt
+ );
+
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfInterruptDisable)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFINTERRUPT Interrupt
+ );
+
+_Must_inspect_result_
+WDFAPI
+PKINTERRUPT
+WDFEXPORT(WdfInterruptWdmGetInterrupt)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFINTERRUPT Interrupt
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfInterruptGetInfo)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFINTERRUPT Interrupt,
+ _Out_
+ PWDF_INTERRUPT_INFO Info
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfInterruptSetPolicy)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFINTERRUPT Interrupt,
+ _In_
+ WDF_INTERRUPT_POLICY Policy,
+ _In_
+ WDF_INTERRUPT_PRIORITY Priority,
+ _In_
+ KAFFINITY TargetProcessorSet
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfInterruptSetExtendedPolicy)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFINTERRUPT Interrupt,
+ _In_
+ PWDF_INTERRUPT_EXTENDED_POLICY PolicyAndGroup
+ );
+
+WDFAPI
+WDFDEVICE
+WDFEXPORT(WdfInterruptGetDevice)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFINTERRUPT Interrupt
+ );
+
+_Must_inspect_result_
+_Post_satisfies_(return == 1 || return == 0)
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+BOOLEAN
+WDFEXPORT(WdfInterruptTryToAcquireLock)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ _Requires_lock_not_held_(_Curr_)
+ _When_(return!=0, _Acquires_lock_(_Curr_))
+ WDFINTERRUPT Interrupt
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfInterruptReportActive)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFINTERRUPT Interrupt
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfInterruptReportInactive)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFINTERRUPT Interrupt
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfIoQueueCreate)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ PWDF_IO_QUEUE_CONFIG Config,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES QueueAttributes,
+ _Out_opt_
+ WDFQUEUE* Queue
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+WDF_IO_QUEUE_STATE
+WDFEXPORT(WdfIoQueueGetState)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFQUEUE Queue,
+ _Out_opt_
+ PULONG QueueRequests,
+ _Out_opt_
+ PULONG DriverRequests
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfIoQueueStart)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFQUEUE Queue
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfIoQueueStop)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFQUEUE Queue,
+ _When_(Context != 0, _In_)
+ _When_(Context == 0, _In_opt_)
+ PFN_WDF_IO_QUEUE_STATE StopComplete,
+ _When_(StopComplete != 0, _In_)
+ _When_(StopComplete == 0, _In_opt_)
+ WDFCONTEXT Context
+ );
+
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfIoQueueStopSynchronously)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFQUEUE Queue
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+WDFDEVICE
+WDFEXPORT(WdfIoQueueGetDevice)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFQUEUE Queue
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfIoQueueRetrieveNextRequest)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFQUEUE Queue,
+ _Out_
+ WDFREQUEST* OutRequest
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfIoQueueRetrieveRequestByFileObject)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFQUEUE Queue,
+ _In_
+ WDFFILEOBJECT FileObject,
+ _Out_
+ WDFREQUEST* OutRequest
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfIoQueueFindRequest)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFQUEUE Queue,
+ _In_opt_
+ WDFREQUEST FoundRequest,
+ _In_opt_
+ WDFFILEOBJECT FileObject,
+ _Inout_opt_
+ PWDF_REQUEST_PARAMETERS Parameters,
+ _Out_
+ WDFREQUEST* OutRequest
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfIoQueueRetrieveFoundRequest)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFQUEUE Queue,
+ _In_
+ WDFREQUEST FoundRequest,
+ _Out_
+ WDFREQUEST* OutRequest
+ );
+
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfIoQueueDrainSynchronously)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFQUEUE Queue
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfIoQueueDrain)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFQUEUE Queue,
+ _When_(Context != 0, _In_)
+ _When_(Context == 0, _In_opt_)
+ PFN_WDF_IO_QUEUE_STATE DrainComplete,
+ _When_(DrainComplete != 0, _In_)
+ _When_(DrainComplete == 0, _In_opt_)
+ WDFCONTEXT Context
+ );
+
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfIoQueuePurgeSynchronously)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFQUEUE Queue
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfIoQueuePurge)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFQUEUE Queue,
+ _When_(Context != 0, _In_)
+ _When_(Context == 0, _In_opt_)
+ PFN_WDF_IO_QUEUE_STATE PurgeComplete,
+ _When_(PurgeComplete != 0, _In_)
+ _When_(PurgeComplete == 0, _In_opt_)
+ WDFCONTEXT Context
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfIoQueueReadyNotify)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFQUEUE Queue,
+ _In_opt_
+ PFN_WDF_IO_QUEUE_STATE QueueReady,
+ _In_opt_
+ WDFCONTEXT Context
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfIoQueueAssignForwardProgressPolicy)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFQUEUE Queue,
+ _In_
+ PWDF_IO_QUEUE_FORWARD_PROGRESS_POLICY ForwardProgressPolicy
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfIoQueueStopAndPurge)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFQUEUE Queue,
+ _When_(Context != 0, _In_)
+ _When_(Context == 0, _In_opt_)
+ PFN_WDF_IO_QUEUE_STATE StopAndPurgeComplete,
+ _When_(StopAndPurgeComplete != 0, _In_)
+ _When_(StopAndPurgeComplete == 0, _In_opt_)
+ WDFCONTEXT Context
+ );
+
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfIoQueueStopAndPurgeSynchronously)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFQUEUE Queue
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfIoTargetCreate)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES IoTargetAttributes,
+ _Out_
+ WDFIOTARGET* IoTarget
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfIoTargetOpen)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFIOTARGET IoTarget,
+ _In_
+ PWDF_IO_TARGET_OPEN_PARAMS OpenParams
+ );
+
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfIoTargetCloseForQueryRemove)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFIOTARGET IoTarget
+ );
+
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfIoTargetClose)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFIOTARGET IoTarget
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfIoTargetStart)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFIOTARGET IoTarget
+ );
+
+_When_(Action == 3, _IRQL_requires_max_(DISPATCH_LEVEL))
+_When_(Action == 0 || Action == 1 || Action == 2, _IRQL_requires_max_(PASSIVE_LEVEL))
+WDFAPI
+VOID
+WDFEXPORT(WdfIoTargetStop)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFIOTARGET IoTarget,
+ _In_
+ _Strict_type_match_
+ WDF_IO_TARGET_SENT_IO_ACTION Action
+ );
+
+_When_(Action == 2, _IRQL_requires_max_(DISPATCH_LEVEL))
+_When_(Action == 0 || Action == 1, _IRQL_requires_max_(PASSIVE_LEVEL))
+WDFAPI
+VOID
+WDFEXPORT(WdfIoTargetPurge)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFIOTARGET IoTarget,
+ _In_
+ _Strict_type_match_
+ WDF_IO_TARGET_PURGE_IO_ACTION Action
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+WDF_IO_TARGET_STATE
+WDFEXPORT(WdfIoTargetGetState)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFIOTARGET IoTarget
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+WDFDEVICE
+WDFEXPORT(WdfIoTargetGetDevice)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFIOTARGET IoTarget
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfIoTargetQueryTargetProperty)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFIOTARGET IoTarget,
+ _In_
+ DEVICE_REGISTRY_PROPERTY DeviceProperty,
+ _In_
+ ULONG BufferLength,
+ _When_(BufferLength != 0, _Out_writes_bytes_to_opt_(BufferLength, *ResultLength))
+ _When_(BufferLength == 0, _Out_opt_)
+ PVOID PropertyBuffer,
+ _Deref_out_range_(<=,BufferLength)
+ PULONG ResultLength
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfIoTargetAllocAndQueryTargetProperty)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFIOTARGET IoTarget,
+ _In_
+ DEVICE_REGISTRY_PROPERTY DeviceProperty,
+ _In_
+ _Strict_type_match_
+ POOL_TYPE PoolType,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES PropertyMemoryAttributes,
+ _Out_
+ WDFMEMORY* PropertyMemory
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfIoTargetQueryForInterface)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFIOTARGET IoTarget,
+ _In_
+ LPCGUID InterfaceType,
+ _Out_
+ PINTERFACE Interface,
+ _In_
+ USHORT Size,
+ _In_
+ USHORT Version,
+ _In_opt_
+ PVOID InterfaceSpecificData
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+PDEVICE_OBJECT
+WDFEXPORT(WdfIoTargetWdmGetTargetDeviceObject)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFIOTARGET IoTarget
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+PDEVICE_OBJECT
+WDFEXPORT(WdfIoTargetWdmGetTargetPhysicalDevice)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFIOTARGET IoTarget
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+PFILE_OBJECT
+WDFEXPORT(WdfIoTargetWdmGetTargetFileObject)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFIOTARGET IoTarget
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+HANDLE
+WDFEXPORT(WdfIoTargetWdmGetTargetFileHandle)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFIOTARGET IoTarget
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfIoTargetSendReadSynchronously)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFIOTARGET IoTarget,
+ _In_opt_
+ WDFREQUEST Request,
+ _In_opt_
+ PWDF_MEMORY_DESCRIPTOR OutputBuffer,
+ _In_opt_
+ PLONGLONG DeviceOffset,
+ _In_opt_
+ PWDF_REQUEST_SEND_OPTIONS RequestOptions,
+ _Out_opt_
+ PULONG_PTR BytesRead
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfIoTargetFormatRequestForRead)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFIOTARGET IoTarget,
+ _In_
+ WDFREQUEST Request,
+ _In_opt_
+ WDFMEMORY OutputBuffer,
+ _In_opt_
+ PWDFMEMORY_OFFSET OutputBufferOffset,
+ _In_opt_
+ PLONGLONG DeviceOffset
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfIoTargetSendWriteSynchronously)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFIOTARGET IoTarget,
+ _In_opt_
+ WDFREQUEST Request,
+ _In_opt_
+ PWDF_MEMORY_DESCRIPTOR InputBuffer,
+ _In_opt_
+ PLONGLONG DeviceOffset,
+ _In_opt_
+ PWDF_REQUEST_SEND_OPTIONS RequestOptions,
+ _Out_opt_
+ PULONG_PTR BytesWritten
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfIoTargetFormatRequestForWrite)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFIOTARGET IoTarget,
+ _In_
+ WDFREQUEST Request,
+ _In_opt_
+ WDFMEMORY InputBuffer,
+ _In_opt_
+ PWDFMEMORY_OFFSET InputBufferOffset,
+ _In_opt_
+ PLONGLONG DeviceOffset
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfIoTargetSendIoctlSynchronously)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFIOTARGET IoTarget,
+ _In_opt_
+ WDFREQUEST Request,
+ _In_
+ ULONG IoctlCode,
+ _In_opt_
+ PWDF_MEMORY_DESCRIPTOR InputBuffer,
+ _In_opt_
+ PWDF_MEMORY_DESCRIPTOR OutputBuffer,
+ _In_opt_
+ PWDF_REQUEST_SEND_OPTIONS RequestOptions,
+ _Out_opt_
+ PULONG_PTR BytesReturned
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfIoTargetFormatRequestForIoctl)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFIOTARGET IoTarget,
+ _In_
+ WDFREQUEST Request,
+ _In_
+ ULONG IoctlCode,
+ _In_opt_
+ WDFMEMORY InputBuffer,
+ _In_opt_
+ PWDFMEMORY_OFFSET InputBufferOffset,
+ _In_opt_
+ WDFMEMORY OutputBuffer,
+ _In_opt_
+ PWDFMEMORY_OFFSET OutputBufferOffset
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfIoTargetSendInternalIoctlSynchronously)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFIOTARGET IoTarget,
+ _In_opt_
+ WDFREQUEST Request,
+ _In_
+ ULONG IoctlCode,
+ _In_opt_
+ PWDF_MEMORY_DESCRIPTOR InputBuffer,
+ _In_opt_
+ PWDF_MEMORY_DESCRIPTOR OutputBuffer,
+ _In_opt_
+ PWDF_REQUEST_SEND_OPTIONS RequestOptions,
+ _Out_opt_
+ PULONG_PTR BytesReturned
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfIoTargetFormatRequestForInternalIoctl)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFIOTARGET IoTarget,
+ _In_
+ WDFREQUEST Request,
+ _In_
+ ULONG IoctlCode,
+ _In_opt_
+ WDFMEMORY InputBuffer,
+ _In_opt_
+ PWDFMEMORY_OFFSET InputBufferOffset,
+ _In_opt_
+ WDFMEMORY OutputBuffer,
+ _In_opt_
+ PWDFMEMORY_OFFSET OutputBufferOffset
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfIoTargetSendInternalIoctlOthersSynchronously)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFIOTARGET IoTarget,
+ _In_opt_
+ WDFREQUEST Request,
+ _In_
+ ULONG IoctlCode,
+ _In_opt_
+ PWDF_MEMORY_DESCRIPTOR OtherArg1,
+ _In_opt_
+ PWDF_MEMORY_DESCRIPTOR OtherArg2,
+ _In_opt_
+ PWDF_MEMORY_DESCRIPTOR OtherArg4,
+ _In_opt_
+ PWDF_REQUEST_SEND_OPTIONS RequestOptions,
+ _Out_opt_
+ PULONG_PTR BytesReturned
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfIoTargetFormatRequestForInternalIoctlOthers)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFIOTARGET IoTarget,
+ _In_
+ WDFREQUEST Request,
+ _In_
+ ULONG IoctlCode,
+ _In_opt_
+ WDFMEMORY OtherArg1,
+ _In_opt_
+ PWDFMEMORY_OFFSET OtherArg1Offset,
+ _In_opt_
+ WDFMEMORY OtherArg2,
+ _In_opt_
+ PWDFMEMORY_OFFSET OtherArg2Offset,
+ _In_opt_
+ WDFMEMORY OtherArg4,
+ _In_opt_
+ PWDFMEMORY_OFFSET OtherArg4Offset
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfIoTargetSelfAssignDefaultIoQueue)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFIOTARGET IoTarget,
+ _In_
+ WDFQUEUE Queue
+ );
+
+_Must_inspect_result_
+_When_(PoolType == 1 || PoolType == 257, _IRQL_requires_max_(APC_LEVEL))
+_When_(PoolType == 0 || PoolType == 256, _IRQL_requires_max_(DISPATCH_LEVEL))
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfMemoryCreate)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES Attributes,
+ _In_
+ _Strict_type_match_
+ POOL_TYPE PoolType,
+ _In_opt_
+ ULONG PoolTag,
+ _In_
+ _When_(BufferSize == 0, __drv_reportError(BufferSize cannot be zero))
+ size_t BufferSize,
+ _Out_
+ WDFMEMORY* Memory,
+ _Outptr_opt_result_bytebuffer_(BufferSize)
+ PVOID* Buffer
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfMemoryCreatePreallocated)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES Attributes,
+ _In_ __drv_aliasesMem
+ PVOID Buffer,
+ _In_
+ _When_(BufferSize == 0, __drv_reportError(BufferSize cannot be zero))
+ size_t BufferSize,
+ _Out_
+ WDFMEMORY* Memory
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+PVOID
+WDFEXPORT(WdfMemoryGetBuffer)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFMEMORY Memory,
+ _Out_opt_
+ size_t* BufferSize
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfMemoryAssignBuffer)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFMEMORY Memory,
+ _Pre_notnull_ _Pre_writable_byte_size_(BufferSize)
+ PVOID Buffer,
+ _In_
+ _When_(BufferSize == 0, __drv_reportError(BufferSize cannot be zero))
+ size_t BufferSize
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfMemoryCopyToBuffer)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFMEMORY SourceMemory,
+ _In_
+ size_t SourceOffset,
+ _Out_writes_bytes_( NumBytesToCopyTo )
+ PVOID Buffer,
+ _In_
+ _When_(NumBytesToCopyTo == 0, __drv_reportError(NumBytesToCopyTo cannot be zero))
+ size_t NumBytesToCopyTo
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfMemoryCopyFromBuffer)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFMEMORY DestinationMemory,
+ _In_
+ size_t DestinationOffset,
+ _In_
+ PVOID Buffer,
+ _In_
+ _When_(NumBytesToCopyFrom == 0, __drv_reportError(NumBytesToCopyFrom cannot be zero))
+ size_t NumBytesToCopyFrom
+ );
+
+_Must_inspect_result_
+_When_(PoolType == 1 || PoolType == 257, _IRQL_requires_max_(APC_LEVEL))
+_When_(PoolType == 0 || PoolType == 256, _IRQL_requires_max_(DISPATCH_LEVEL))
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfLookasideListCreate)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES LookasideAttributes,
+ _In_
+ _When_(BufferSize == 0, __drv_reportError(BufferSize cannot be zero))
+ size_t BufferSize,
+ _In_
+ _Strict_type_match_
+ POOL_TYPE PoolType,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES MemoryAttributes,
+ _In_opt_
+ ULONG PoolTag,
+ _Out_
+ WDFLOOKASIDE* Lookaside
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfMemoryCreateFromLookaside)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFLOOKASIDE Lookaside,
+ _Out_
+ WDFMEMORY* Memory
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDeviceMiniportCreate)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDRIVER Driver,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES Attributes,
+ _In_
+ PDEVICE_OBJECT DeviceObject,
+ _In_opt_
+ PDEVICE_OBJECT AttachedDeviceObject,
+ _In_opt_
+ PDEVICE_OBJECT Pdo,
+ _Out_
+ WDFDEVICE* Device
+ );
+
+WDFAPI
+VOID
+WDFEXPORT(WdfDriverMiniportUnload)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDRIVER Driver
+ );
+
+WDFAPI
+PVOID
+FASTCALL
+WDFEXPORT(WdfObjectGetTypedContextWorker)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFOBJECT Handle,
+ _In_
+ PCWDF_OBJECT_CONTEXT_TYPE_INFO TypeInfo
+ );
+
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfObjectAllocateContext)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFOBJECT Handle,
+ _In_
+ PWDF_OBJECT_ATTRIBUTES ContextAttributes,
+ _Outptr_opt_
+ PVOID* Context
+ );
+
+WDFAPI
+WDFOBJECT
+FASTCALL
+WDFEXPORT(WdfObjectContextGetObject)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PVOID ContextPointer
+ );
+
+WDFAPI
+VOID
+WDFEXPORT(WdfObjectReferenceActual)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFOBJECT Handle,
+ _In_opt_
+ PVOID Tag,
+ _In_
+ LONG Line,
+ _In_z_
+ PCHAR File
+ );
+
+WDFAPI
+VOID
+WDFEXPORT(WdfObjectDereferenceActual)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFOBJECT Handle,
+ _In_opt_
+ PVOID Tag,
+ _In_
+ LONG Line,
+ _In_z_
+ PCHAR File
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfObjectCreate)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES Attributes,
+ _Out_
+ WDFOBJECT* Object
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfObjectDelete)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFOBJECT Object
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfObjectQuery)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFOBJECT Object,
+ _In_
+ CONST GUID* Guid,
+ _In_
+ ULONG QueryBufferLength,
+ _Out_writes_bytes_(QueryBufferLength)
+ PVOID QueryBuffer
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+PWDFDEVICE_INIT
+WDFEXPORT(WdfPdoInitAllocate)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE ParentDevice
+ );
+
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfPdoInitSetEventCallbacks)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFDEVICE_INIT DeviceInit,
+ _In_
+ PWDF_PDO_EVENT_CALLBACKS DispatchTable
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfPdoInitAssignDeviceID)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFDEVICE_INIT DeviceInit,
+ _In_
+ PCUNICODE_STRING DeviceID
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfPdoInitAssignInstanceID)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFDEVICE_INIT DeviceInit,
+ _In_
+ PCUNICODE_STRING InstanceID
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfPdoInitAddHardwareID)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFDEVICE_INIT DeviceInit,
+ _In_
+ PCUNICODE_STRING HardwareID
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfPdoInitAddCompatibleID)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFDEVICE_INIT DeviceInit,
+ _In_
+ PCUNICODE_STRING CompatibleID
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfPdoInitAssignContainerID)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFDEVICE_INIT DeviceInit,
+ _In_
+ PCUNICODE_STRING ContainerID
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfPdoInitAddDeviceText)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFDEVICE_INIT DeviceInit,
+ _In_
+ PCUNICODE_STRING DeviceDescription,
+ _In_
+ PCUNICODE_STRING DeviceLocation,
+ _In_
+ LCID LocaleId
+ );
+
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfPdoInitSetDefaultLocale)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFDEVICE_INIT DeviceInit,
+ _In_
+ LCID LocaleId
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfPdoInitAssignRawDevice)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFDEVICE_INIT DeviceInit,
+ _In_
+ CONST GUID* DeviceClassGuid
+ );
+
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfPdoInitAllowForwardingRequestToParent)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDFDEVICE_INIT DeviceInit
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfPdoMarkMissing)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfPdoRequestEject)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+WDFDEVICE
+WDFEXPORT(WdfPdoGetParent)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfPdoRetrieveIdentificationDescription)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _Inout_
+ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER IdentificationDescription
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfPdoRetrieveAddressDescription)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _Inout_
+ PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER AddressDescription
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfPdoUpdateAddressDescription)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _Inout_
+ PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER AddressDescription
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfPdoAddEjectionRelationsPhysicalDevice)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ PDEVICE_OBJECT PhysicalDevice
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfPdoRemoveEjectionRelationsPhysicalDevice)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ PDEVICE_OBJECT PhysicalDevice
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfPdoClearEjectionRelationsDevices)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfDeviceAddQueryInterface)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ PWDF_QUERY_INTERFACE_CONFIG InterfaceConfig
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfRegistryOpenKey)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_opt_
+ WDFKEY ParentKey,
+ _In_
+ PCUNICODE_STRING KeyName,
+ _In_
+ ACCESS_MASK DesiredAccess,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES KeyAttributes,
+ _Out_
+ WDFKEY* Key
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfRegistryCreateKey)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_opt_
+ WDFKEY ParentKey,
+ _In_
+ PCUNICODE_STRING KeyName,
+ _In_
+ ACCESS_MASK DesiredAccess,
+ _In_
+ ULONG CreateOptions,
+ _Out_opt_
+ PULONG CreateDisposition,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES KeyAttributes,
+ _Out_
+ WDFKEY* Key
+ );
+
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfRegistryClose)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFKEY Key
+ );
+
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+HANDLE
+WDFEXPORT(WdfRegistryWdmGetHandle)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFKEY Key
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfRegistryRemoveKey)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFKEY Key
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfRegistryRemoveValue)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFKEY Key,
+ _In_
+ PCUNICODE_STRING ValueName
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfRegistryQueryValue)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFKEY Key,
+ _In_
+ PCUNICODE_STRING ValueName,
+ _In_
+ ULONG ValueLength,
+ _Out_writes_bytes_opt_( ValueLength)
+ PVOID Value,
+ _Out_opt_
+ PULONG ValueLengthQueried,
+ _Out_opt_
+ PULONG ValueType
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfRegistryQueryMemory)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFKEY Key,
+ _In_
+ PCUNICODE_STRING ValueName,
+ _In_
+ _Strict_type_match_
+ POOL_TYPE PoolType,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES MemoryAttributes,
+ _Out_
+ WDFMEMORY* Memory,
+ _Out_opt_
+ PULONG ValueType
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfRegistryQueryMultiString)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFKEY Key,
+ _In_
+ PCUNICODE_STRING ValueName,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES StringsAttributes,
+ _In_
+ WDFCOLLECTION Collection
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfRegistryQueryUnicodeString)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFKEY Key,
+ _In_
+ PCUNICODE_STRING ValueName,
+ _Out_opt_
+ PUSHORT ValueByteLength,
+ _Inout_opt_
+ PUNICODE_STRING Value
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfRegistryQueryString)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFKEY Key,
+ _In_
+ PCUNICODE_STRING ValueName,
+ _In_
+ WDFSTRING String
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfRegistryQueryULong)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFKEY Key,
+ _In_
+ PCUNICODE_STRING ValueName,
+ _Out_
+ PULONG Value
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfRegistryAssignValue)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFKEY Key,
+ _In_
+ PCUNICODE_STRING ValueName,
+ _In_
+ ULONG ValueType,
+ _In_
+ ULONG ValueLength,
+ _In_reads_( ValueLength)
+ PVOID Value
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfRegistryAssignMemory)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFKEY Key,
+ _In_
+ PCUNICODE_STRING ValueName,
+ _In_
+ ULONG ValueType,
+ _In_
+ WDFMEMORY Memory,
+ _In_opt_
+ PWDFMEMORY_OFFSET MemoryOffsets
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfRegistryAssignMultiString)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFKEY Key,
+ _In_
+ PCUNICODE_STRING ValueName,
+ _In_
+ WDFCOLLECTION StringsCollection
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfRegistryAssignUnicodeString)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFKEY Key,
+ _In_
+ PCUNICODE_STRING ValueName,
+ _In_
+ PCUNICODE_STRING Value
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfRegistryAssignString)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFKEY Key,
+ _In_
+ PCUNICODE_STRING ValueName,
+ _In_
+ WDFSTRING String
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfRegistryAssignULong)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFKEY Key,
+ _In_
+ PCUNICODE_STRING ValueName,
+ _In_
+ ULONG Value
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfRequestCreate)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES RequestAttributes,
+ _In_opt_
+ WDFIOTARGET IoTarget,
+ _Out_
+ WDFREQUEST* Request
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfRequestCreateFromIrp)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES RequestAttributes,
+ _In_
+ PIRP Irp,
+ _In_
+ BOOLEAN RequestFreesIrp,
+ _Out_
+ WDFREQUEST* Request
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfRequestReuse)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFREQUEST Request,
+ _In_
+ PWDF_REQUEST_REUSE_PARAMS ReuseParams
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfRequestChangeTarget)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFREQUEST Request,
+ _In_
+ WDFIOTARGET IoTarget
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfRequestFormatRequestUsingCurrentType)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFREQUEST Request
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfRequestWdmFormatUsingStackLocation)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFREQUEST Request,
+ _In_
+ PIO_STACK_LOCATION Stack
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+_When_(Options->Flags & WDF_REQUEST_SEND_OPTION_SYNCHRONOUS == 0, _Must_inspect_result_)
+WDFAPI
+BOOLEAN
+WDFEXPORT(WdfRequestSend)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFREQUEST Request,
+ _In_
+ WDFIOTARGET Target,
+ _In_opt_
+ PWDF_REQUEST_SEND_OPTIONS Options
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfRequestGetStatus)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFREQUEST Request
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfRequestMarkCancelable)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFREQUEST Request,
+ _In_
+ PFN_WDF_REQUEST_CANCEL EvtRequestCancel
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfRequestMarkCancelableEx)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFREQUEST Request,
+ _In_
+ PFN_WDF_REQUEST_CANCEL EvtRequestCancel
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfRequestUnmarkCancelable)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFREQUEST Request
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+BOOLEAN
+WDFEXPORT(WdfRequestIsCanceled)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFREQUEST Request
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+BOOLEAN
+WDFEXPORT(WdfRequestCancelSentRequest)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFREQUEST Request
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(APC_LEVEL)
+WDFAPI
+BOOLEAN
+WDFEXPORT(WdfRequestIsFrom32BitProcess)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFREQUEST Request
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfRequestSetCompletionRoutine)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFREQUEST Request,
+ _In_opt_
+ PFN_WDF_REQUEST_COMPLETION_ROUTINE CompletionRoutine,
+ _In_opt_ __drv_aliasesMem
+ WDFCONTEXT CompletionContext
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfRequestGetCompletionParams)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFREQUEST Request,
+ _Out_
+ PWDF_REQUEST_COMPLETION_PARAMS Params
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfRequestAllocateTimer)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFREQUEST Request
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfRequestComplete)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFREQUEST Request,
+ _In_
+ NTSTATUS Status
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfRequestCompleteWithPriorityBoost)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFREQUEST Request,
+ _In_
+ NTSTATUS Status,
+ _In_
+ CCHAR PriorityBoost
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfRequestCompleteWithInformation)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFREQUEST Request,
+ _In_
+ NTSTATUS Status,
+ _In_
+ ULONG_PTR Information
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfRequestGetParameters)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFREQUEST Request,
+ _Out_
+ PWDF_REQUEST_PARAMETERS Parameters
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfRequestRetrieveInputMemory)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFREQUEST Request,
+ _Out_
+ WDFMEMORY* Memory
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfRequestRetrieveOutputMemory)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFREQUEST Request,
+ _Out_
+ WDFMEMORY* Memory
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfRequestRetrieveInputBuffer)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFREQUEST Request,
+ _In_
+ size_t MinimumRequiredLength,
+ _Outptr_result_bytebuffer_(*Length)
+ PVOID* Buffer,
+ _Out_opt_
+ size_t* Length
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfRequestRetrieveOutputBuffer)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFREQUEST Request,
+ _In_
+ size_t MinimumRequiredSize,
+ _Outptr_result_bytebuffer_(*Length)
+ PVOID* Buffer,
+ _Out_opt_
+ size_t* Length
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfRequestRetrieveInputWdmMdl)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFREQUEST Request,
+ _Outptr_
+ PMDL* Mdl
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfRequestRetrieveOutputWdmMdl)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFREQUEST Request,
+ _Outptr_
+ PMDL* Mdl
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfRequestRetrieveUnsafeUserInputBuffer)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFREQUEST Request,
+ _In_
+ size_t MinimumRequiredLength,
+ _Outptr_result_bytebuffer_maybenull_(*Length)
+ PVOID* InputBuffer,
+ _Out_opt_
+ size_t* Length
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfRequestRetrieveUnsafeUserOutputBuffer)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFREQUEST Request,
+ _In_
+ size_t MinimumRequiredLength,
+ _Outptr_result_bytebuffer_maybenull_(*Length)
+ PVOID* OutputBuffer,
+ _Out_opt_
+ size_t* Length
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfRequestSetInformation)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFREQUEST Request,
+ _In_
+ ULONG_PTR Information
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+ULONG_PTR
+WDFEXPORT(WdfRequestGetInformation)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFREQUEST Request
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+WDFFILEOBJECT
+WDFEXPORT(WdfRequestGetFileObject)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFREQUEST Request
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfRequestProbeAndLockUserBufferForRead)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFREQUEST Request,
+ _In_reads_bytes_(Length)
+ PVOID Buffer,
+ _In_
+ size_t Length,
+ _Out_
+ WDFMEMORY* MemoryObject
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfRequestProbeAndLockUserBufferForWrite)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFREQUEST Request,
+ _In_reads_bytes_(Length)
+ PVOID Buffer,
+ _In_
+ size_t Length,
+ _Out_
+ WDFMEMORY* MemoryObject
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+KPROCESSOR_MODE
+WDFEXPORT(WdfRequestGetRequestorMode)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFREQUEST Request
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfRequestForwardToIoQueue)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFREQUEST Request,
+ _In_
+ WDFQUEUE DestinationQueue
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+WDFQUEUE
+WDFEXPORT(WdfRequestGetIoQueue)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFREQUEST Request
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfRequestRequeue)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFREQUEST Request
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfRequestStopAcknowledge)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFREQUEST Request,
+ _In_
+ BOOLEAN Requeue
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+PIRP
+WDFEXPORT(WdfRequestWdmGetIrp)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFREQUEST Request
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+BOOLEAN
+WDFEXPORT(WdfRequestIsReserved)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFREQUEST Request
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfRequestForwardToParentDeviceIoQueue)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFREQUEST Request,
+ _In_
+ WDFQUEUE ParentDeviceQueue,
+ _In_
+ PWDF_REQUEST_FORWARD_OPTIONS ForwardOptions
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfIoResourceRequirementsListSetSlotNumber)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFIORESREQLIST RequirementsList,
+ _In_
+ ULONG SlotNumber
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfIoResourceRequirementsListSetInterfaceType)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFIORESREQLIST RequirementsList,
+ _In_
+ _Strict_type_match_
+ INTERFACE_TYPE InterfaceType
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfIoResourceRequirementsListAppendIoResList)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFIORESREQLIST RequirementsList,
+ _In_
+ WDFIORESLIST IoResList
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfIoResourceRequirementsListInsertIoResList)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFIORESREQLIST RequirementsList,
+ _In_
+ WDFIORESLIST IoResList,
+ _In_
+ ULONG Index
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+ULONG
+WDFEXPORT(WdfIoResourceRequirementsListGetCount)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFIORESREQLIST RequirementsList
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+WDFIORESLIST
+WDFEXPORT(WdfIoResourceRequirementsListGetIoResList)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFIORESREQLIST RequirementsList,
+ _In_
+ ULONG Index
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfIoResourceRequirementsListRemove)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFIORESREQLIST RequirementsList,
+ _In_
+ ULONG Index
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfIoResourceRequirementsListRemoveByIoResList)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFIORESREQLIST RequirementsList,
+ _In_
+ WDFIORESLIST IoResList
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfIoResourceListCreate)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFIORESREQLIST RequirementsList,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES Attributes,
+ _Out_
+ WDFIORESLIST* ResourceList
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfIoResourceListAppendDescriptor)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFIORESLIST ResourceList,
+ _In_
+ PIO_RESOURCE_DESCRIPTOR Descriptor
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfIoResourceListInsertDescriptor)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFIORESLIST ResourceList,
+ _In_
+ PIO_RESOURCE_DESCRIPTOR Descriptor,
+ _In_
+ ULONG Index
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfIoResourceListUpdateDescriptor)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFIORESLIST ResourceList,
+ _In_
+ PIO_RESOURCE_DESCRIPTOR Descriptor,
+ _In_
+ ULONG Index
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+ULONG
+WDFEXPORT(WdfIoResourceListGetCount)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFIORESLIST ResourceList
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+PIO_RESOURCE_DESCRIPTOR
+WDFEXPORT(WdfIoResourceListGetDescriptor)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFIORESLIST ResourceList,
+ _In_
+ ULONG Index
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfIoResourceListRemove)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFIORESLIST ResourceList,
+ _In_
+ ULONG Index
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfIoResourceListRemoveByDescriptor)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFIORESLIST ResourceList,
+ _In_
+ PIO_RESOURCE_DESCRIPTOR Descriptor
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfCmResourceListAppendDescriptor)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFCMRESLIST List,
+ _In_
+ PCM_PARTIAL_RESOURCE_DESCRIPTOR Descriptor
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfCmResourceListInsertDescriptor)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFCMRESLIST List,
+ _In_
+ PCM_PARTIAL_RESOURCE_DESCRIPTOR Descriptor,
+ _In_
+ ULONG Index
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+ULONG
+WDFEXPORT(WdfCmResourceListGetCount)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFCMRESLIST List
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+PCM_PARTIAL_RESOURCE_DESCRIPTOR
+WDFEXPORT(WdfCmResourceListGetDescriptor)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFCMRESLIST List,
+ _In_
+ ULONG Index
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfCmResourceListRemove)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFCMRESLIST List,
+ _In_
+ ULONG Index
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfCmResourceListRemoveByDescriptor)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFCMRESLIST List,
+ _In_
+ PCM_PARTIAL_RESOURCE_DESCRIPTOR Descriptor
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfStringCreate)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_opt_
+ PCUNICODE_STRING UnicodeString,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES StringAttributes,
+ _Out_
+ WDFSTRING* String
+ );
+
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfStringGetUnicodeString)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFSTRING String,
+ _Out_
+ PUNICODE_STRING UnicodeString
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfObjectAcquireLock)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ _Requires_lock_not_held_(_Curr_)
+ _Acquires_lock_(_Curr_)
+ WDFOBJECT Object
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfObjectReleaseLock)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ _Requires_lock_held_(_Curr_)
+ _Releases_lock_(_Curr_)
+ WDFOBJECT Object
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfWaitLockCreate)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES LockAttributes,
+ _Out_
+ WDFWAITLOCK* Lock
+ );
+
+_When_(Timeout == NULL, _IRQL_requires_max_(PASSIVE_LEVEL))
+_When_(Timeout != NULL && *Timeout == 0, _IRQL_requires_max_(DISPATCH_LEVEL))
+_When_(Timeout != NULL && *Timeout != 0, _IRQL_requires_max_(PASSIVE_LEVEL))
+_Always_(_When_(Timeout == NULL, _Acquires_lock_(Lock)))
+_When_(Timeout != NULL && return == STATUS_SUCCESS, _Acquires_lock_(Lock))
+_When_(Timeout != NULL, _Must_inspect_result_)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfWaitLockAcquire)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ _Requires_lock_not_held_(_Curr_)
+ WDFWAITLOCK Lock,
+ _In_opt_
+ PLONGLONG Timeout
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfWaitLockRelease)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ _Requires_lock_held_(_Curr_)
+ _Releases_lock_(_Curr_)
+ WDFWAITLOCK Lock
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfSpinLockCreate)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES SpinLockAttributes,
+ _Out_
+ WDFSPINLOCK* SpinLock
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+_IRQL_raises_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfSpinLockAcquire)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ _Requires_lock_not_held_(_Curr_)
+ _Acquires_lock_(_Curr_)
+ _IRQL_saves_
+ WDFSPINLOCK SpinLock
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+_IRQL_requires_min_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfSpinLockRelease)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ _Requires_lock_held_(_Curr_)
+ _Releases_lock_(_Curr_)
+ _IRQL_restores_
+ WDFSPINLOCK SpinLock
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfTimerCreate)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDF_TIMER_CONFIG Config,
+ _In_
+ PWDF_OBJECT_ATTRIBUTES Attributes,
+ _Out_
+ WDFTIMER* Timer
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+BOOLEAN
+WDFEXPORT(WdfTimerStart)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFTIMER Timer,
+ _In_
+ LONGLONG DueTime
+ );
+
+_When_(Wait == __true, _IRQL_requires_max_(PASSIVE_LEVEL))
+_When_(Wait == __false, _IRQL_requires_max_(DISPATCH_LEVEL))
+WDFAPI
+BOOLEAN
+WDFEXPORT(WdfTimerStop)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFTIMER Timer,
+ _In_
+ BOOLEAN Wait
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+WDFOBJECT
+WDFEXPORT(WdfTimerGetParentObject)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFTIMER Timer
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfUsbTargetDeviceCreate)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES Attributes,
+ _Out_
+ WDFUSBDEVICE* UsbDevice
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfUsbTargetDeviceCreateWithParameters)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ PWDF_USB_DEVICE_CREATE_CONFIG Config,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES Attributes,
+ _Out_
+ WDFUSBDEVICE* UsbDevice
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfUsbTargetDeviceRetrieveInformation)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBDEVICE UsbDevice,
+ _Out_
+ PWDF_USB_DEVICE_INFORMATION Information
+ );
+
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfUsbTargetDeviceGetDeviceDescriptor)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBDEVICE UsbDevice,
+ _Out_
+ PUSB_DEVICE_DESCRIPTOR UsbDeviceDescriptor
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfUsbTargetDeviceRetrieveConfigDescriptor)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBDEVICE UsbDevice,
+ _Out_writes_bytes_to_opt_(*ConfigDescriptorLength,*ConfigDescriptorLength)
+ PVOID ConfigDescriptor,
+ _Inout_
+ PUSHORT ConfigDescriptorLength
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfUsbTargetDeviceQueryString)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBDEVICE UsbDevice,
+ _In_opt_
+ WDFREQUEST Request,
+ _In_opt_
+ PWDF_REQUEST_SEND_OPTIONS RequestOptions,
+ _Out_writes_opt_(*NumCharacters)
+ PUSHORT String,
+ _Inout_
+ PUSHORT NumCharacters,
+ _In_
+ UCHAR StringIndex,
+ _In_opt_
+ USHORT LangID
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfUsbTargetDeviceAllocAndQueryString)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBDEVICE UsbDevice,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES StringMemoryAttributes,
+ _Out_
+ WDFMEMORY* StringMemory,
+ _Out_opt_
+ PUSHORT NumCharacters,
+ _In_
+ UCHAR StringIndex,
+ _In_opt_
+ USHORT LangID
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfUsbTargetDeviceFormatRequestForString)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBDEVICE UsbDevice,
+ _In_
+ WDFREQUEST Request,
+ _In_
+ WDFMEMORY Memory,
+ _In_opt_
+ PWDFMEMORY_OFFSET Offset,
+ _In_
+ UCHAR StringIndex,
+ _In_opt_
+ USHORT LangID
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+UCHAR
+WDFEXPORT(WdfUsbTargetDeviceGetNumInterfaces)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBDEVICE UsbDevice
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfUsbTargetDeviceSelectConfig)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBDEVICE UsbDevice,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES PipeAttributes,
+ _Inout_
+ PWDF_USB_DEVICE_SELECT_CONFIG_PARAMS Params
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+USBD_CONFIGURATION_HANDLE
+WDFEXPORT(WdfUsbTargetDeviceWdmGetConfigurationHandle)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBDEVICE UsbDevice
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfUsbTargetDeviceRetrieveCurrentFrameNumber)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBDEVICE UsbDevice,
+ _Out_
+ PULONG CurrentFrameNumber
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfUsbTargetDeviceSendControlTransferSynchronously)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBDEVICE UsbDevice,
+ _In_opt_
+ WDFREQUEST Request,
+ _In_opt_
+ PWDF_REQUEST_SEND_OPTIONS RequestOptions,
+ _In_
+ PWDF_USB_CONTROL_SETUP_PACKET SetupPacket,
+ _In_opt_
+ PWDF_MEMORY_DESCRIPTOR MemoryDescriptor,
+ _Out_opt_
+ PULONG BytesTransferred
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfUsbTargetDeviceFormatRequestForControlTransfer)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBDEVICE UsbDevice,
+ _In_
+ WDFREQUEST Request,
+ _In_
+ PWDF_USB_CONTROL_SETUP_PACKET SetupPacket,
+ _In_opt_
+ WDFMEMORY TransferMemory,
+ _In_opt_
+ PWDFMEMORY_OFFSET TransferOffset
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfUsbTargetDeviceIsConnectedSynchronous)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBDEVICE UsbDevice
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfUsbTargetDeviceResetPortSynchronously)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBDEVICE UsbDevice
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfUsbTargetDeviceCyclePortSynchronously)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBDEVICE UsbDevice
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfUsbTargetDeviceFormatRequestForCyclePort)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBDEVICE UsbDevice,
+ _In_
+ WDFREQUEST Request
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfUsbTargetDeviceSendUrbSynchronously)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBDEVICE UsbDevice,
+ _In_opt_
+ WDFREQUEST Request,
+ _In_opt_
+ PWDF_REQUEST_SEND_OPTIONS RequestOptions,
+ _In_reads_(_Inexpressible_("union bug in SAL"))
+ PURB Urb
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfUsbTargetDeviceFormatRequestForUrb)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBDEVICE UsbDevice,
+ _In_
+ WDFREQUEST Request,
+ _In_
+ WDFMEMORY UrbMemory,
+ _In_opt_
+ PWDFMEMORY_OFFSET UrbMemoryOffset
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfUsbTargetDeviceQueryUsbCapability)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBDEVICE UsbDevice,
+ _In_
+ CONST GUID* CapabilityType,
+ _In_
+ ULONG CapabilityBufferLength,
+ _When_(CapabilityBufferLength == 0, _Out_opt_)
+ _When_(CapabilityBufferLength != 0 && ResultLength == NULL, _Out_writes_bytes_(CapabilityBufferLength))
+ _When_(CapabilityBufferLength != 0 && ResultLength != NULL, _Out_writes_bytes_to_opt_(CapabilityBufferLength, *ResultLength))
+ PVOID CapabilityBuffer,
+ _Out_opt_
+ _When_(ResultLength != NULL,_Deref_out_range_(<=,CapabilityBufferLength))
+ PULONG ResultLength
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfUsbTargetDeviceCreateUrb)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBDEVICE UsbDevice,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES Attributes,
+ _Out_
+ WDFMEMORY* UrbMemory,
+ _Outptr_opt_result_bytebuffer_(sizeof(URB))
+ PURB* Urb
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfUsbTargetDeviceCreateIsochUrb)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBDEVICE UsbDevice,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES Attributes,
+ _In_
+ ULONG NumberOfIsochPackets,
+ _Out_
+ WDFMEMORY* UrbMemory,
+ _Outptr_opt_result_bytebuffer_(GET_ISO_URB_SIZE(NumberOfIsochPackets))
+ PURB* Urb
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfUsbTargetPipeGetInformation)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBPIPE Pipe,
+ _Out_
+ PWDF_USB_PIPE_INFORMATION PipeInformation
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+BOOLEAN
+WDFEXPORT(WdfUsbTargetPipeIsInEndpoint)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBPIPE Pipe
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+BOOLEAN
+WDFEXPORT(WdfUsbTargetPipeIsOutEndpoint)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBPIPE Pipe
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+WDF_USB_PIPE_TYPE
+WDFEXPORT(WdfUsbTargetPipeGetType)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBPIPE Pipe
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfUsbTargetPipeSetNoMaximumPacketSizeCheck)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBPIPE Pipe
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfUsbTargetPipeWriteSynchronously)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBPIPE Pipe,
+ _In_opt_
+ WDFREQUEST Request,
+ _In_opt_
+ PWDF_REQUEST_SEND_OPTIONS RequestOptions,
+ _In_opt_
+ PWDF_MEMORY_DESCRIPTOR MemoryDescriptor,
+ _Out_opt_
+ PULONG BytesWritten
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfUsbTargetPipeFormatRequestForWrite)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBPIPE Pipe,
+ _In_
+ WDFREQUEST Request,
+ _In_opt_
+ WDFMEMORY WriteMemory,
+ _In_opt_
+ PWDFMEMORY_OFFSET WriteOffset
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfUsbTargetPipeReadSynchronously)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBPIPE Pipe,
+ _In_opt_
+ WDFREQUEST Request,
+ _In_opt_
+ PWDF_REQUEST_SEND_OPTIONS RequestOptions,
+ _In_opt_
+ PWDF_MEMORY_DESCRIPTOR MemoryDescriptor,
+ _Out_opt_
+ PULONG BytesRead
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfUsbTargetPipeFormatRequestForRead)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBPIPE Pipe,
+ _In_
+ WDFREQUEST Request,
+ _In_opt_
+ WDFMEMORY ReadMemory,
+ _In_opt_
+ PWDFMEMORY_OFFSET ReadOffset
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfUsbTargetPipeConfigContinuousReader)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBPIPE Pipe,
+ _In_
+ PWDF_USB_CONTINUOUS_READER_CONFIG Config
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfUsbTargetPipeAbortSynchronously)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBPIPE Pipe,
+ _In_opt_
+ WDFREQUEST Request,
+ _In_opt_
+ PWDF_REQUEST_SEND_OPTIONS RequestOptions
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfUsbTargetPipeFormatRequestForAbort)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBPIPE Pipe,
+ _In_
+ WDFREQUEST Request
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfUsbTargetPipeResetSynchronously)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBPIPE Pipe,
+ _In_opt_
+ WDFREQUEST Request,
+ _In_opt_
+ PWDF_REQUEST_SEND_OPTIONS RequestOptions
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfUsbTargetPipeFormatRequestForReset)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBPIPE Pipe,
+ _In_
+ WDFREQUEST Request
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfUsbTargetPipeSendUrbSynchronously)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBPIPE Pipe,
+ _In_opt_
+ WDFREQUEST Request,
+ _In_opt_
+ PWDF_REQUEST_SEND_OPTIONS RequestOptions,
+ _In_reads_(_Inexpressible_("union bug in SAL"))
+ PURB Urb
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfUsbTargetPipeFormatRequestForUrb)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBPIPE PIPE,
+ _In_
+ WDFREQUEST Request,
+ _In_
+ WDFMEMORY UrbMemory,
+ _In_opt_
+ PWDFMEMORY_OFFSET UrbMemoryOffset
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+BYTE
+WDFEXPORT(WdfUsbInterfaceGetInterfaceNumber)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBINTERFACE UsbInterface
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+BYTE
+WDFEXPORT(WdfUsbInterfaceGetNumEndpoints)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBINTERFACE UsbInterface,
+ _In_
+ UCHAR SettingIndex
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfUsbInterfaceGetDescriptor)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBINTERFACE UsbInterface,
+ _In_
+ UCHAR SettingIndex,
+ _Out_
+ PUSB_INTERFACE_DESCRIPTOR InterfaceDescriptor
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+BYTE
+WDFEXPORT(WdfUsbInterfaceGetNumSettings)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBINTERFACE UsbInterface
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfUsbInterfaceSelectSetting)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBINTERFACE UsbInterface,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES PipesAttributes,
+ _In_
+ PWDF_USB_INTERFACE_SELECT_SETTING_PARAMS Params
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfUsbInterfaceGetEndpointInformation)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBINTERFACE UsbInterface,
+ _In_
+ UCHAR SettingIndex,
+ _In_
+ UCHAR EndpointIndex,
+ _Out_
+ PWDF_USB_PIPE_INFORMATION EndpointInfo
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+WDFUSBINTERFACE
+WDFEXPORT(WdfUsbTargetDeviceGetInterface)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBDEVICE UsbDevice,
+ _In_
+ UCHAR InterfaceIndex
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+BYTE
+WDFEXPORT(WdfUsbInterfaceGetConfiguredSettingIndex)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBINTERFACE Interface
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+BYTE
+WDFEXPORT(WdfUsbInterfaceGetNumConfiguredPipes)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBINTERFACE UsbInterface
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+WDFUSBPIPE
+WDFEXPORT(WdfUsbInterfaceGetConfiguredPipe)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBINTERFACE UsbInterface,
+ _In_
+ UCHAR PipeIndex,
+ _Out_opt_
+ PWDF_USB_PIPE_INFORMATION PipeInfo
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+USBD_PIPE_HANDLE
+WDFEXPORT(WdfUsbTargetPipeWdmGetPipeHandle)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFUSBPIPE UsbPipe
+ );
+
+WDFAPI
+VOID
+WDFEXPORT(WdfVerifierDbgBreakPoint)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals
+ );
+
+WDFAPI
+VOID
+WDFEXPORT(WdfVerifierKeBugCheck)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ ULONG BugCheckCode,
+ _In_
+ ULONG_PTR BugCheckParameter1,
+ _In_
+ ULONG_PTR BugCheckParameter2,
+ _In_
+ ULONG_PTR BugCheckParameter3,
+ _In_
+ ULONG_PTR BugCheckParameter4
+ );
+
+WDFAPI
+PVOID
+WDFEXPORT(WdfGetTriageInfo)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfWmiProviderCreate)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ PWDF_WMI_PROVIDER_CONFIG WmiProviderConfig,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES ProviderAttributes,
+ _Out_
+ WDFWMIPROVIDER* WmiProvider
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+WDFDEVICE
+WDFEXPORT(WdfWmiProviderGetDevice)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFWMIPROVIDER WmiProvider
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+BOOLEAN
+WDFEXPORT(WdfWmiProviderIsEnabled)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFWMIPROVIDER WmiProvider,
+ _In_
+ WDF_WMI_PROVIDER_CONTROL ProviderControl
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+ULONGLONG
+WDFEXPORT(WdfWmiProviderGetTracingHandle)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFWMIPROVIDER WmiProvider
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfWmiInstanceCreate)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFDEVICE Device,
+ _In_
+ PWDF_WMI_INSTANCE_CONFIG InstanceConfig,
+ _In_opt_
+ PWDF_OBJECT_ATTRIBUTES InstanceAttributes,
+ _Out_opt_
+ WDFWMIINSTANCE* Instance
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfWmiInstanceRegister)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFWMIINSTANCE WmiInstance
+ );
+
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfWmiInstanceDeregister)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFWMIINSTANCE WmiInstance
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+WDFDEVICE
+WDFEXPORT(WdfWmiInstanceGetDevice)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFWMIINSTANCE WmiInstance
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+WDFWMIPROVIDER
+WDFEXPORT(WdfWmiInstanceGetProvider)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFWMIINSTANCE WmiInstance
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(APC_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfWmiInstanceFireEvent)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFWMIINSTANCE WmiInstance,
+ _In_opt_
+ ULONG EventDataSize,
+ _In_reads_bytes_opt_(EventDataSize)
+ PVOID EventData
+ );
+
+_Must_inspect_result_
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+NTSTATUS
+WDFEXPORT(WdfWorkItemCreate)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ PWDF_WORKITEM_CONFIG Config,
+ _In_
+ PWDF_OBJECT_ATTRIBUTES Attributes,
+ _Out_
+ WDFWORKITEM* WorkItem
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfWorkItemEnqueue)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFWORKITEM WorkItem
+ );
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+WDFAPI
+WDFOBJECT
+WDFEXPORT(WdfWorkItemGetParentObject)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFWORKITEM WorkItem
+ );
+
+_IRQL_requires_max_(PASSIVE_LEVEL)
+WDFAPI
+VOID
+WDFEXPORT(WdfWorkItemFlush)(
+ _In_
+ PWDF_DRIVER_GLOBALS DriverGlobals,
+ _In_
+ WDFWORKITEM WorkItem
+ );
+
+
+#ifdef FX_DYNAMICS_GENERATE_TABLE
+
+WDFVERSION WdfVersion = {
+ sizeof(WDFVERSION),
+ sizeof(WDFFUNCTIONS)/sizeof(PVOID),
+ {
+ WDFEXPORT(WdfChildListCreate),
+ WDFEXPORT(WdfChildListGetDevice),
+ WDFEXPORT(WdfChildListRetrievePdo),
+ WDFEXPORT(WdfChildListRetrieveAddressDescription),
+ WDFEXPORT(WdfChildListBeginScan),
+ WDFEXPORT(WdfChildListEndScan),
+ WDFEXPORT(WdfChildListBeginIteration),
+ WDFEXPORT(WdfChildListRetrieveNextDevice),
+ WDFEXPORT(WdfChildListEndIteration),
+ WDFEXPORT(WdfChildListAddOrUpdateChildDescriptionAsPresent),
+ WDFEXPORT(WdfChildListUpdateChildDescriptionAsMissing),
+ WDFEXPORT(WdfChildListUpdateAllChildDescriptionsAsPresent),
+ WDFEXPORT(WdfChildListRequestChildEject),
+ WDFEXPORT(WdfCollectionCreate),
+ WDFEXPORT(WdfCollectionGetCount),
+ WDFEXPORT(WdfCollectionAdd),
+ WDFEXPORT(WdfCollectionRemove),
+ WDFEXPORT(WdfCollectionRemoveItem),
+ WDFEXPORT(WdfCollectionGetItem),
+ WDFEXPORT(WdfCollectionGetFirstItem),
+ WDFEXPORT(WdfCollectionGetLastItem),
+ WDFEXPORT(WdfCommonBufferCreate),
+ WDFEXPORT(WdfCommonBufferGetAlignedVirtualAddress),
+ WDFEXPORT(WdfCommonBufferGetAlignedLogicalAddress),
+ WDFEXPORT(WdfCommonBufferGetLength),
+ WDFEXPORT(WdfControlDeviceInitAllocate),
+ WDFEXPORT(WdfControlDeviceInitSetShutdownNotification),
+ WDFEXPORT(WdfControlFinishInitializing),
+ WDFEXPORT(WdfDeviceGetDeviceState),
+ WDFEXPORT(WdfDeviceSetDeviceState),
+ WDFEXPORT(WdfWdmDeviceGetWdfDeviceHandle),
+ WDFEXPORT(WdfDeviceWdmGetDeviceObject),
+ WDFEXPORT(WdfDeviceWdmGetAttachedDevice),
+ WDFEXPORT(WdfDeviceWdmGetPhysicalDevice),
+ WDFEXPORT(WdfDeviceWdmDispatchPreprocessedIrp),
+ WDFEXPORT(WdfDeviceAddDependentUsageDeviceObject),
+ WDFEXPORT(WdfDeviceAddRemovalRelationsPhysicalDevice),
+ WDFEXPORT(WdfDeviceRemoveRemovalRelationsPhysicalDevice),
+ WDFEXPORT(WdfDeviceClearRemovalRelationsDevices),
+ WDFEXPORT(WdfDeviceGetDriver),
+ WDFEXPORT(WdfDeviceRetrieveDeviceName),
+ WDFEXPORT(WdfDeviceAssignMofResourceName),
+ WDFEXPORT(WdfDeviceGetIoTarget),
+ WDFEXPORT(WdfDeviceGetDevicePnpState),
+ WDFEXPORT(WdfDeviceGetDevicePowerState),
+ WDFEXPORT(WdfDeviceGetDevicePowerPolicyState),
+ WDFEXPORT(WdfDeviceAssignS0IdleSettings),
+ WDFEXPORT(WdfDeviceAssignSxWakeSettings),
+ WDFEXPORT(WdfDeviceOpenRegistryKey),
+ WDFEXPORT(WdfDeviceSetSpecialFileSupport),
+ WDFEXPORT(WdfDeviceSetCharacteristics),
+ WDFEXPORT(WdfDeviceGetCharacteristics),
+ WDFEXPORT(WdfDeviceGetAlignmentRequirement),
+ WDFEXPORT(WdfDeviceSetAlignmentRequirement),
+ WDFEXPORT(WdfDeviceInitFree),
+ WDFEXPORT(WdfDeviceInitSetPnpPowerEventCallbacks),
+ WDFEXPORT(WdfDeviceInitSetPowerPolicyEventCallbacks),
+ WDFEXPORT(WdfDeviceInitSetPowerPolicyOwnership),
+ WDFEXPORT(WdfDeviceInitRegisterPnpStateChangeCallback),
+ WDFEXPORT(WdfDeviceInitRegisterPowerStateChangeCallback),
+ WDFEXPORT(WdfDeviceInitRegisterPowerPolicyStateChangeCallback),
+ WDFEXPORT(WdfDeviceInitSetIoType),
+ WDFEXPORT(WdfDeviceInitSetExclusive),
+ WDFEXPORT(WdfDeviceInitSetPowerNotPageable),
+ WDFEXPORT(WdfDeviceInitSetPowerPageable),
+ WDFEXPORT(WdfDeviceInitSetPowerInrush),
+ WDFEXPORT(WdfDeviceInitSetDeviceType),
+ WDFEXPORT(WdfDeviceInitAssignName),
+ WDFEXPORT(WdfDeviceInitAssignSDDLString),
+ WDFEXPORT(WdfDeviceInitSetDeviceClass),
+ WDFEXPORT(WdfDeviceInitSetCharacteristics),
+ WDFEXPORT(WdfDeviceInitSetFileObjectConfig),
+ WDFEXPORT(WdfDeviceInitSetRequestAttributes),
+ WDFEXPORT(WdfDeviceInitAssignWdmIrpPreprocessCallback),
+ WDFEXPORT(WdfDeviceInitSetIoInCallerContextCallback),
+ WDFEXPORT(WdfDeviceCreate),
+ WDFEXPORT(WdfDeviceSetStaticStopRemove),
+ WDFEXPORT(WdfDeviceCreateDeviceInterface),
+ WDFEXPORT(WdfDeviceSetDeviceInterfaceState),
+ WDFEXPORT(WdfDeviceRetrieveDeviceInterfaceString),
+ WDFEXPORT(WdfDeviceCreateSymbolicLink),
+ WDFEXPORT(WdfDeviceQueryProperty),
+ WDFEXPORT(WdfDeviceAllocAndQueryProperty),
+ WDFEXPORT(WdfDeviceSetPnpCapabilities),
+ WDFEXPORT(WdfDeviceSetPowerCapabilities),
+ WDFEXPORT(WdfDeviceSetBusInformationForChildren),
+ WDFEXPORT(WdfDeviceIndicateWakeStatus),
+ WDFEXPORT(WdfDeviceSetFailed),
+ WDFEXPORT(WdfDeviceStopIdleNoTrack),
+ WDFEXPORT(WdfDeviceResumeIdleNoTrack),
+ WDFEXPORT(WdfDeviceGetFileObject),
+ WDFEXPORT(WdfDeviceEnqueueRequest),
+ WDFEXPORT(WdfDeviceGetDefaultQueue),
+ WDFEXPORT(WdfDeviceConfigureRequestDispatching),
+ WDFEXPORT(WdfDmaEnablerCreate),
+ WDFEXPORT(WdfDmaEnablerGetMaximumLength),
+ WDFEXPORT(WdfDmaEnablerGetMaximumScatterGatherElements),
+ WDFEXPORT(WdfDmaEnablerSetMaximumScatterGatherElements),
+ WDFEXPORT(WdfDmaTransactionCreate),
+ WDFEXPORT(WdfDmaTransactionInitialize),
+ WDFEXPORT(WdfDmaTransactionInitializeUsingRequest),
+ WDFEXPORT(WdfDmaTransactionExecute),
+ WDFEXPORT(WdfDmaTransactionRelease),
+ WDFEXPORT(WdfDmaTransactionDmaCompleted),
+ WDFEXPORT(WdfDmaTransactionDmaCompletedWithLength),
+ WDFEXPORT(WdfDmaTransactionDmaCompletedFinal),
+ WDFEXPORT(WdfDmaTransactionGetBytesTransferred),
+ WDFEXPORT(WdfDmaTransactionSetMaximumLength),
+ WDFEXPORT(WdfDmaTransactionGetRequest),
+ WDFEXPORT(WdfDmaTransactionGetCurrentDmaTransferLength),
+ WDFEXPORT(WdfDmaTransactionGetDevice),
+ WDFEXPORT(WdfDpcCreate),
+ WDFEXPORT(WdfDpcEnqueue),
+ WDFEXPORT(WdfDpcCancel),
+ WDFEXPORT(WdfDpcGetParentObject),
+ WDFEXPORT(WdfDpcWdmGetDpc),
+ WDFEXPORT(WdfDriverCreate),
+ WDFEXPORT(WdfDriverGetRegistryPath),
+ WDFEXPORT(WdfDriverWdmGetDriverObject),
+ WDFEXPORT(WdfDriverOpenParametersRegistryKey),
+ WDFEXPORT(WdfWdmDriverGetWdfDriverHandle),
+ WDFEXPORT(WdfDriverRegisterTraceInfo),
+ WDFEXPORT(WdfDriverRetrieveVersionString),
+ WDFEXPORT(WdfDriverIsVersionAvailable),
+ WDFEXPORT(WdfFdoInitWdmGetPhysicalDevice),
+ WDFEXPORT(WdfFdoInitOpenRegistryKey),
+ WDFEXPORT(WdfFdoInitQueryProperty),
+ WDFEXPORT(WdfFdoInitAllocAndQueryProperty),
+ WDFEXPORT(WdfFdoInitSetEventCallbacks),
+ WDFEXPORT(WdfFdoInitSetFilter),
+ WDFEXPORT(WdfFdoInitSetDefaultChildListConfig),
+ WDFEXPORT(WdfFdoQueryForInterface),
+ WDFEXPORT(WdfFdoGetDefaultChildList),
+ WDFEXPORT(WdfFdoAddStaticChild),
+ WDFEXPORT(WdfFdoLockStaticChildListForIteration),
+ WDFEXPORT(WdfFdoRetrieveNextStaticChild),
+ WDFEXPORT(WdfFdoUnlockStaticChildListFromIteration),
+ WDFEXPORT(WdfFileObjectGetFileName),
+ 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),
+ WDFEXPORT(WdfIoQueueCreate),
+ WDFEXPORT(WdfIoQueueGetState),
+ WDFEXPORT(WdfIoQueueStart),
+ WDFEXPORT(WdfIoQueueStop),
+ WDFEXPORT(WdfIoQueueStopSynchronously),
+ WDFEXPORT(WdfIoQueueGetDevice),
+ WDFEXPORT(WdfIoQueueRetrieveNextRequest),
+ WDFEXPORT(WdfIoQueueRetrieveRequestByFileObject),
+ WDFEXPORT(WdfIoQueueFindRequest),
+ WDFEXPORT(WdfIoQueueRetrieveFoundRequest),
+ WDFEXPORT(WdfIoQueueDrainSynchronously),
+ WDFEXPORT(WdfIoQueueDrain),
+ WDFEXPORT(WdfIoQueuePurgeSynchronously),
+ WDFEXPORT(WdfIoQueuePurge),
+ WDFEXPORT(WdfIoQueueReadyNotify),
+ WDFEXPORT(WdfIoTargetCreate),
+ WDFEXPORT(WdfIoTargetOpen),
+ WDFEXPORT(WdfIoTargetCloseForQueryRemove),
+ WDFEXPORT(WdfIoTargetClose),
+ WDFEXPORT(WdfIoTargetStart),
+ WDFEXPORT(WdfIoTargetStop),
+ WDFEXPORT(WdfIoTargetGetState),
+ WDFEXPORT(WdfIoTargetGetDevice),
+ WDFEXPORT(WdfIoTargetQueryTargetProperty),
+ WDFEXPORT(WdfIoTargetAllocAndQueryTargetProperty),
+ WDFEXPORT(WdfIoTargetQueryForInterface),
+ WDFEXPORT(WdfIoTargetWdmGetTargetDeviceObject),
+ WDFEXPORT(WdfIoTargetWdmGetTargetPhysicalDevice),
+ WDFEXPORT(WdfIoTargetWdmGetTargetFileObject),
+ WDFEXPORT(WdfIoTargetWdmGetTargetFileHandle),
+ WDFEXPORT(WdfIoTargetSendReadSynchronously),
+ WDFEXPORT(WdfIoTargetFormatRequestForRead),
+ WDFEXPORT(WdfIoTargetSendWriteSynchronously),
+ WDFEXPORT(WdfIoTargetFormatRequestForWrite),
+ WDFEXPORT(WdfIoTargetSendIoctlSynchronously),
+ WDFEXPORT(WdfIoTargetFormatRequestForIoctl),
+ WDFEXPORT(WdfIoTargetSendInternalIoctlSynchronously),
+ WDFEXPORT(WdfIoTargetFormatRequestForInternalIoctl),
+ WDFEXPORT(WdfIoTargetSendInternalIoctlOthersSynchronously),
+ WDFEXPORT(WdfIoTargetFormatRequestForInternalIoctlOthers),
+ WDFEXPORT(WdfMemoryCreate),
+ WDFEXPORT(WdfMemoryCreatePreallocated),
+ WDFEXPORT(WdfMemoryGetBuffer),
+ WDFEXPORT(WdfMemoryAssignBuffer),
+ WDFEXPORT(WdfMemoryCopyToBuffer),
+ WDFEXPORT(WdfMemoryCopyFromBuffer),
+ WDFEXPORT(WdfLookasideListCreate),
+ WDFEXPORT(WdfMemoryCreateFromLookaside),
+ WDFEXPORT(WdfDeviceMiniportCreate),
+ WDFEXPORT(WdfDriverMiniportUnload),
+ WDFEXPORT(WdfObjectGetTypedContextWorker),
+ WDFEXPORT(WdfObjectAllocateContext),
+ WDFEXPORT(WdfObjectContextGetObject),
+ WDFEXPORT(WdfObjectReferenceActual),
+ WDFEXPORT(WdfObjectDereferenceActual),
+ WDFEXPORT(WdfObjectCreate),
+ WDFEXPORT(WdfObjectDelete),
+ WDFEXPORT(WdfObjectQuery),
+ WDFEXPORT(WdfPdoInitAllocate),
+ WDFEXPORT(WdfPdoInitSetEventCallbacks),
+ WDFEXPORT(WdfPdoInitAssignDeviceID),
+ WDFEXPORT(WdfPdoInitAssignInstanceID),
+ WDFEXPORT(WdfPdoInitAddHardwareID),
+ WDFEXPORT(WdfPdoInitAddCompatibleID),
+ WDFEXPORT(WdfPdoInitAddDeviceText),
+ WDFEXPORT(WdfPdoInitSetDefaultLocale),
+ WDFEXPORT(WdfPdoInitAssignRawDevice),
+ WDFEXPORT(WdfPdoMarkMissing),
+ WDFEXPORT(WdfPdoRequestEject),
+ WDFEXPORT(WdfPdoGetParent),
+ WDFEXPORT(WdfPdoRetrieveIdentificationDescription),
+ WDFEXPORT(WdfPdoRetrieveAddressDescription),
+ WDFEXPORT(WdfPdoUpdateAddressDescription),
+ WDFEXPORT(WdfPdoAddEjectionRelationsPhysicalDevice),
+ WDFEXPORT(WdfPdoRemoveEjectionRelationsPhysicalDevice),
+ WDFEXPORT(WdfPdoClearEjectionRelationsDevices),
+ WDFEXPORT(WdfDeviceAddQueryInterface),
+ WDFEXPORT(WdfRegistryOpenKey),
+ WDFEXPORT(WdfRegistryCreateKey),
+ WDFEXPORT(WdfRegistryClose),
+ WDFEXPORT(WdfRegistryWdmGetHandle),
+ WDFEXPORT(WdfRegistryRemoveKey),
+ WDFEXPORT(WdfRegistryRemoveValue),
+ WDFEXPORT(WdfRegistryQueryValue),
+ WDFEXPORT(WdfRegistryQueryMemory),
+ WDFEXPORT(WdfRegistryQueryMultiString),
+ WDFEXPORT(WdfRegistryQueryUnicodeString),
+ WDFEXPORT(WdfRegistryQueryString),
+ WDFEXPORT(WdfRegistryQueryULong),
+ WDFEXPORT(WdfRegistryAssignValue),
+ WDFEXPORT(WdfRegistryAssignMemory),
+ WDFEXPORT(WdfRegistryAssignMultiString),
+ WDFEXPORT(WdfRegistryAssignUnicodeString),
+ WDFEXPORT(WdfRegistryAssignString),
+ WDFEXPORT(WdfRegistryAssignULong),
+ WDFEXPORT(WdfRequestCreate),
+ WDFEXPORT(WdfRequestCreateFromIrp),
+ WDFEXPORT(WdfRequestReuse),
+ WDFEXPORT(WdfRequestChangeTarget),
+ WDFEXPORT(WdfRequestFormatRequestUsingCurrentType),
+ WDFEXPORT(WdfRequestWdmFormatUsingStackLocation),
+ WDFEXPORT(WdfRequestSend),
+ WDFEXPORT(WdfRequestGetStatus),
+ WDFEXPORT(WdfRequestMarkCancelable),
+ WDFEXPORT(WdfRequestUnmarkCancelable),
+ WDFEXPORT(WdfRequestIsCanceled),
+ WDFEXPORT(WdfRequestCancelSentRequest),
+ WDFEXPORT(WdfRequestIsFrom32BitProcess),
+ WDFEXPORT(WdfRequestSetCompletionRoutine),
+ WDFEXPORT(WdfRequestGetCompletionParams),
+ WDFEXPORT(WdfRequestAllocateTimer),
+ WDFEXPORT(WdfRequestComplete),
+ WDFEXPORT(WdfRequestCompleteWithPriorityBoost),
+ WDFEXPORT(WdfRequestCompleteWithInformation),
+ WDFEXPORT(WdfRequestGetParameters),
+ WDFEXPORT(WdfRequestRetrieveInputMemory),
+ WDFEXPORT(WdfRequestRetrieveOutputMemory),
+ WDFEXPORT(WdfRequestRetrieveInputBuffer),
+ WDFEXPORT(WdfRequestRetrieveOutputBuffer),
+ WDFEXPORT(WdfRequestRetrieveInputWdmMdl),
+ WDFEXPORT(WdfRequestRetrieveOutputWdmMdl),
+ WDFEXPORT(WdfRequestRetrieveUnsafeUserInputBuffer),
+ WDFEXPORT(WdfRequestRetrieveUnsafeUserOutputBuffer),
+ WDFEXPORT(WdfRequestSetInformation),
+ WDFEXPORT(WdfRequestGetInformation),
+ WDFEXPORT(WdfRequestGetFileObject),
+ WDFEXPORT(WdfRequestProbeAndLockUserBufferForRead),
+ WDFEXPORT(WdfRequestProbeAndLockUserBufferForWrite),
+ WDFEXPORT(WdfRequestGetRequestorMode),
+ WDFEXPORT(WdfRequestForwardToIoQueue),
+ WDFEXPORT(WdfRequestGetIoQueue),
+ 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),
+ WDFEXPORT(WdfStringCreate),
+ WDFEXPORT(WdfStringGetUnicodeString),
+ WDFEXPORT(WdfObjectAcquireLock),
+ WDFEXPORT(WdfObjectReleaseLock),
+ WDFEXPORT(WdfWaitLockCreate),
+ WDFEXPORT(WdfWaitLockAcquire),
+ WDFEXPORT(WdfWaitLockRelease),
+ WDFEXPORT(WdfSpinLockCreate),
+ WDFEXPORT(WdfSpinLockAcquire),
+ WDFEXPORT(WdfSpinLockRelease),
+ WDFEXPORT(WdfTimerCreate),
+ WDFEXPORT(WdfTimerStart),
+ WDFEXPORT(WdfTimerStop),
+ WDFEXPORT(WdfTimerGetParentObject),
+ WDFEXPORT(WdfUsbTargetDeviceCreate),
+ WDFEXPORT(WdfUsbTargetDeviceRetrieveInformation),
+ WDFEXPORT(WdfUsbTargetDeviceGetDeviceDescriptor),
+ WDFEXPORT(WdfUsbTargetDeviceRetrieveConfigDescriptor),
+ WDFEXPORT(WdfUsbTargetDeviceQueryString),
+ WDFEXPORT(WdfUsbTargetDeviceAllocAndQueryString),
+ WDFEXPORT(WdfUsbTargetDeviceFormatRequestForString),
+ WDFEXPORT(WdfUsbTargetDeviceGetNumInterfaces),
+ WDFEXPORT(WdfUsbTargetDeviceSelectConfig),
+ WDFEXPORT(WdfUsbTargetDeviceWdmGetConfigurationHandle),
+ WDFEXPORT(WdfUsbTargetDeviceRetrieveCurrentFrameNumber),
+ WDFEXPORT(WdfUsbTargetDeviceSendControlTransferSynchronously),
+ WDFEXPORT(WdfUsbTargetDeviceFormatRequestForControlTransfer),
+ WDFEXPORT(WdfUsbTargetDeviceIsConnectedSynchronous),
+ WDFEXPORT(WdfUsbTargetDeviceResetPortSynchronously),
+ WDFEXPORT(WdfUsbTargetDeviceCyclePortSynchronously),
+ WDFEXPORT(WdfUsbTargetDeviceFormatRequestForCyclePort),
+ WDFEXPORT(WdfUsbTargetDeviceSendUrbSynchronously),
+ WDFEXPORT(WdfUsbTargetDeviceFormatRequestForUrb),
+ WDFEXPORT(WdfUsbTargetPipeGetInformation),
+ WDFEXPORT(WdfUsbTargetPipeIsInEndpoint),
+ WDFEXPORT(WdfUsbTargetPipeIsOutEndpoint),
+ WDFEXPORT(WdfUsbTargetPipeGetType),
+ WDFEXPORT(WdfUsbTargetPipeSetNoMaximumPacketSizeCheck),
+ WDFEXPORT(WdfUsbTargetPipeWriteSynchronously),
+ WDFEXPORT(WdfUsbTargetPipeFormatRequestForWrite),
+ WDFEXPORT(WdfUsbTargetPipeReadSynchronously),
+ WDFEXPORT(WdfUsbTargetPipeFormatRequestForRead),
+ WDFEXPORT(WdfUsbTargetPipeConfigContinuousReader),
+ WDFEXPORT(WdfUsbTargetPipeAbortSynchronously),
+ WDFEXPORT(WdfUsbTargetPipeFormatRequestForAbort),
+ WDFEXPORT(WdfUsbTargetPipeResetSynchronously),
+ WDFEXPORT(WdfUsbTargetPipeFormatRequestForReset),
+ WDFEXPORT(WdfUsbTargetPipeSendUrbSynchronously),
+ WDFEXPORT(WdfUsbTargetPipeFormatRequestForUrb),
+ WDFEXPORT(WdfUsbInterfaceGetInterfaceNumber),
+ WDFEXPORT(WdfUsbInterfaceGetNumEndpoints),
+ WDFEXPORT(WdfUsbInterfaceGetDescriptor),
+ WDFEXPORT(WdfUsbInterfaceSelectSetting),
+ WDFEXPORT(WdfUsbInterfaceGetEndpointInformation),
+ WDFEXPORT(WdfUsbTargetDeviceGetInterface),
+ WDFEXPORT(WdfUsbInterfaceGetConfiguredSettingIndex),
+ WDFEXPORT(WdfUsbInterfaceGetNumConfiguredPipes),
+ WDFEXPORT(WdfUsbInterfaceGetConfiguredPipe),
+ WDFEXPORT(WdfUsbTargetPipeWdmGetPipeHandle),
+ WDFEXPORT(WdfVerifierDbgBreakPoint),
+ WDFEXPORT(WdfVerifierKeBugCheck),
+ WDFEXPORT(WdfWmiProviderCreate),
+ WDFEXPORT(WdfWmiProviderGetDevice),
+ WDFEXPORT(WdfWmiProviderIsEnabled),
+ WDFEXPORT(WdfWmiProviderGetTracingHandle),
+ WDFEXPORT(WdfWmiInstanceCreate),
+ WDFEXPORT(WdfWmiInstanceRegister),
+ WDFEXPORT(WdfWmiInstanceDeregister),
+ WDFEXPORT(WdfWmiInstanceGetDevice),
+ WDFEXPORT(WdfWmiInstanceGetProvider),
+ WDFEXPORT(WdfWmiInstanceFireEvent),
+ WDFEXPORT(WdfWorkItemCreate),
+ WDFEXPORT(WdfWorkItemEnqueue),
+ WDFEXPORT(WdfWorkItemGetParentObject),
+ WDFEXPORT(WdfWorkItemFlush),
+ WDFEXPORT(WdfCommonBufferCreateWithConfig),
+ WDFEXPORT(WdfDmaEnablerGetFragmentLength),
+ WDFEXPORT(WdfDmaEnablerWdmGetDmaAdapter),
+ WDFEXPORT(WdfUsbInterfaceGetNumSettings),
+ WDFEXPORT(WdfDeviceRemoveDependentUsageDeviceObject),
+ WDFEXPORT(WdfDeviceGetSystemPowerAction),
+ WDFEXPORT(WdfInterruptSetExtendedPolicy),
+ WDFEXPORT(WdfIoQueueAssignForwardProgressPolicy),
+ WDFEXPORT(WdfPdoInitAssignContainerID),
+ WDFEXPORT(WdfPdoInitAllowForwardingRequestToParent),
+ WDFEXPORT(WdfRequestMarkCancelableEx),
+ WDFEXPORT(WdfRequestIsReserved),
+ WDFEXPORT(WdfRequestForwardToParentDeviceIoQueue),
+ WDFEXPORT(WdfCxDeviceInitAllocate),
+ WDFEXPORT(WdfCxDeviceInitAssignWdmIrpPreprocessCallback),
+ WDFEXPORT(WdfCxDeviceInitSetIoInCallerContextCallback),
+ WDFEXPORT(WdfCxDeviceInitSetRequestAttributes),
+ WDFEXPORT(WdfCxDeviceInitSetFileObjectConfig),
+ WDFEXPORT(WdfDeviceWdmDispatchIrp),
+ WDFEXPORT(WdfDeviceWdmDispatchIrpToIoQueue),
+ WDFEXPORT(WdfDeviceInitSetRemoveLockOptions),
+ WDFEXPORT(WdfDeviceConfigureWdmIrpDispatchCallback),
+ WDFEXPORT(WdfDmaEnablerConfigureSystemProfile),
+ WDFEXPORT(WdfDmaTransactionInitializeUsingOffset),
+ WDFEXPORT(WdfDmaTransactionGetTransferInfo),
+ WDFEXPORT(WdfDmaTransactionSetChannelConfigurationCallback),
+ WDFEXPORT(WdfDmaTransactionSetTransferCompleteCallback),
+ WDFEXPORT(WdfDmaTransactionSetImmediateExecution),
+ WDFEXPORT(WdfDmaTransactionAllocateResources),
+ WDFEXPORT(WdfDmaTransactionSetDeviceAddressOffset),
+ WDFEXPORT(WdfDmaTransactionFreeResources),
+ WDFEXPORT(WdfDmaTransactionCancel),
+ WDFEXPORT(WdfDmaTransactionWdmGetTransferContext),
+ WDFEXPORT(WdfInterruptQueueWorkItemForIsr),
+ WDFEXPORT(WdfInterruptTryToAcquireLock),
+ WDFEXPORT(WdfIoQueueStopAndPurge),
+ WDFEXPORT(WdfIoQueueStopAndPurgeSynchronously),
+ WDFEXPORT(WdfIoTargetPurge),
+ WDFEXPORT(WdfUsbTargetDeviceCreateWithParameters),
+ WDFEXPORT(WdfUsbTargetDeviceQueryUsbCapability),
+ WDFEXPORT(WdfUsbTargetDeviceCreateUrb),
+ WDFEXPORT(WdfUsbTargetDeviceCreateIsochUrb),
+ WDFEXPORT(WdfDeviceWdmAssignPowerFrameworkSettings),
+ WDFEXPORT(WdfDmaTransactionStopSystemTransfer),
+ WDFEXPORT(WdfCxVerifierKeBugCheck),
+ WDFEXPORT(WdfInterruptReportActive),
+ WDFEXPORT(WdfInterruptReportInactive),
+ WDFEXPORT(WdfDeviceInitSetReleaseHardwareOrderOnFailure),
+ WDFEXPORT(WdfGetTriageInfo),
+ WDFEXPORT(WdfDeviceInitSetIoTypeEx),
+ WDFEXPORT(WdfDeviceQueryPropertyEx),
+ WDFEXPORT(WdfDeviceAllocAndQueryPropertyEx),
+ WDFEXPORT(WdfDeviceAssignProperty),
+ WDFEXPORT(WdfFdoInitQueryPropertyEx),
+ WDFEXPORT(WdfFdoInitAllocAndQueryPropertyEx),
+ WDFEXPORT(WdfDeviceStopIdleActual),
+ WDFEXPORT(WdfDeviceResumeIdleActual),
+ WDFEXPORT(WdfDeviceGetSelfIoTarget),
+ WDFEXPORT(WdfDeviceInitAllowSelfIoTarget),
+ WDFEXPORT(WdfIoTargetSelfAssignDefaultIoQueue),
+ WDFEXPORT(WdfDeviceOpenDevicemapKey),
+ }
+};
+
+#endif // FX_DYNAMICS_GENERATE_TABLE
+
+#endif // _FXDYNAMICS_H_
+