1 /*++ 2 3 Copyright (c) Microsoft. All rights reserved. 4 5 Module Name: FxDynamics.h 6 7 Abstract: 8 Generated header for WDF APIs 9 10 Environment: 11 User mode only 12 13 Warning: manual changes to this file will be lost. 14 --*/ 15 16 #ifndef _FXDYNAMICS_H_ 17 #define _FXDYNAMICS_H_ 18 19 20 typedef struct _WDFFUNCTIONS { 21 22 PFN_WDFCOLLECTIONCREATE pfnWdfCollectionCreate; 23 PFN_WDFCOLLECTIONGETCOUNT pfnWdfCollectionGetCount; 24 PFN_WDFCOLLECTIONADD pfnWdfCollectionAdd; 25 PFN_WDFCOLLECTIONREMOVE pfnWdfCollectionRemove; 26 PFN_WDFCOLLECTIONREMOVEITEM pfnWdfCollectionRemoveItem; 27 PFN_WDFCOLLECTIONGETITEM pfnWdfCollectionGetItem; 28 PFN_WDFCOLLECTIONGETFIRSTITEM pfnWdfCollectionGetFirstItem; 29 PFN_WDFCOLLECTIONGETLASTITEM pfnWdfCollectionGetLastItem; 30 PFN_WDFCXDEVICEINITALLOCATE pfnWdfCxDeviceInitAllocate; 31 PFN_WDFCXDEVICEINITSETREQUESTATTRIBUTES pfnWdfCxDeviceInitSetRequestAttributes; 32 PFN_WDFCXDEVICEINITSETFILEOBJECTCONFIG pfnWdfCxDeviceInitSetFileObjectConfig; 33 PFN_WDFCXVERIFIERKEBUGCHECK pfnWdfCxVerifierKeBugCheck; 34 PFN_WDFDEVICEGETDEVICESTATE pfnWdfDeviceGetDeviceState; 35 PFN_WDFDEVICESETDEVICESTATE pfnWdfDeviceSetDeviceState; 36 PFN_WDFDEVICEGETDRIVER pfnWdfDeviceGetDriver; 37 PFN_WDFDEVICEGETIOTARGET pfnWdfDeviceGetIoTarget; 38 PFN_WDFDEVICEASSIGNS0IDLESETTINGS pfnWdfDeviceAssignS0IdleSettings; 39 PFN_WDFDEVICEASSIGNSXWAKESETTINGS pfnWdfDeviceAssignSxWakeSettings; 40 PFN_WDFDEVICEOPENREGISTRYKEY pfnWdfDeviceOpenRegistryKey; 41 PFN_WDFDEVICEINITSETPNPPOWEREVENTCALLBACKS pfnWdfDeviceInitSetPnpPowerEventCallbacks; 42 PFN_WDFDEVICEINITSETPOWERPOLICYEVENTCALLBACKS pfnWdfDeviceInitSetPowerPolicyEventCallbacks; 43 PFN_WDFDEVICEINITSETPOWERPOLICYOWNERSHIP pfnWdfDeviceInitSetPowerPolicyOwnership; 44 PFN_WDFDEVICEINITSETIOTYPE pfnWdfDeviceInitSetIoType; 45 PFN_WDFDEVICEINITSETFILEOBJECTCONFIG pfnWdfDeviceInitSetFileObjectConfig; 46 PFN_WDFDEVICEINITSETREQUESTATTRIBUTES pfnWdfDeviceInitSetRequestAttributes; 47 PFN_WDFDEVICECREATE pfnWdfDeviceCreate; 48 PFN_WDFDEVICESETSTATICSTOPREMOVE pfnWdfDeviceSetStaticStopRemove; 49 PFN_WDFDEVICECREATEDEVICEINTERFACE pfnWdfDeviceCreateDeviceInterface; 50 PFN_WDFDEVICESETDEVICEINTERFACESTATE pfnWdfDeviceSetDeviceInterfaceState; 51 PFN_WDFDEVICERETRIEVEDEVICEINTERFACESTRING pfnWdfDeviceRetrieveDeviceInterfaceString; 52 PFN_WDFDEVICECREATESYMBOLICLINK pfnWdfDeviceCreateSymbolicLink; 53 PFN_WDFDEVICEQUERYPROPERTY pfnWdfDeviceQueryProperty; 54 PFN_WDFDEVICEALLOCANDQUERYPROPERTY pfnWdfDeviceAllocAndQueryProperty; 55 PFN_WDFDEVICESETPNPCAPABILITIES pfnWdfDeviceSetPnpCapabilities; 56 PFN_WDFDEVICESETPOWERCAPABILITIES pfnWdfDeviceSetPowerCapabilities; 57 PFN_WDFDEVICESETFAILED pfnWdfDeviceSetFailed; 58 PFN_WDFDEVICESTOPIDLENOTRACK pfnWdfDeviceStopIdleNoTrack; 59 PFN_WDFDEVICERESUMEIDLENOTRACK pfnWdfDeviceResumeIdleNoTrack; 60 PFN_WDFDEVICEGETFILEOBJECT pfnWdfDeviceGetFileObject; 61 PFN_WDFDEVICEGETDEFAULTQUEUE pfnWdfDeviceGetDefaultQueue; 62 PFN_WDFDEVICECONFIGUREREQUESTDISPATCHING pfnWdfDeviceConfigureRequestDispatching; 63 PFN_WDFDEVICEGETSYSTEMPOWERACTION pfnWdfDeviceGetSystemPowerAction; 64 PFN_WDFDEVICEINITSETRELEASEHARDWAREORDERONFAILURE pfnWdfDeviceInitSetReleaseHardwareOrderOnFailure; 65 PFN_WDFDEVICEINITSETIOTYPEEX pfnWdfDeviceInitSetIoTypeEx; 66 PFN_WDFDEVICEPOSTEVENT pfnWdfDevicePostEvent; 67 PFN_WDFDEVICEMAPIOSPACE pfnWdfDeviceMapIoSpace; 68 PFN_WDFDEVICEUNMAPIOSPACE pfnWdfDeviceUnmapIoSpace; 69 PFN_WDFDEVICEGETHARDWAREREGISTERMAPPEDADDRESS pfnWdfDeviceGetHardwareRegisterMappedAddress; 70 PFN_WDFDEVICEREADFROMHARDWARE pfnWdfDeviceReadFromHardware; 71 PFN_WDFDEVICEWRITETOHARDWARE pfnWdfDeviceWriteToHardware; 72 PFN_WDFDEVICEASSIGNINTERFACEPROPERTY pfnWdfDeviceAssignInterfaceProperty; 73 PFN_WDFDEVICEALLOCANDQUERYINTERFACEPROPERTY pfnWdfDeviceAllocAndQueryInterfaceProperty; 74 PFN_WDFDEVICEQUERYINTERFACEPROPERTY pfnWdfDeviceQueryInterfaceProperty; 75 PFN_WDFDEVICEGETDEVICESTACKIOTYPE pfnWdfDeviceGetDeviceStackIoType; 76 PFN_WDFDEVICEQUERYPROPERTYEX pfnWdfDeviceQueryPropertyEx; 77 PFN_WDFDEVICEALLOCANDQUERYPROPERTYEX pfnWdfDeviceAllocAndQueryPropertyEx; 78 PFN_WDFDEVICEASSIGNPROPERTY pfnWdfDeviceAssignProperty; 79 PFN_WDFDRIVERCREATE pfnWdfDriverCreate; 80 PFN_WDFDRIVERGETREGISTRYPATH pfnWdfDriverGetRegistryPath; 81 PFN_WDFDRIVEROPENPARAMETERSREGISTRYKEY pfnWdfDriverOpenParametersRegistryKey; 82 PFN_WDFDRIVERRETRIEVEVERSIONSTRING pfnWdfDriverRetrieveVersionString; 83 PFN_WDFDRIVERISVERSIONAVAILABLE pfnWdfDriverIsVersionAvailable; 84 PFN_WDFFDOINITOPENREGISTRYKEY pfnWdfFdoInitOpenRegistryKey; 85 PFN_WDFFDOINITQUERYPROPERTY pfnWdfFdoInitQueryProperty; 86 PFN_WDFFDOINITALLOCANDQUERYPROPERTY pfnWdfFdoInitAllocAndQueryProperty; 87 PFN_WDFFDOINITQUERYPROPERTYEX pfnWdfFdoInitQueryPropertyEx; 88 PFN_WDFFDOINITALLOCANDQUERYPROPERTYEX pfnWdfFdoInitAllocAndQueryPropertyEx; 89 PFN_WDFFDOINITSETFILTER pfnWdfFdoInitSetFilter; 90 PFN_WDFFILEOBJECTGETFILENAME pfnWdfFileObjectGetFileName; 91 PFN_WDFFILEOBJECTGETDEVICE pfnWdfFileObjectGetDevice; 92 PFN_WDFFILEOBJECTGETINITIATORPROCESSID pfnWdfFileObjectGetInitiatorProcessId; 93 PFN_WDFFILEOBJECTGETRELATEDFILEOBJECT pfnWdfFileObjectGetRelatedFileObject; 94 PFN_WDFINTERRUPTCREATE pfnWdfInterruptCreate; 95 PFN_WDFINTERRUPTQUEUEDPCFORISR pfnWdfInterruptQueueDpcForIsr; 96 PFN_WDFINTERRUPTQUEUEWORKITEMFORISR pfnWdfInterruptQueueWorkItemForIsr; 97 PFN_WDFINTERRUPTSYNCHRONIZE pfnWdfInterruptSynchronize; 98 PFN_WDFINTERRUPTACQUIRELOCK pfnWdfInterruptAcquireLock; 99 PFN_WDFINTERRUPTRELEASELOCK pfnWdfInterruptReleaseLock; 100 PFN_WDFINTERRUPTENABLE pfnWdfInterruptEnable; 101 PFN_WDFINTERRUPTDISABLE pfnWdfInterruptDisable; 102 PFN_WDFINTERRUPTGETINFO pfnWdfInterruptGetInfo; 103 PFN_WDFINTERRUPTSETPOLICY pfnWdfInterruptSetPolicy; 104 PFN_WDFINTERRUPTSETEXTENDEDPOLICY pfnWdfInterruptSetExtendedPolicy; 105 PFN_WDFINTERRUPTGETDEVICE pfnWdfInterruptGetDevice; 106 PFN_WDFINTERRUPTTRYTOACQUIRELOCK pfnWdfInterruptTryToAcquireLock; 107 PFN_WDFIOQUEUECREATE pfnWdfIoQueueCreate; 108 PFN_WDFIOQUEUEGETSTATE pfnWdfIoQueueGetState; 109 PFN_WDFIOQUEUESTART pfnWdfIoQueueStart; 110 PFN_WDFIOQUEUESTOP pfnWdfIoQueueStop; 111 PFN_WDFIOQUEUESTOPSYNCHRONOUSLY pfnWdfIoQueueStopSynchronously; 112 PFN_WDFIOQUEUEGETDEVICE pfnWdfIoQueueGetDevice; 113 PFN_WDFIOQUEUERETRIEVENEXTREQUEST pfnWdfIoQueueRetrieveNextRequest; 114 PFN_WDFIOQUEUERETRIEVEREQUESTBYFILEOBJECT pfnWdfIoQueueRetrieveRequestByFileObject; 115 PFN_WDFIOQUEUEFINDREQUEST pfnWdfIoQueueFindRequest; 116 PFN_WDFIOQUEUERETRIEVEFOUNDREQUEST pfnWdfIoQueueRetrieveFoundRequest; 117 PFN_WDFIOQUEUEDRAINSYNCHRONOUSLY pfnWdfIoQueueDrainSynchronously; 118 PFN_WDFIOQUEUEDRAIN pfnWdfIoQueueDrain; 119 PFN_WDFIOQUEUEPURGESYNCHRONOUSLY pfnWdfIoQueuePurgeSynchronously; 120 PFN_WDFIOQUEUEPURGE pfnWdfIoQueuePurge; 121 PFN_WDFIOQUEUEREADYNOTIFY pfnWdfIoQueueReadyNotify; 122 PFN_WDFIOQUEUESTOPANDPURGE pfnWdfIoQueueStopAndPurge; 123 PFN_WDFIOQUEUESTOPANDPURGESYNCHRONOUSLY pfnWdfIoQueueStopAndPurgeSynchronously; 124 PFN_WDFIOTARGETCREATE pfnWdfIoTargetCreate; 125 PFN_WDFIOTARGETOPEN pfnWdfIoTargetOpen; 126 PFN_WDFIOTARGETCLOSEFORQUERYREMOVE pfnWdfIoTargetCloseForQueryRemove; 127 PFN_WDFIOTARGETCLOSE pfnWdfIoTargetClose; 128 PFN_WDFIOTARGETSTART pfnWdfIoTargetStart; 129 PFN_WDFIOTARGETSTOP pfnWdfIoTargetStop; 130 PFN_WDFIOTARGETPURGE pfnWdfIoTargetPurge; 131 PFN_WDFIOTARGETGETSTATE pfnWdfIoTargetGetState; 132 PFN_WDFIOTARGETGETDEVICE pfnWdfIoTargetGetDevice; 133 PFN_WDFIOTARGETSENDREADSYNCHRONOUSLY pfnWdfIoTargetSendReadSynchronously; 134 PFN_WDFIOTARGETFORMATREQUESTFORREAD pfnWdfIoTargetFormatRequestForRead; 135 PFN_WDFIOTARGETSENDWRITESYNCHRONOUSLY pfnWdfIoTargetSendWriteSynchronously; 136 PFN_WDFIOTARGETFORMATREQUESTFORWRITE pfnWdfIoTargetFormatRequestForWrite; 137 PFN_WDFIOTARGETSENDIOCTLSYNCHRONOUSLY pfnWdfIoTargetSendIoctlSynchronously; 138 PFN_WDFIOTARGETFORMATREQUESTFORIOCTL pfnWdfIoTargetFormatRequestForIoctl; 139 PFN_WDFMEMORYCREATE pfnWdfMemoryCreate; 140 PFN_WDFMEMORYCREATEPREALLOCATED pfnWdfMemoryCreatePreallocated; 141 PFN_WDFMEMORYGETBUFFER pfnWdfMemoryGetBuffer; 142 PFN_WDFMEMORYASSIGNBUFFER pfnWdfMemoryAssignBuffer; 143 PFN_WDFMEMORYCOPYTOBUFFER pfnWdfMemoryCopyToBuffer; 144 PFN_WDFMEMORYCOPYFROMBUFFER pfnWdfMemoryCopyFromBuffer; 145 PFN_WDFOBJECTGETTYPEDCONTEXTWORKER pfnWdfObjectGetTypedContextWorker; 146 PFN_WDFOBJECTALLOCATECONTEXT pfnWdfObjectAllocateContext; 147 PFN_WDFOBJECTCONTEXTGETOBJECT pfnWdfObjectContextGetObject; 148 PFN_WDFOBJECTREFERENCEACTUAL pfnWdfObjectReferenceActual; 149 PFN_WDFOBJECTDEREFERENCEACTUAL pfnWdfObjectDereferenceActual; 150 PFN_WDFOBJECTCREATE pfnWdfObjectCreate; 151 PFN_WDFOBJECTDELETE pfnWdfObjectDelete; 152 PFN_WDFOBJECTQUERY pfnWdfObjectQuery; 153 PFN_WDFREGISTRYOPENKEY pfnWdfRegistryOpenKey; 154 PFN_WDFREGISTRYCREATEKEY pfnWdfRegistryCreateKey; 155 PFN_WDFREGISTRYCLOSE pfnWdfRegistryClose; 156 PFN_WDFREGISTRYREMOVEKEY pfnWdfRegistryRemoveKey; 157 PFN_WDFREGISTRYREMOVEVALUE pfnWdfRegistryRemoveValue; 158 PFN_WDFREGISTRYQUERYVALUE pfnWdfRegistryQueryValue; 159 PFN_WDFREGISTRYQUERYMEMORY pfnWdfRegistryQueryMemory; 160 PFN_WDFREGISTRYQUERYMULTISTRING pfnWdfRegistryQueryMultiString; 161 PFN_WDFREGISTRYQUERYUNICODESTRING pfnWdfRegistryQueryUnicodeString; 162 PFN_WDFREGISTRYQUERYSTRING pfnWdfRegistryQueryString; 163 PFN_WDFREGISTRYQUERYULONG pfnWdfRegistryQueryULong; 164 PFN_WDFREGISTRYASSIGNVALUE pfnWdfRegistryAssignValue; 165 PFN_WDFREGISTRYASSIGNMEMORY pfnWdfRegistryAssignMemory; 166 PFN_WDFREGISTRYASSIGNMULTISTRING pfnWdfRegistryAssignMultiString; 167 PFN_WDFREGISTRYASSIGNUNICODESTRING pfnWdfRegistryAssignUnicodeString; 168 PFN_WDFREGISTRYASSIGNSTRING pfnWdfRegistryAssignString; 169 PFN_WDFREGISTRYASSIGNULONG pfnWdfRegistryAssignULong; 170 PFN_WDFREQUESTCREATE pfnWdfRequestCreate; 171 PFN_WDFREQUESTREUSE pfnWdfRequestReuse; 172 PFN_WDFREQUESTCHANGETARGET pfnWdfRequestChangeTarget; 173 PFN_WDFREQUESTFORMATREQUESTUSINGCURRENTTYPE pfnWdfRequestFormatRequestUsingCurrentType; 174 PFN_WDFREQUESTSEND pfnWdfRequestSend; 175 PFN_WDFREQUESTGETSTATUS pfnWdfRequestGetStatus; 176 PFN_WDFREQUESTMARKCANCELABLE pfnWdfRequestMarkCancelable; 177 PFN_WDFREQUESTMARKCANCELABLEEX pfnWdfRequestMarkCancelableEx; 178 PFN_WDFREQUESTUNMARKCANCELABLE pfnWdfRequestUnmarkCancelable; 179 PFN_WDFREQUESTISCANCELED pfnWdfRequestIsCanceled; 180 PFN_WDFREQUESTCANCELSENTREQUEST pfnWdfRequestCancelSentRequest; 181 PFN_WDFREQUESTISFROM32BITPROCESS pfnWdfRequestIsFrom32BitProcess; 182 PFN_WDFREQUESTSETCOMPLETIONROUTINE pfnWdfRequestSetCompletionRoutine; 183 PFN_WDFREQUESTGETCOMPLETIONPARAMS pfnWdfRequestGetCompletionParams; 184 PFN_WDFREQUESTALLOCATETIMER pfnWdfRequestAllocateTimer; 185 PFN_WDFREQUESTCOMPLETE pfnWdfRequestComplete; 186 PFN_WDFREQUESTCOMPLETEWITHINFORMATION pfnWdfRequestCompleteWithInformation; 187 PFN_WDFREQUESTGETPARAMETERS pfnWdfRequestGetParameters; 188 PFN_WDFREQUESTRETRIEVEINPUTMEMORY pfnWdfRequestRetrieveInputMemory; 189 PFN_WDFREQUESTRETRIEVEOUTPUTMEMORY pfnWdfRequestRetrieveOutputMemory; 190 PFN_WDFREQUESTRETRIEVEINPUTBUFFER pfnWdfRequestRetrieveInputBuffer; 191 PFN_WDFREQUESTRETRIEVEOUTPUTBUFFER pfnWdfRequestRetrieveOutputBuffer; 192 PFN_WDFREQUESTSETINFORMATION pfnWdfRequestSetInformation; 193 PFN_WDFREQUESTGETINFORMATION pfnWdfRequestGetInformation; 194 PFN_WDFREQUESTGETFILEOBJECT pfnWdfRequestGetFileObject; 195 PFN_WDFREQUESTGETREQUESTORMODE pfnWdfRequestGetRequestorMode; 196 PFN_WDFREQUESTFORWARDTOIOQUEUE pfnWdfRequestForwardToIoQueue; 197 PFN_WDFREQUESTGETIOQUEUE pfnWdfRequestGetIoQueue; 198 PFN_WDFREQUESTREQUEUE pfnWdfRequestRequeue; 199 PFN_WDFREQUESTSTOPACKNOWLEDGE pfnWdfRequestStopAcknowledge; 200 PFN_WDFREQUESTIMPERSONATE pfnWdfRequestImpersonate; 201 PFN_WDFREQUESTGETREQUESTORPROCESSID pfnWdfRequestGetRequestorProcessId; 202 PFN_WDFREQUESTISFROMUSERMODEDRIVER pfnWdfRequestIsFromUserModeDriver; 203 PFN_WDFREQUESTSETUSERMODEDRIVERINITIATEDIO pfnWdfRequestSetUserModeDriverInitiatedIo; 204 PFN_WDFREQUESTGETUSERMODEDRIVERINITIATEDIO pfnWdfRequestGetUserModeDriverInitiatedIo; 205 PFN_WDFREQUESTSETACTIVITYID pfnWdfRequestSetActivityId; 206 PFN_WDFREQUESTRETRIEVEACTIVITYID pfnWdfRequestRetrieveActivityId; 207 PFN_WDFREQUESTGETEFFECTIVEIOTYPE pfnWdfRequestGetEffectiveIoType; 208 PFN_WDFCMRESOURCELISTGETCOUNT pfnWdfCmResourceListGetCount; 209 PFN_WDFCMRESOURCELISTGETDESCRIPTOR pfnWdfCmResourceListGetDescriptor; 210 PFN_WDFSTRINGCREATE pfnWdfStringCreate; 211 PFN_WDFSTRINGGETUNICODESTRING pfnWdfStringGetUnicodeString; 212 PFN_WDFOBJECTACQUIRELOCK pfnWdfObjectAcquireLock; 213 PFN_WDFOBJECTRELEASELOCK pfnWdfObjectReleaseLock; 214 PFN_WDFWAITLOCKCREATE pfnWdfWaitLockCreate; 215 PFN_WDFWAITLOCKACQUIRE pfnWdfWaitLockAcquire; 216 PFN_WDFWAITLOCKRELEASE pfnWdfWaitLockRelease; 217 PFN_WDFSPINLOCKCREATE pfnWdfSpinLockCreate; 218 PFN_WDFSPINLOCKACQUIRE pfnWdfSpinLockAcquire; 219 PFN_WDFSPINLOCKRELEASE pfnWdfSpinLockRelease; 220 PFN_WDFTIMERCREATE pfnWdfTimerCreate; 221 PFN_WDFTIMERSTART pfnWdfTimerStart; 222 PFN_WDFTIMERSTOP pfnWdfTimerStop; 223 PFN_WDFTIMERGETPARENTOBJECT pfnWdfTimerGetParentObject; 224 PFN_WDFUSBTARGETDEVICECREATE pfnWdfUsbTargetDeviceCreate; 225 PFN_WDFUSBTARGETDEVICECREATEWITHPARAMETERS pfnWdfUsbTargetDeviceCreateWithParameters; 226 PFN_WDFUSBTARGETDEVICERETRIEVEINFORMATION pfnWdfUsbTargetDeviceRetrieveInformation; 227 PFN_WDFUSBTARGETDEVICEGETDEVICEDESCRIPTOR pfnWdfUsbTargetDeviceGetDeviceDescriptor; 228 PFN_WDFUSBTARGETDEVICERETRIEVECONFIGDESCRIPTOR pfnWdfUsbTargetDeviceRetrieveConfigDescriptor; 229 PFN_WDFUSBTARGETDEVICEQUERYSTRING pfnWdfUsbTargetDeviceQueryString; 230 PFN_WDFUSBTARGETDEVICEALLOCANDQUERYSTRING pfnWdfUsbTargetDeviceAllocAndQueryString; 231 PFN_WDFUSBTARGETDEVICEFORMATREQUESTFORSTRING pfnWdfUsbTargetDeviceFormatRequestForString; 232 PFN_WDFUSBTARGETDEVICEGETNUMINTERFACES pfnWdfUsbTargetDeviceGetNumInterfaces; 233 PFN_WDFUSBTARGETDEVICESELECTCONFIG pfnWdfUsbTargetDeviceSelectConfig; 234 PFN_WDFUSBTARGETDEVICESENDCONTROLTRANSFERSYNCHRONOUSLY pfnWdfUsbTargetDeviceSendControlTransferSynchronously; 235 PFN_WDFUSBTARGETDEVICEFORMATREQUESTFORCONTROLTRANSFER pfnWdfUsbTargetDeviceFormatRequestForControlTransfer; 236 PFN_WDFUSBTARGETDEVICERESETPORTSYNCHRONOUSLY pfnWdfUsbTargetDeviceResetPortSynchronously; 237 PFN_WDFUSBTARGETDEVICEQUERYUSBCAPABILITY pfnWdfUsbTargetDeviceQueryUsbCapability; 238 PFN_WDFUSBTARGETPIPEGETINFORMATION pfnWdfUsbTargetPipeGetInformation; 239 PFN_WDFUSBTARGETPIPEISINENDPOINT pfnWdfUsbTargetPipeIsInEndpoint; 240 PFN_WDFUSBTARGETPIPEISOUTENDPOINT pfnWdfUsbTargetPipeIsOutEndpoint; 241 PFN_WDFUSBTARGETPIPEGETTYPE pfnWdfUsbTargetPipeGetType; 242 PFN_WDFUSBTARGETPIPESETNOMAXIMUMPACKETSIZECHECK pfnWdfUsbTargetPipeSetNoMaximumPacketSizeCheck; 243 PFN_WDFUSBTARGETPIPEWRITESYNCHRONOUSLY pfnWdfUsbTargetPipeWriteSynchronously; 244 PFN_WDFUSBTARGETPIPEFORMATREQUESTFORWRITE pfnWdfUsbTargetPipeFormatRequestForWrite; 245 PFN_WDFUSBTARGETPIPEREADSYNCHRONOUSLY pfnWdfUsbTargetPipeReadSynchronously; 246 PFN_WDFUSBTARGETPIPEFORMATREQUESTFORREAD pfnWdfUsbTargetPipeFormatRequestForRead; 247 PFN_WDFUSBTARGETPIPECONFIGCONTINUOUSREADER pfnWdfUsbTargetPipeConfigContinuousReader; 248 PFN_WDFUSBTARGETPIPEABORTSYNCHRONOUSLY pfnWdfUsbTargetPipeAbortSynchronously; 249 PFN_WDFUSBTARGETPIPEFORMATREQUESTFORABORT pfnWdfUsbTargetPipeFormatRequestForAbort; 250 PFN_WDFUSBTARGETPIPERESETSYNCHRONOUSLY pfnWdfUsbTargetPipeResetSynchronously; 251 PFN_WDFUSBTARGETPIPEFORMATREQUESTFORRESET pfnWdfUsbTargetPipeFormatRequestForReset; 252 PFN_WDFUSBINTERFACEGETINTERFACENUMBER pfnWdfUsbInterfaceGetInterfaceNumber; 253 PFN_WDFUSBINTERFACEGETNUMENDPOINTS pfnWdfUsbInterfaceGetNumEndpoints; 254 PFN_WDFUSBINTERFACEGETDESCRIPTOR pfnWdfUsbInterfaceGetDescriptor; 255 PFN_WDFUSBINTERFACEGETNUMSETTINGS pfnWdfUsbInterfaceGetNumSettings; 256 PFN_WDFUSBINTERFACESELECTSETTING pfnWdfUsbInterfaceSelectSetting; 257 PFN_WDFUSBINTERFACEGETENDPOINTINFORMATION pfnWdfUsbInterfaceGetEndpointInformation; 258 PFN_WDFUSBTARGETDEVICEGETINTERFACE pfnWdfUsbTargetDeviceGetInterface; 259 PFN_WDFUSBINTERFACEGETCONFIGUREDSETTINGINDEX pfnWdfUsbInterfaceGetConfiguredSettingIndex; 260 PFN_WDFUSBINTERFACEGETNUMCONFIGUREDPIPES pfnWdfUsbInterfaceGetNumConfiguredPipes; 261 PFN_WDFUSBINTERFACEGETCONFIGUREDPIPE pfnWdfUsbInterfaceGetConfiguredPipe; 262 PFN_WDFVERIFIERDBGBREAKPOINT pfnWdfVerifierDbgBreakPoint; 263 PFN_WDFVERIFIERKEBUGCHECK pfnWdfVerifierKeBugCheck; 264 PFN_WDFGETTRIAGEINFO pfnWdfGetTriageInfo; 265 PFN_WDFWORKITEMCREATE pfnWdfWorkItemCreate; 266 PFN_WDFWORKITEMENQUEUE pfnWdfWorkItemEnqueue; 267 PFN_WDFWORKITEMGETPARENTOBJECT pfnWdfWorkItemGetParentObject; 268 PFN_WDFWORKITEMFLUSH pfnWdfWorkItemFlush; 269 PFN_WDFREGISTRYWDMGETHANDLE pfnWdfRegistryWdmGetHandle; 270 PFN_WDFDEVICESTOPIDLEACTUAL pfnWdfDeviceStopIdleActual; 271 PFN_WDFDEVICERESUMEIDLEACTUAL pfnWdfDeviceResumeIdleActual; 272 PFN_WDFDEVICEINITENABLEHIDINTERFACE pfnWdfDeviceInitEnableHidInterface; 273 PFN_WDFDEVICEHIDNOTIFYPRESENCE pfnWdfDeviceHidNotifyPresence; 274 PFN_WDFDEVICEGETSELFIOTARGET pfnWdfDeviceGetSelfIoTarget; 275 PFN_WDFDEVICEINITALLOWSELFIOTARGET pfnWdfDeviceInitAllowSelfIoTarget; 276 PFN_WDFIOTARGETSELFASSIGNDEFAULTIOQUEUE pfnWdfIoTargetSelfAssignDefaultIoQueue; 277 PFN_WDFDEVICEOPENDEVICEMAPKEY pfnWdfDeviceOpenDevicemapKey; 278 PFN_WDFIOTARGETWDMGETTARGETFILEHANDLE pfnWdfIoTargetWdmGetTargetFileHandle; 279 PFN_WDFDEVICEWDMDISPATCHIRP pfnWdfDeviceWdmDispatchIrp; 280 PFN_WDFDEVICEWDMDISPATCHIRPTOIOQUEUE pfnWdfDeviceWdmDispatchIrpToIoQueue; 281 PFN_WDFDEVICECONFIGUREWDMIRPDISPATCHCALLBACK pfnWdfDeviceConfigureWdmIrpDispatchCallback; 282 283 } WDFFUNCTIONS, *PWDFFUNCTIONS; 284 285 286 typedef struct _WDFVERSION { 287 288 ULONG Size; 289 ULONG FuncCount; 290 WDFFUNCTIONS Functions; 291 292 } WDFVERSION, *PWDFVERSION; 293 294 295 _Must_inspect_result_ 296 _IRQL_requires_max_(DISPATCH_LEVEL) 297 WDFAPI 298 NTSTATUS 299 WDFEXPORT(WdfCollectionCreate)( 300 _In_ 301 PWDF_DRIVER_GLOBALS DriverGlobals, 302 _In_opt_ 303 PWDF_OBJECT_ATTRIBUTES CollectionAttributes, 304 _Out_ 305 WDFCOLLECTION* Collection 306 ); 307 308 _IRQL_requires_max_(DISPATCH_LEVEL) 309 WDFAPI 310 ULONG 311 WDFEXPORT(WdfCollectionGetCount)( 312 _In_ 313 PWDF_DRIVER_GLOBALS DriverGlobals, 314 _In_ 315 WDFCOLLECTION Collection 316 ); 317 318 _Must_inspect_result_ 319 _IRQL_requires_max_(DISPATCH_LEVEL) 320 WDFAPI 321 NTSTATUS 322 WDFEXPORT(WdfCollectionAdd)( 323 _In_ 324 PWDF_DRIVER_GLOBALS DriverGlobals, 325 _In_ 326 WDFCOLLECTION Collection, 327 _In_ 328 WDFOBJECT Object 329 ); 330 331 _IRQL_requires_max_(DISPATCH_LEVEL) 332 WDFAPI 333 VOID 334 WDFEXPORT(WdfCollectionRemove)( 335 _In_ 336 PWDF_DRIVER_GLOBALS DriverGlobals, 337 _In_ 338 WDFCOLLECTION Collection, 339 _In_ 340 WDFOBJECT Item 341 ); 342 343 _IRQL_requires_max_(DISPATCH_LEVEL) 344 WDFAPI 345 VOID 346 WDFEXPORT(WdfCollectionRemoveItem)( 347 _In_ 348 PWDF_DRIVER_GLOBALS DriverGlobals, 349 _In_ 350 WDFCOLLECTION Collection, 351 _In_ 352 ULONG Index 353 ); 354 355 _IRQL_requires_max_(DISPATCH_LEVEL) 356 WDFAPI 357 WDFOBJECT 358 WDFEXPORT(WdfCollectionGetItem)( 359 _In_ 360 PWDF_DRIVER_GLOBALS DriverGlobals, 361 _In_ 362 WDFCOLLECTION Collection, 363 _In_ 364 ULONG Index 365 ); 366 367 _IRQL_requires_max_(DISPATCH_LEVEL) 368 WDFAPI 369 WDFOBJECT 370 WDFEXPORT(WdfCollectionGetFirstItem)( 371 _In_ 372 PWDF_DRIVER_GLOBALS DriverGlobals, 373 _In_ 374 WDFCOLLECTION Collection 375 ); 376 377 _IRQL_requires_max_(DISPATCH_LEVEL) 378 WDFAPI 379 WDFOBJECT 380 WDFEXPORT(WdfCollectionGetLastItem)( 381 _In_ 382 PWDF_DRIVER_GLOBALS DriverGlobals, 383 _In_ 384 WDFCOLLECTION Collection 385 ); 386 387 _Must_inspect_result_ 388 _IRQL_requires_max_(PASSIVE_LEVEL) 389 WDFAPI 390 PWDFCXDEVICE_INIT 391 WDFEXPORT(WdfCxDeviceInitAllocate)( 392 _In_ 393 PWDF_DRIVER_GLOBALS DriverGlobals, 394 _In_ 395 PWDFDEVICE_INIT DeviceInit 396 ); 397 398 _IRQL_requires_max_(DISPATCH_LEVEL) 399 WDFAPI 400 VOID 401 WDFEXPORT(WdfCxDeviceInitSetRequestAttributes)( 402 _In_ 403 PWDF_DRIVER_GLOBALS DriverGlobals, 404 _In_ 405 PWDFCXDEVICE_INIT CxDeviceInit, 406 _In_ 407 PWDF_OBJECT_ATTRIBUTES RequestAttributes 408 ); 409 410 _IRQL_requires_max_(DISPATCH_LEVEL) 411 WDFAPI 412 VOID 413 WDFEXPORT(WdfCxDeviceInitSetFileObjectConfig)( 414 _In_ 415 PWDF_DRIVER_GLOBALS DriverGlobals, 416 _In_ 417 PWDFCXDEVICE_INIT CxDeviceInit, 418 _In_ 419 PWDFCX_FILEOBJECT_CONFIG CxFileObjectConfig, 420 _In_opt_ 421 PWDF_OBJECT_ATTRIBUTES FileObjectAttributes 422 ); 423 424 WDFAPI 425 VOID 426 WDFEXPORT(WdfCxVerifierKeBugCheck)( 427 _In_ 428 PWDF_DRIVER_GLOBALS DriverGlobals, 429 _In_opt_ 430 WDFOBJECT Object, 431 _In_ 432 ULONG BugCheckCode, 433 _In_ 434 ULONG_PTR BugCheckParameter1, 435 _In_ 436 ULONG_PTR BugCheckParameter2, 437 _In_ 438 ULONG_PTR BugCheckParameter3, 439 _In_ 440 ULONG_PTR BugCheckParameter4 441 ); 442 443 _IRQL_requires_max_(DISPATCH_LEVEL) 444 WDFAPI 445 VOID 446 WDFEXPORT(WdfDeviceGetDeviceState)( 447 _In_ 448 PWDF_DRIVER_GLOBALS DriverGlobals, 449 _In_ 450 WDFDEVICE Device, 451 _Out_ 452 PWDF_DEVICE_STATE DeviceState 453 ); 454 455 _IRQL_requires_max_(DISPATCH_LEVEL) 456 WDFAPI 457 VOID 458 WDFEXPORT(WdfDeviceSetDeviceState)( 459 _In_ 460 PWDF_DRIVER_GLOBALS DriverGlobals, 461 _In_ 462 WDFDEVICE Device, 463 _In_ 464 PWDF_DEVICE_STATE DeviceState 465 ); 466 467 _Must_inspect_result_ 468 _IRQL_requires_max_(DISPATCH_LEVEL) 469 WDFAPI 470 NTSTATUS 471 WDFEXPORT(WdfDeviceWdmDispatchIrp)( 472 _In_ 473 PWDF_DRIVER_GLOBALS DriverGlobals, 474 _In_ 475 WDFDEVICE Device, 476 _In_ 477 PIRP Irp, 478 _In_ 479 WDFCONTEXT DispatchContext 480 ); 481 482 _Must_inspect_result_ 483 _IRQL_requires_max_(DISPATCH_LEVEL) 484 WDFAPI 485 NTSTATUS 486 WDFEXPORT(WdfDeviceWdmDispatchIrpToIoQueue)( 487 _In_ 488 PWDF_DRIVER_GLOBALS DriverGlobals, 489 _In_ 490 WDFDEVICE Device, 491 _In_ 492 PIRP Irp, 493 _In_ 494 WDFQUEUE Queue, 495 _In_ 496 ULONG Flags 497 ); 498 499 _IRQL_requires_max_(DISPATCH_LEVEL) 500 WDFAPI 501 WDFDRIVER 502 WDFEXPORT(WdfDeviceGetDriver)( 503 _In_ 504 PWDF_DRIVER_GLOBALS DriverGlobals, 505 _In_ 506 WDFDEVICE Device 507 ); 508 509 _IRQL_requires_max_(DISPATCH_LEVEL) 510 WDFAPI 511 WDFIOTARGET 512 WDFEXPORT(WdfDeviceGetIoTarget)( 513 _In_ 514 PWDF_DRIVER_GLOBALS DriverGlobals, 515 _In_ 516 WDFDEVICE Device 517 ); 518 519 _Must_inspect_result_ 520 _IRQL_requires_max_(DISPATCH_LEVEL) 521 WDFAPI 522 NTSTATUS 523 WDFEXPORT(WdfDeviceAssignS0IdleSettings)( 524 _In_ 525 PWDF_DRIVER_GLOBALS DriverGlobals, 526 _In_ 527 WDFDEVICE Device, 528 _In_ 529 PWDF_DEVICE_POWER_POLICY_IDLE_SETTINGS Settings 530 ); 531 532 _Must_inspect_result_ 533 _IRQL_requires_max_(DISPATCH_LEVEL) 534 WDFAPI 535 NTSTATUS 536 WDFEXPORT(WdfDeviceAssignSxWakeSettings)( 537 _In_ 538 PWDF_DRIVER_GLOBALS DriverGlobals, 539 _In_ 540 WDFDEVICE Device, 541 _In_ 542 PWDF_DEVICE_POWER_POLICY_WAKE_SETTINGS Settings 543 ); 544 545 _Must_inspect_result_ 546 _IRQL_requires_max_(PASSIVE_LEVEL) 547 WDFAPI 548 NTSTATUS 549 WDFEXPORT(WdfDeviceOpenRegistryKey)( 550 _In_ 551 PWDF_DRIVER_GLOBALS DriverGlobals, 552 _In_ 553 WDFDEVICE Device, 554 _In_ 555 ULONG DeviceInstanceKeyType, 556 _In_ 557 ACCESS_MASK DesiredAccess, 558 _In_opt_ 559 PWDF_OBJECT_ATTRIBUTES KeyAttributes, 560 _Out_ 561 WDFKEY* Key 562 ); 563 564 _Must_inspect_result_ 565 _IRQL_requires_max_(PASSIVE_LEVEL) 566 WDFAPI 567 NTSTATUS 568 WDFEXPORT(WdfDeviceOpenDevicemapKey)( 569 _In_ 570 PWDF_DRIVER_GLOBALS DriverGlobals, 571 _In_ 572 WDFDEVICE Device, 573 _In_ 574 PCUNICODE_STRING KeyName, 575 _In_ 576 ACCESS_MASK DesiredAccess, 577 _In_opt_ 578 PWDF_OBJECT_ATTRIBUTES KeyAttributes, 579 _Out_ 580 WDFKEY* Key 581 ); 582 583 _IRQL_requires_max_(DISPATCH_LEVEL) 584 WDFAPI 585 VOID 586 WDFEXPORT(WdfDeviceInitSetPnpPowerEventCallbacks)( 587 _In_ 588 PWDF_DRIVER_GLOBALS DriverGlobals, 589 _In_ 590 PWDFDEVICE_INIT DeviceInit, 591 _In_ 592 PWDF_PNPPOWER_EVENT_CALLBACKS PnpPowerEventCallbacks 593 ); 594 595 _IRQL_requires_max_(DISPATCH_LEVEL) 596 WDFAPI 597 VOID 598 WDFEXPORT(WdfDeviceInitSetPowerPolicyEventCallbacks)( 599 _In_ 600 PWDF_DRIVER_GLOBALS DriverGlobals, 601 _In_ 602 PWDFDEVICE_INIT DeviceInit, 603 _In_ 604 PWDF_POWER_POLICY_EVENT_CALLBACKS PowerPolicyEventCallbacks 605 ); 606 607 _IRQL_requires_max_(DISPATCH_LEVEL) 608 WDFAPI 609 VOID 610 WDFEXPORT(WdfDeviceInitSetPowerPolicyOwnership)( 611 _In_ 612 PWDF_DRIVER_GLOBALS DriverGlobals, 613 _In_ 614 PWDFDEVICE_INIT DeviceInit, 615 _In_ 616 BOOLEAN IsPowerPolicyOwner 617 ); 618 619 _IRQL_requires_max_(DISPATCH_LEVEL) 620 WDFAPI 621 VOID 622 WDFEXPORT(WdfDeviceInitSetIoType)( 623 _In_ 624 PWDF_DRIVER_GLOBALS DriverGlobals, 625 _In_ 626 PWDFDEVICE_INIT DeviceInit, 627 _In_ 628 WDF_DEVICE_IO_TYPE IoType 629 ); 630 631 _IRQL_requires_max_(DISPATCH_LEVEL) 632 WDFAPI 633 VOID 634 WDFEXPORT(WdfDeviceInitSetFileObjectConfig)( 635 _In_ 636 PWDF_DRIVER_GLOBALS DriverGlobals, 637 _In_ 638 PWDFDEVICE_INIT DeviceInit, 639 _In_ 640 PWDF_FILEOBJECT_CONFIG FileObjectConfig, 641 _In_opt_ 642 PWDF_OBJECT_ATTRIBUTES FileObjectAttributes 643 ); 644 645 _IRQL_requires_max_(DISPATCH_LEVEL) 646 WDFAPI 647 VOID 648 WDFEXPORT(WdfDeviceInitSetRequestAttributes)( 649 _In_ 650 PWDF_DRIVER_GLOBALS DriverGlobals, 651 _In_ 652 PWDFDEVICE_INIT DeviceInit, 653 _In_ 654 PWDF_OBJECT_ATTRIBUTES RequestAttributes 655 ); 656 657 _Must_inspect_result_ 658 _IRQL_requires_max_(PASSIVE_LEVEL) 659 WDFAPI 660 NTSTATUS 661 WDFEXPORT(WdfDeviceCreate)( 662 _In_ 663 PWDF_DRIVER_GLOBALS DriverGlobals, 664 _Inout_ 665 PWDFDEVICE_INIT* DeviceInit, 666 _In_opt_ 667 PWDF_OBJECT_ATTRIBUTES DeviceAttributes, 668 _Out_ 669 WDFDEVICE* Device 670 ); 671 672 _IRQL_requires_max_(DISPATCH_LEVEL) 673 WDFAPI 674 VOID 675 WDFEXPORT(WdfDeviceSetStaticStopRemove)( 676 _In_ 677 PWDF_DRIVER_GLOBALS DriverGlobals, 678 _In_ 679 WDFDEVICE Device, 680 _In_ 681 BOOLEAN Stoppable 682 ); 683 684 _Must_inspect_result_ 685 _IRQL_requires_max_(PASSIVE_LEVEL) 686 WDFAPI 687 NTSTATUS 688 WDFEXPORT(WdfDeviceCreateDeviceInterface)( 689 _In_ 690 PWDF_DRIVER_GLOBALS DriverGlobals, 691 _In_ 692 WDFDEVICE Device, 693 _In_ 694 CONST GUID* InterfaceClassGUID, 695 _In_opt_ 696 PCUNICODE_STRING ReferenceString 697 ); 698 699 _IRQL_requires_max_(PASSIVE_LEVEL) 700 WDFAPI 701 VOID 702 WDFEXPORT(WdfDeviceSetDeviceInterfaceState)( 703 _In_ 704 PWDF_DRIVER_GLOBALS DriverGlobals, 705 _In_ 706 WDFDEVICE Device, 707 _In_ 708 CONST GUID* InterfaceClassGUID, 709 _In_opt_ 710 PCUNICODE_STRING ReferenceString, 711 _In_ 712 BOOLEAN IsInterfaceEnabled 713 ); 714 715 _Must_inspect_result_ 716 _IRQL_requires_max_(PASSIVE_LEVEL) 717 WDFAPI 718 NTSTATUS 719 WDFEXPORT(WdfDeviceRetrieveDeviceInterfaceString)( 720 _In_ 721 PWDF_DRIVER_GLOBALS DriverGlobals, 722 _In_ 723 WDFDEVICE Device, 724 _In_ 725 CONST GUID* InterfaceClassGUID, 726 _In_opt_ 727 PCUNICODE_STRING ReferenceString, 728 _In_ 729 WDFSTRING String 730 ); 731 732 _Must_inspect_result_ 733 _IRQL_requires_max_(PASSIVE_LEVEL) 734 WDFAPI 735 NTSTATUS 736 WDFEXPORT(WdfDeviceCreateSymbolicLink)( 737 _In_ 738 PWDF_DRIVER_GLOBALS DriverGlobals, 739 _In_ 740 WDFDEVICE Device, 741 _In_ 742 PCUNICODE_STRING SymbolicLinkName 743 ); 744 745 _Must_inspect_result_ 746 _IRQL_requires_max_(PASSIVE_LEVEL) 747 WDFAPI 748 NTSTATUS 749 WDFEXPORT(WdfDeviceQueryProperty)( 750 _In_ 751 PWDF_DRIVER_GLOBALS DriverGlobals, 752 _In_ 753 WDFDEVICE Device, 754 _In_ 755 DEVICE_REGISTRY_PROPERTY DeviceProperty, 756 _In_ 757 ULONG BufferLength, 758 _Out_writes_bytes_all_(BufferLength) 759 PVOID PropertyBuffer, 760 _Out_ 761 PULONG ResultLength 762 ); 763 764 _Must_inspect_result_ 765 _IRQL_requires_max_(PASSIVE_LEVEL) 766 WDFAPI 767 NTSTATUS 768 WDFEXPORT(WdfDeviceAllocAndQueryProperty)( 769 _In_ 770 PWDF_DRIVER_GLOBALS DriverGlobals, 771 _In_ 772 WDFDEVICE Device, 773 _In_ 774 DEVICE_REGISTRY_PROPERTY DeviceProperty, 775 _In_ 776 _Strict_type_match_ 777 POOL_TYPE PoolType, 778 _In_opt_ 779 PWDF_OBJECT_ATTRIBUTES PropertyMemoryAttributes, 780 _Out_ 781 WDFMEMORY* PropertyMemory 782 ); 783 784 _IRQL_requires_max_(DISPATCH_LEVEL) 785 WDFAPI 786 VOID 787 WDFEXPORT(WdfDeviceSetPnpCapabilities)( 788 _In_ 789 PWDF_DRIVER_GLOBALS DriverGlobals, 790 _In_ 791 WDFDEVICE Device, 792 _In_ 793 PWDF_DEVICE_PNP_CAPABILITIES PnpCapabilities 794 ); 795 796 _IRQL_requires_max_(DISPATCH_LEVEL) 797 WDFAPI 798 VOID 799 WDFEXPORT(WdfDeviceSetPowerCapabilities)( 800 _In_ 801 PWDF_DRIVER_GLOBALS DriverGlobals, 802 _In_ 803 WDFDEVICE Device, 804 _In_ 805 PWDF_DEVICE_POWER_CAPABILITIES PowerCapabilities 806 ); 807 808 _IRQL_requires_max_(DISPATCH_LEVEL) 809 WDFAPI 810 VOID 811 WDFEXPORT(WdfDeviceSetFailed)( 812 _In_ 813 PWDF_DRIVER_GLOBALS DriverGlobals, 814 _In_ 815 WDFDEVICE Device, 816 _In_ 817 WDF_DEVICE_FAILED_ACTION FailedAction 818 ); 819 820 _Must_inspect_result_ 821 _When_(WaitForD0 == 0, _IRQL_requires_max_(DISPATCH_LEVEL)) 822 _When_(WaitForD0 != 0, _IRQL_requires_max_(PASSIVE_LEVEL)) 823 WDFAPI 824 NTSTATUS 825 WDFEXPORT(WdfDeviceStopIdleNoTrack)( 826 _In_ 827 PWDF_DRIVER_GLOBALS DriverGlobals, 828 _In_ 829 WDFDEVICE Device, 830 _In_ 831 BOOLEAN WaitForD0 832 ); 833 834 _IRQL_requires_max_(DISPATCH_LEVEL) 835 WDFAPI 836 VOID 837 WDFEXPORT(WdfDeviceResumeIdleNoTrack)( 838 _In_ 839 PWDF_DRIVER_GLOBALS DriverGlobals, 840 _In_ 841 WDFDEVICE Device 842 ); 843 844 _Must_inspect_result_ 845 _When_(WaitForD0 == 0, _IRQL_requires_max_(DISPATCH_LEVEL)) 846 _When_(WaitForD0 != 0, _IRQL_requires_max_(PASSIVE_LEVEL)) 847 WDFAPI 848 NTSTATUS 849 WDFEXPORT(WdfDeviceStopIdleActual)( 850 _In_ 851 PWDF_DRIVER_GLOBALS DriverGlobals, 852 _In_ 853 WDFDEVICE Device, 854 _In_ 855 BOOLEAN WaitForD0, 856 _In_opt_ 857 PVOID Tag, 858 _In_ 859 LONG Line, 860 _In_z_ 861 PCHAR File 862 ); 863 864 _IRQL_requires_max_(DISPATCH_LEVEL) 865 WDFAPI 866 VOID 867 WDFEXPORT(WdfDeviceResumeIdleActual)( 868 _In_ 869 PWDF_DRIVER_GLOBALS DriverGlobals, 870 _In_ 871 WDFDEVICE Device, 872 _In_opt_ 873 PVOID Tag, 874 _In_ 875 LONG Line, 876 _In_z_ 877 PCHAR File 878 ); 879 880 _IRQL_requires_max_(DISPATCH_LEVEL) 881 WDFAPI 882 WDFFILEOBJECT 883 WDFEXPORT(WdfDeviceGetFileObject)( 884 _In_ 885 PWDF_DRIVER_GLOBALS DriverGlobals, 886 _In_ 887 WDFDEVICE Device, 888 _In_ 889 PFILE_OBJECT FileObject 890 ); 891 892 _IRQL_requires_max_(DISPATCH_LEVEL) 893 WDFAPI 894 WDFQUEUE 895 WDFEXPORT(WdfDeviceGetDefaultQueue)( 896 _In_ 897 PWDF_DRIVER_GLOBALS DriverGlobals, 898 _In_ 899 WDFDEVICE Device 900 ); 901 902 _Must_inspect_result_ 903 _IRQL_requires_max_(DISPATCH_LEVEL) 904 WDFAPI 905 NTSTATUS 906 WDFEXPORT(WdfDeviceConfigureRequestDispatching)( 907 _In_ 908 PWDF_DRIVER_GLOBALS DriverGlobals, 909 _In_ 910 WDFDEVICE Device, 911 _In_ 912 WDFQUEUE Queue, 913 _In_ 914 _Strict_type_match_ 915 WDF_REQUEST_TYPE RequestType 916 ); 917 918 _Must_inspect_result_ 919 _IRQL_requires_max_(DISPATCH_LEVEL) 920 WDFAPI 921 NTSTATUS 922 WDFEXPORT(WdfDeviceConfigureWdmIrpDispatchCallback)( 923 _In_ 924 PWDF_DRIVER_GLOBALS DriverGlobals, 925 _In_ 926 WDFDEVICE Device, 927 _In_opt_ 928 WDFDRIVER Driver, 929 _In_ 930 UCHAR MajorFunction, 931 _In_ 932 PFN_WDFDEVICE_WDM_IRP_DISPATCH EvtDeviceWdmIrpDisptach, 933 _In_opt_ 934 WDFCONTEXT DriverContext 935 ); 936 937 _IRQL_requires_max_(DISPATCH_LEVEL) 938 WDFAPI 939 POWER_ACTION 940 WDFEXPORT(WdfDeviceGetSystemPowerAction)( 941 _In_ 942 PWDF_DRIVER_GLOBALS DriverGlobals, 943 _In_ 944 WDFDEVICE Device 945 ); 946 947 _IRQL_requires_max_(DISPATCH_LEVEL) 948 WDFAPI 949 VOID 950 WDFEXPORT(WdfDeviceInitSetReleaseHardwareOrderOnFailure)( 951 _In_ 952 PWDF_DRIVER_GLOBALS DriverGlobals, 953 _In_ 954 PWDFDEVICE_INIT DeviceInit, 955 _In_ 956 WDF_RELEASE_HARDWARE_ORDER_ON_FAILURE ReleaseHardwareOrderOnFailure 957 ); 958 959 _IRQL_requires_max_(PASSIVE_LEVEL) 960 WDFAPI 961 VOID 962 WDFEXPORT(WdfDeviceInitSetIoTypeEx)( 963 _In_ 964 PWDF_DRIVER_GLOBALS DriverGlobals, 965 _In_ 966 PWDFDEVICE_INIT DeviceInit, 967 _In_ 968 PWDF_IO_TYPE_CONFIG IoTypeConfig 969 ); 970 971 _IRQL_requires_max_(PASSIVE_LEVEL) 972 WDFAPI 973 NTSTATUS 974 WDFEXPORT(WdfDevicePostEvent)( 975 _In_ 976 PWDF_DRIVER_GLOBALS DriverGlobals, 977 _In_ 978 WDFDEVICE Device, 979 _In_ 980 REFGUID EventGuid, 981 _In_ 982 WDF_EVENT_TYPE WdfEventType, 983 _In_reads_bytes_(DataSizeCb) 984 BYTE* Data, 985 _In_ 986 ULONG DataSizeCb 987 ); 988 989 _Must_inspect_result_ 990 _IRQL_requires_max_(PASSIVE_LEVEL) 991 WDFAPI 992 NTSTATUS 993 WDFEXPORT(WdfDeviceMapIoSpace)( 994 _In_ 995 PWDF_DRIVER_GLOBALS DriverGlobals, 996 _In_ 997 WDFDEVICE Device, 998 _In_ 999 PHYSICAL_ADDRESS PhysicalAddress, 1000 _In_ 1001 SIZE_T NumberOfBytes, 1002 _In_ 1003 MEMORY_CACHING_TYPE CacheType, 1004 _Out_ 1005 PVOID* PseudoBaseAddress 1006 ); 1007 1008 _IRQL_requires_max_(PASSIVE_LEVEL) 1009 WDFAPI 1010 VOID 1011 WDFEXPORT(WdfDeviceUnmapIoSpace)( 1012 _In_ 1013 PWDF_DRIVER_GLOBALS DriverGlobals, 1014 _In_ 1015 WDFDEVICE Device, 1016 _In_ 1017 PVOID PseudoBaseAddress, 1018 _In_ 1019 SIZE_T NumberOfBytes 1020 ); 1021 1022 _IRQL_requires_max_(PASSIVE_LEVEL) 1023 WDFAPI 1024 PVOID 1025 WDFEXPORT(WdfDeviceGetHardwareRegisterMappedAddress)( 1026 _In_ 1027 PWDF_DRIVER_GLOBALS DriverGlobals, 1028 _In_ 1029 WDFDEVICE Device, 1030 _In_ 1031 PVOID PseudoBaseAddress 1032 ); 1033 1034 _IRQL_requires_max_(PASSIVE_LEVEL) 1035 WDFAPI 1036 SIZE_T 1037 WDFEXPORT(WdfDeviceReadFromHardware)( 1038 _In_ 1039 PWDF_DRIVER_GLOBALS DriverGlobals, 1040 _In_ 1041 WDFDEVICE Device, 1042 _In_ 1043 WDF_DEVICE_HWACCESS_TARGET_TYPE Type, 1044 _In_ 1045 WDF_DEVICE_HWACCESS_TARGET_SIZE Size, 1046 _In_ 1047 PVOID TargetAddress, 1048 _Out_writes_all_opt_(Count) 1049 PVOID Buffer, 1050 _In_opt_ 1051 ULONG Count 1052 ); 1053 1054 _IRQL_requires_max_(PASSIVE_LEVEL) 1055 WDFAPI 1056 VOID 1057 WDFEXPORT(WdfDeviceWriteToHardware)( 1058 _In_ 1059 PWDF_DRIVER_GLOBALS DriverGlobals, 1060 _In_ 1061 WDFDEVICE Device, 1062 _In_ 1063 WDF_DEVICE_HWACCESS_TARGET_TYPE Type, 1064 _In_ 1065 WDF_DEVICE_HWACCESS_TARGET_SIZE Size, 1066 _In_ 1067 PVOID TargetAddress, 1068 _In_ 1069 SIZE_T Value, 1070 _In_reads_opt_(Count) 1071 PVOID Buffer, 1072 _In_opt_ 1073 ULONG Count 1074 ); 1075 1076 _IRQL_requires_max_(PASSIVE_LEVEL) 1077 WDFAPI 1078 NTSTATUS 1079 WDFEXPORT(WdfDeviceAssignInterfaceProperty)( 1080 _In_ 1081 PWDF_DRIVER_GLOBALS DriverGlobals, 1082 _In_ 1083 WDFDEVICE Device, 1084 _In_ 1085 PWDF_DEVICE_INTERFACE_PROPERTY_DATA PropertyData, 1086 _In_ 1087 DEVPROPTYPE Type, 1088 _In_ 1089 ULONG BufferLength, 1090 _In_reads_bytes_opt_(BufferLength) 1091 PVOID PropertyBuffer 1092 ); 1093 1094 _IRQL_requires_max_(PASSIVE_LEVEL) 1095 WDFAPI 1096 NTSTATUS 1097 WDFEXPORT(WdfDeviceAllocAndQueryInterfaceProperty)( 1098 _In_ 1099 PWDF_DRIVER_GLOBALS DriverGlobals, 1100 _In_ 1101 WDFDEVICE Device, 1102 _In_ 1103 PWDF_DEVICE_INTERFACE_PROPERTY_DATA PropertyData, 1104 _In_ 1105 POOL_TYPE PoolType, 1106 _In_opt_ 1107 PWDF_OBJECT_ATTRIBUTES PropertyMemoryAttributes, 1108 _Out_ 1109 WDFMEMORY* PropertyMemory, 1110 _Out_ 1111 PDEVPROPTYPE Type 1112 ); 1113 1114 _IRQL_requires_max_(PASSIVE_LEVEL) 1115 WDFAPI 1116 NTSTATUS 1117 WDFEXPORT(WdfDeviceQueryInterfaceProperty)( 1118 _In_ 1119 PWDF_DRIVER_GLOBALS DriverGlobals, 1120 _In_ 1121 WDFDEVICE Device, 1122 _In_ 1123 PWDF_DEVICE_INTERFACE_PROPERTY_DATA PropertyData, 1124 _In_ 1125 ULONG BufferLength, 1126 _Out_writes_bytes_opt_(BufferLength) 1127 PVOID PropertyBuffer, 1128 _Out_ 1129 PULONG ResultLength, 1130 _Out_ 1131 PDEVPROPTYPE Type 1132 ); 1133 1134 _IRQL_requires_max_(PASSIVE_LEVEL) 1135 WDFAPI 1136 VOID 1137 WDFEXPORT(WdfDeviceGetDeviceStackIoType)( 1138 _In_ 1139 PWDF_DRIVER_GLOBALS DriverGlobals, 1140 _In_ 1141 WDFDEVICE Device, 1142 _Out_ 1143 WDF_DEVICE_IO_TYPE* ReadWriteIoType, 1144 _Out_ 1145 WDF_DEVICE_IO_TYPE* IoControlIoType 1146 ); 1147 1148 _Must_inspect_result_ 1149 _IRQL_requires_max_(APC_LEVEL) 1150 WDFAPI 1151 NTSTATUS 1152 WDFEXPORT(WdfDeviceQueryPropertyEx)( 1153 _In_ 1154 PWDF_DRIVER_GLOBALS DriverGlobals, 1155 _In_ 1156 WDFDEVICE Device, 1157 _In_ 1158 PWDF_DEVICE_PROPERTY_DATA DeviceProperty, 1159 _In_ 1160 ULONG BufferLength, 1161 _Out_ 1162 PVOID PropertyBuffer, 1163 _Out_ 1164 PULONG RequiredSize, 1165 _Out_ 1166 PDEVPROPTYPE Type 1167 ); 1168 1169 _Must_inspect_result_ 1170 _IRQL_requires_max_(APC_LEVEL) 1171 WDFAPI 1172 NTSTATUS 1173 WDFEXPORT(WdfDeviceAllocAndQueryPropertyEx)( 1174 _In_ 1175 PWDF_DRIVER_GLOBALS DriverGlobals, 1176 _In_ 1177 WDFDEVICE Device, 1178 _In_ 1179 PWDF_DEVICE_PROPERTY_DATA DeviceProperty, 1180 _In_ 1181 _Strict_type_match_ 1182 POOL_TYPE PoolType, 1183 _In_opt_ 1184 PWDF_OBJECT_ATTRIBUTES PropertyMemoryAttributes, 1185 _Out_ 1186 WDFMEMORY* PropertyMemory, 1187 _Out_ 1188 PDEVPROPTYPE Type 1189 ); 1190 1191 _Must_inspect_result_ 1192 _IRQL_requires_max_(APC_LEVEL) 1193 WDFAPI 1194 NTSTATUS 1195 WDFEXPORT(WdfDeviceAssignProperty)( 1196 _In_ 1197 PWDF_DRIVER_GLOBALS DriverGlobals, 1198 _In_ 1199 WDFDEVICE Device, 1200 _In_ 1201 PWDF_DEVICE_PROPERTY_DATA DeviceProperty, 1202 _In_ 1203 DEVPROPTYPE Type, 1204 _In_ 1205 ULONG Size, 1206 _In_opt_ 1207 PVOID Data 1208 ); 1209 1210 _IRQL_requires_max_(DISPATCH_LEVEL) 1211 WDFAPI 1212 WDFIOTARGET 1213 WDFEXPORT(WdfDeviceGetSelfIoTarget)( 1214 _In_ 1215 PWDF_DRIVER_GLOBALS DriverGlobals, 1216 _In_ 1217 WDFDEVICE Device 1218 ); 1219 1220 _IRQL_requires_max_(DISPATCH_LEVEL) 1221 WDFAPI 1222 VOID 1223 WDFEXPORT(WdfDeviceInitAllowSelfIoTarget)( 1224 _In_ 1225 PWDF_DRIVER_GLOBALS DriverGlobals, 1226 _In_ 1227 PWDFDEVICE_INIT DeviceInit 1228 ); 1229 1230 _Must_inspect_result_ 1231 _IRQL_requires_max_(PASSIVE_LEVEL) 1232 WDFAPI 1233 NTSTATUS 1234 WDFEXPORT(WdfDriverCreate)( 1235 _In_ 1236 PWDF_DRIVER_GLOBALS DriverGlobals, 1237 _In_ 1238 PDRIVER_OBJECT DriverObject, 1239 _In_ 1240 PCUNICODE_STRING RegistryPath, 1241 _In_opt_ 1242 PWDF_OBJECT_ATTRIBUTES DriverAttributes, 1243 _In_ 1244 PWDF_DRIVER_CONFIG DriverConfig, 1245 _Out_opt_ 1246 WDFDRIVER* Driver 1247 ); 1248 1249 _IRQL_requires_max_(PASSIVE_LEVEL) 1250 WDFAPI 1251 PWSTR 1252 WDFEXPORT(WdfDriverGetRegistryPath)( 1253 _In_ 1254 PWDF_DRIVER_GLOBALS DriverGlobals, 1255 _In_ 1256 WDFDRIVER Driver 1257 ); 1258 1259 _Must_inspect_result_ 1260 _IRQL_requires_max_(PASSIVE_LEVEL) 1261 WDFAPI 1262 NTSTATUS 1263 WDFEXPORT(WdfDriverOpenParametersRegistryKey)( 1264 _In_ 1265 PWDF_DRIVER_GLOBALS DriverGlobals, 1266 _In_ 1267 WDFDRIVER Driver, 1268 _In_ 1269 ACCESS_MASK DesiredAccess, 1270 _In_opt_ 1271 PWDF_OBJECT_ATTRIBUTES KeyAttributes, 1272 _Out_ 1273 WDFKEY* Key 1274 ); 1275 1276 _Must_inspect_result_ 1277 _IRQL_requires_max_(PASSIVE_LEVEL) 1278 WDFAPI 1279 NTSTATUS 1280 WDFEXPORT(WdfDriverRetrieveVersionString)( 1281 _In_ 1282 PWDF_DRIVER_GLOBALS DriverGlobals, 1283 _In_ 1284 WDFDRIVER Driver, 1285 _In_ 1286 WDFSTRING String 1287 ); 1288 1289 _Must_inspect_result_ 1290 _IRQL_requires_max_(PASSIVE_LEVEL) 1291 WDFAPI 1292 BOOLEAN 1293 WDFEXPORT(WdfDriverIsVersionAvailable)( 1294 _In_ 1295 PWDF_DRIVER_GLOBALS DriverGlobals, 1296 _In_ 1297 WDFDRIVER Driver, 1298 _In_ 1299 PWDF_DRIVER_VERSION_AVAILABLE_PARAMS VersionAvailableParams 1300 ); 1301 1302 _Must_inspect_result_ 1303 _IRQL_requires_max_(PASSIVE_LEVEL) 1304 WDFAPI 1305 NTSTATUS 1306 WDFEXPORT(WdfFdoInitOpenRegistryKey)( 1307 _In_ 1308 PWDF_DRIVER_GLOBALS DriverGlobals, 1309 _In_ 1310 PWDFDEVICE_INIT DeviceInit, 1311 _In_ 1312 ULONG DeviceInstanceKeyType, 1313 _In_ 1314 ACCESS_MASK DesiredAccess, 1315 _In_opt_ 1316 PWDF_OBJECT_ATTRIBUTES KeyAttributes, 1317 _Out_ 1318 WDFKEY* Key 1319 ); 1320 1321 _Must_inspect_result_ 1322 _IRQL_requires_max_(PASSIVE_LEVEL) 1323 WDFAPI 1324 NTSTATUS 1325 WDFEXPORT(WdfFdoInitQueryProperty)( 1326 _In_ 1327 PWDF_DRIVER_GLOBALS DriverGlobals, 1328 _In_ 1329 PWDFDEVICE_INIT DeviceInit, 1330 _In_ 1331 DEVICE_REGISTRY_PROPERTY DeviceProperty, 1332 _In_ 1333 ULONG BufferLength, 1334 _Out_writes_bytes_all_opt_(BufferLength) 1335 PVOID PropertyBuffer, 1336 _Out_ 1337 PULONG ResultLength 1338 ); 1339 1340 _Must_inspect_result_ 1341 _IRQL_requires_max_(PASSIVE_LEVEL) 1342 WDFAPI 1343 NTSTATUS 1344 WDFEXPORT(WdfFdoInitAllocAndQueryProperty)( 1345 _In_ 1346 PWDF_DRIVER_GLOBALS DriverGlobals, 1347 _In_ 1348 PWDFDEVICE_INIT DeviceInit, 1349 _In_ 1350 DEVICE_REGISTRY_PROPERTY DeviceProperty, 1351 _In_ 1352 _Strict_type_match_ 1353 POOL_TYPE PoolType, 1354 _In_opt_ 1355 PWDF_OBJECT_ATTRIBUTES PropertyMemoryAttributes, 1356 _Out_ 1357 WDFMEMORY* PropertyMemory 1358 ); 1359 1360 _Must_inspect_result_ 1361 _IRQL_requires_max_(PASSIVE_LEVEL) 1362 WDFAPI 1363 NTSTATUS 1364 WDFEXPORT(WdfFdoInitQueryPropertyEx)( 1365 _In_ 1366 PWDF_DRIVER_GLOBALS DriverGlobals, 1367 _In_ 1368 PWDFDEVICE_INIT DeviceInit, 1369 _In_ 1370 PWDF_DEVICE_PROPERTY_DATA DeviceProperty, 1371 _In_ 1372 ULONG BufferLength, 1373 _Out_ 1374 PVOID PropertyBuffer, 1375 _Out_ 1376 PULONG ResultLength, 1377 _Out_ 1378 PDEVPROPTYPE Type 1379 ); 1380 1381 _Must_inspect_result_ 1382 _IRQL_requires_max_(PASSIVE_LEVEL) 1383 WDFAPI 1384 NTSTATUS 1385 WDFEXPORT(WdfFdoInitAllocAndQueryPropertyEx)( 1386 _In_ 1387 PWDF_DRIVER_GLOBALS DriverGlobals, 1388 _In_ 1389 PWDFDEVICE_INIT DeviceInit, 1390 _In_ 1391 PWDF_DEVICE_PROPERTY_DATA DeviceProperty, 1392 _In_ 1393 _Strict_type_match_ 1394 POOL_TYPE PoolType, 1395 _In_opt_ 1396 PWDF_OBJECT_ATTRIBUTES PropertyMemoryAttributes, 1397 _Out_ 1398 WDFMEMORY* PropertyMemory, 1399 _Out_ 1400 PDEVPROPTYPE Type 1401 ); 1402 1403 _IRQL_requires_max_(PASSIVE_LEVEL) 1404 WDFAPI 1405 VOID 1406 WDFEXPORT(WdfFdoInitSetFilter)( 1407 _In_ 1408 PWDF_DRIVER_GLOBALS DriverGlobals, 1409 _In_ 1410 PWDFDEVICE_INIT DeviceInit 1411 ); 1412 1413 _IRQL_requires_max_(PASSIVE_LEVEL) 1414 WDFAPI 1415 PUNICODE_STRING 1416 WDFEXPORT(WdfFileObjectGetFileName)( 1417 _In_ 1418 PWDF_DRIVER_GLOBALS DriverGlobals, 1419 _In_ 1420 WDFFILEOBJECT FileObject 1421 ); 1422 1423 _IRQL_requires_max_(DISPATCH_LEVEL) 1424 WDFAPI 1425 WDFDEVICE 1426 WDFEXPORT(WdfFileObjectGetDevice)( 1427 _In_ 1428 PWDF_DRIVER_GLOBALS DriverGlobals, 1429 _In_ 1430 WDFFILEOBJECT FileObject 1431 ); 1432 1433 _IRQL_requires_max_(PASSIVE_LEVEL) 1434 WDFAPI 1435 ULONG 1436 WDFEXPORT(WdfFileObjectGetInitiatorProcessId)( 1437 _In_ 1438 PWDF_DRIVER_GLOBALS DriverGlobals, 1439 _In_ 1440 WDFFILEOBJECT FileObject 1441 ); 1442 1443 _IRQL_requires_max_(PASSIVE_LEVEL) 1444 WDFAPI 1445 WDFFILEOBJECT 1446 WDFEXPORT(WdfFileObjectGetRelatedFileObject)( 1447 _In_ 1448 PWDF_DRIVER_GLOBALS DriverGlobals, 1449 _In_ 1450 WDFFILEOBJECT FileObject 1451 ); 1452 1453 _IRQL_requires_max_(PASSIVE_LEVEL) 1454 WDFAPI 1455 VOID 1456 WDFEXPORT(WdfDeviceInitEnableHidInterface)( 1457 _In_ 1458 PWDF_DRIVER_GLOBALS DriverGlobals, 1459 _In_ 1460 PWDFDEVICE_INIT DeviceInit 1461 ); 1462 1463 _Must_inspect_result_ 1464 _IRQL_requires_max_(PASSIVE_LEVEL) 1465 WDFAPI 1466 NTSTATUS 1467 WDFEXPORT(WdfDeviceHidNotifyPresence)( 1468 _In_ 1469 PWDF_DRIVER_GLOBALS DriverGlobals, 1470 _In_ 1471 WDFDEVICE Device, 1472 _In_ 1473 BOOLEAN IsPresent 1474 ); 1475 1476 _Must_inspect_result_ 1477 _IRQL_requires_max_(DISPATCH_LEVEL) 1478 WDFAPI 1479 NTSTATUS 1480 WDFEXPORT(WdfInterruptCreate)( 1481 _In_ 1482 PWDF_DRIVER_GLOBALS DriverGlobals, 1483 _In_ 1484 WDFDEVICE Device, 1485 _In_ 1486 PWDF_INTERRUPT_CONFIG Configuration, 1487 _In_opt_ 1488 PWDF_OBJECT_ATTRIBUTES Attributes, 1489 _Out_ 1490 WDFINTERRUPT* Interrupt 1491 ); 1492 1493 WDFAPI 1494 BOOLEAN 1495 WDFEXPORT(WdfInterruptQueueDpcForIsr)( 1496 _In_ 1497 PWDF_DRIVER_GLOBALS DriverGlobals, 1498 _In_ 1499 WDFINTERRUPT Interrupt 1500 ); 1501 1502 WDFAPI 1503 BOOLEAN 1504 WDFEXPORT(WdfInterruptQueueWorkItemForIsr)( 1505 _In_ 1506 PWDF_DRIVER_GLOBALS DriverGlobals, 1507 _In_ 1508 WDFINTERRUPT Interrupt 1509 ); 1510 1511 _IRQL_requires_max_(DISPATCH_LEVEL) 1512 WDFAPI 1513 BOOLEAN 1514 WDFEXPORT(WdfInterruptSynchronize)( 1515 _In_ 1516 PWDF_DRIVER_GLOBALS DriverGlobals, 1517 _In_ 1518 WDFINTERRUPT Interrupt, 1519 _In_ 1520 PFN_WDF_INTERRUPT_SYNCHRONIZE Callback, 1521 _In_ 1522 WDFCONTEXT Context 1523 ); 1524 1525 _IRQL_requires_max_(DISPATCH_LEVEL + 1) 1526 WDFAPI 1527 VOID 1528 WDFEXPORT(WdfInterruptAcquireLock)( 1529 _In_ 1530 PWDF_DRIVER_GLOBALS DriverGlobals, 1531 _In_ 1532 _Requires_lock_not_held_(_Curr_) 1533 _Acquires_lock_(_Curr_) 1534 WDFINTERRUPT Interrupt 1535 ); 1536 1537 _IRQL_requires_max_(DISPATCH_LEVEL + 1) 1538 WDFAPI 1539 VOID 1540 WDFEXPORT(WdfInterruptReleaseLock)( 1541 _In_ 1542 PWDF_DRIVER_GLOBALS DriverGlobals, 1543 _In_ 1544 _Requires_lock_held_(_Curr_) 1545 _Releases_lock_(_Curr_) 1546 WDFINTERRUPT Interrupt 1547 ); 1548 1549 _IRQL_requires_max_(PASSIVE_LEVEL) 1550 WDFAPI 1551 VOID 1552 WDFEXPORT(WdfInterruptEnable)( 1553 _In_ 1554 PWDF_DRIVER_GLOBALS DriverGlobals, 1555 _In_ 1556 WDFINTERRUPT Interrupt 1557 ); 1558 1559 _IRQL_requires_max_(PASSIVE_LEVEL) 1560 WDFAPI 1561 VOID 1562 WDFEXPORT(WdfInterruptDisable)( 1563 _In_ 1564 PWDF_DRIVER_GLOBALS DriverGlobals, 1565 _In_ 1566 WDFINTERRUPT Interrupt 1567 ); 1568 1569 _IRQL_requires_max_(DISPATCH_LEVEL) 1570 WDFAPI 1571 VOID 1572 WDFEXPORT(WdfInterruptGetInfo)( 1573 _In_ 1574 PWDF_DRIVER_GLOBALS DriverGlobals, 1575 _In_ 1576 WDFINTERRUPT Interrupt, 1577 _Out_ 1578 PWDF_INTERRUPT_INFO Info 1579 ); 1580 1581 _IRQL_requires_max_(DISPATCH_LEVEL) 1582 WDFAPI 1583 VOID 1584 WDFEXPORT(WdfInterruptSetPolicy)( 1585 _In_ 1586 PWDF_DRIVER_GLOBALS DriverGlobals, 1587 _In_ 1588 WDFINTERRUPT Interrupt, 1589 _In_ 1590 WDF_INTERRUPT_POLICY Policy, 1591 _In_ 1592 WDF_INTERRUPT_PRIORITY Priority, 1593 _In_ 1594 KAFFINITY TargetProcessorSet 1595 ); 1596 1597 _IRQL_requires_max_(DISPATCH_LEVEL) 1598 WDFAPI 1599 VOID 1600 WDFEXPORT(WdfInterruptSetExtendedPolicy)( 1601 _In_ 1602 PWDF_DRIVER_GLOBALS DriverGlobals, 1603 _In_ 1604 WDFINTERRUPT Interrupt, 1605 _In_ 1606 PWDF_INTERRUPT_EXTENDED_POLICY PolicyAndGroup 1607 ); 1608 1609 WDFAPI 1610 WDFDEVICE 1611 WDFEXPORT(WdfInterruptGetDevice)( 1612 _In_ 1613 PWDF_DRIVER_GLOBALS DriverGlobals, 1614 _In_ 1615 WDFINTERRUPT Interrupt 1616 ); 1617 1618 _Must_inspect_result_ 1619 _Post_satisfies_(return == 1 || return == 0) 1620 _IRQL_requires_max_(PASSIVE_LEVEL) 1621 WDFAPI 1622 BOOLEAN 1623 WDFEXPORT(WdfInterruptTryToAcquireLock)( 1624 _In_ 1625 PWDF_DRIVER_GLOBALS DriverGlobals, 1626 _In_ 1627 _Requires_lock_not_held_(_Curr_) 1628 _When_(return!=0, _Acquires_lock_(_Curr_)) 1629 WDFINTERRUPT Interrupt 1630 ); 1631 1632 _Must_inspect_result_ 1633 _IRQL_requires_max_(DISPATCH_LEVEL) 1634 WDFAPI 1635 NTSTATUS 1636 WDFEXPORT(WdfIoQueueCreate)( 1637 _In_ 1638 PWDF_DRIVER_GLOBALS DriverGlobals, 1639 _In_ 1640 WDFDEVICE Device, 1641 _In_ 1642 PWDF_IO_QUEUE_CONFIG Config, 1643 _In_opt_ 1644 PWDF_OBJECT_ATTRIBUTES QueueAttributes, 1645 _Out_opt_ 1646 WDFQUEUE* Queue 1647 ); 1648 1649 _IRQL_requires_max_(DISPATCH_LEVEL) 1650 WDFAPI 1651 WDF_IO_QUEUE_STATE 1652 WDFEXPORT(WdfIoQueueGetState)( 1653 _In_ 1654 PWDF_DRIVER_GLOBALS DriverGlobals, 1655 _In_ 1656 WDFQUEUE Queue, 1657 _Out_opt_ 1658 PULONG QueueRequests, 1659 _Out_opt_ 1660 PULONG DriverRequests 1661 ); 1662 1663 _IRQL_requires_max_(DISPATCH_LEVEL) 1664 WDFAPI 1665 VOID 1666 WDFEXPORT(WdfIoQueueStart)( 1667 _In_ 1668 PWDF_DRIVER_GLOBALS DriverGlobals, 1669 _In_ 1670 WDFQUEUE Queue 1671 ); 1672 1673 _IRQL_requires_max_(DISPATCH_LEVEL) 1674 WDFAPI 1675 VOID 1676 WDFEXPORT(WdfIoQueueStop)( 1677 _In_ 1678 PWDF_DRIVER_GLOBALS DriverGlobals, 1679 _In_ 1680 WDFQUEUE Queue, 1681 _When_(Context != 0, _In_) 1682 _When_(Context == 0, _In_opt_) 1683 PFN_WDF_IO_QUEUE_STATE StopComplete, 1684 _When_(StopComplete != 0, _In_) 1685 _When_(StopComplete == 0, _In_opt_) 1686 WDFCONTEXT Context 1687 ); 1688 1689 _IRQL_requires_max_(PASSIVE_LEVEL) 1690 WDFAPI 1691 VOID 1692 WDFEXPORT(WdfIoQueueStopSynchronously)( 1693 _In_ 1694 PWDF_DRIVER_GLOBALS DriverGlobals, 1695 _In_ 1696 WDFQUEUE Queue 1697 ); 1698 1699 _IRQL_requires_max_(DISPATCH_LEVEL) 1700 WDFAPI 1701 WDFDEVICE 1702 WDFEXPORT(WdfIoQueueGetDevice)( 1703 _In_ 1704 PWDF_DRIVER_GLOBALS DriverGlobals, 1705 _In_ 1706 WDFQUEUE Queue 1707 ); 1708 1709 _Must_inspect_result_ 1710 _IRQL_requires_max_(DISPATCH_LEVEL) 1711 WDFAPI 1712 NTSTATUS 1713 WDFEXPORT(WdfIoQueueRetrieveNextRequest)( 1714 _In_ 1715 PWDF_DRIVER_GLOBALS DriverGlobals, 1716 _In_ 1717 WDFQUEUE Queue, 1718 _Out_ 1719 WDFREQUEST* OutRequest 1720 ); 1721 1722 _Must_inspect_result_ 1723 _IRQL_requires_max_(DISPATCH_LEVEL) 1724 WDFAPI 1725 NTSTATUS 1726 WDFEXPORT(WdfIoQueueRetrieveRequestByFileObject)( 1727 _In_ 1728 PWDF_DRIVER_GLOBALS DriverGlobals, 1729 _In_ 1730 WDFQUEUE Queue, 1731 _In_ 1732 WDFFILEOBJECT FileObject, 1733 _Out_ 1734 WDFREQUEST* OutRequest 1735 ); 1736 1737 _Must_inspect_result_ 1738 _IRQL_requires_max_(DISPATCH_LEVEL) 1739 WDFAPI 1740 NTSTATUS 1741 WDFEXPORT(WdfIoQueueFindRequest)( 1742 _In_ 1743 PWDF_DRIVER_GLOBALS DriverGlobals, 1744 _In_ 1745 WDFQUEUE Queue, 1746 _In_opt_ 1747 WDFREQUEST FoundRequest, 1748 _In_opt_ 1749 WDFFILEOBJECT FileObject, 1750 _Inout_opt_ 1751 PWDF_REQUEST_PARAMETERS Parameters, 1752 _Out_ 1753 WDFREQUEST* OutRequest 1754 ); 1755 1756 _Must_inspect_result_ 1757 _IRQL_requires_max_(DISPATCH_LEVEL) 1758 WDFAPI 1759 NTSTATUS 1760 WDFEXPORT(WdfIoQueueRetrieveFoundRequest)( 1761 _In_ 1762 PWDF_DRIVER_GLOBALS DriverGlobals, 1763 _In_ 1764 WDFQUEUE Queue, 1765 _In_ 1766 WDFREQUEST FoundRequest, 1767 _Out_ 1768 WDFREQUEST* OutRequest 1769 ); 1770 1771 _IRQL_requires_max_(PASSIVE_LEVEL) 1772 WDFAPI 1773 VOID 1774 WDFEXPORT(WdfIoQueueDrainSynchronously)( 1775 _In_ 1776 PWDF_DRIVER_GLOBALS DriverGlobals, 1777 _In_ 1778 WDFQUEUE Queue 1779 ); 1780 1781 _IRQL_requires_max_(DISPATCH_LEVEL) 1782 WDFAPI 1783 VOID 1784 WDFEXPORT(WdfIoQueueDrain)( 1785 _In_ 1786 PWDF_DRIVER_GLOBALS DriverGlobals, 1787 _In_ 1788 WDFQUEUE Queue, 1789 _When_(Context != 0, _In_) 1790 _When_(Context == 0, _In_opt_) 1791 PFN_WDF_IO_QUEUE_STATE DrainComplete, 1792 _When_(DrainComplete != 0, _In_) 1793 _When_(DrainComplete == 0, _In_opt_) 1794 WDFCONTEXT Context 1795 ); 1796 1797 _IRQL_requires_max_(PASSIVE_LEVEL) 1798 WDFAPI 1799 VOID 1800 WDFEXPORT(WdfIoQueuePurgeSynchronously)( 1801 _In_ 1802 PWDF_DRIVER_GLOBALS DriverGlobals, 1803 _In_ 1804 WDFQUEUE Queue 1805 ); 1806 1807 _IRQL_requires_max_(DISPATCH_LEVEL) 1808 WDFAPI 1809 VOID 1810 WDFEXPORT(WdfIoQueuePurge)( 1811 _In_ 1812 PWDF_DRIVER_GLOBALS DriverGlobals, 1813 _In_ 1814 WDFQUEUE Queue, 1815 _When_(Context != 0, _In_) 1816 _When_(Context == 0, _In_opt_) 1817 PFN_WDF_IO_QUEUE_STATE PurgeComplete, 1818 _When_(PurgeComplete != 0, _In_) 1819 _When_(PurgeComplete == 0, _In_opt_) 1820 WDFCONTEXT Context 1821 ); 1822 1823 _Must_inspect_result_ 1824 _IRQL_requires_max_(DISPATCH_LEVEL) 1825 WDFAPI 1826 NTSTATUS 1827 WDFEXPORT(WdfIoQueueReadyNotify)( 1828 _In_ 1829 PWDF_DRIVER_GLOBALS DriverGlobals, 1830 _In_ 1831 WDFQUEUE Queue, 1832 _In_opt_ 1833 PFN_WDF_IO_QUEUE_STATE QueueReady, 1834 _In_opt_ 1835 WDFCONTEXT Context 1836 ); 1837 1838 _IRQL_requires_max_(DISPATCH_LEVEL) 1839 WDFAPI 1840 VOID 1841 WDFEXPORT(WdfIoQueueStopAndPurge)( 1842 _In_ 1843 PWDF_DRIVER_GLOBALS DriverGlobals, 1844 _In_ 1845 WDFQUEUE Queue, 1846 _When_(Context != 0, _In_) 1847 _When_(Context == 0, _In_opt_) 1848 PFN_WDF_IO_QUEUE_STATE StopAndPurgeComplete, 1849 _When_(StopAndPurgeComplete != 0, _In_) 1850 _When_(StopAndPurgeComplete == 0, _In_opt_) 1851 WDFCONTEXT Context 1852 ); 1853 1854 _IRQL_requires_max_(PASSIVE_LEVEL) 1855 WDFAPI 1856 VOID 1857 WDFEXPORT(WdfIoQueueStopAndPurgeSynchronously)( 1858 _In_ 1859 PWDF_DRIVER_GLOBALS DriverGlobals, 1860 _In_ 1861 WDFQUEUE Queue 1862 ); 1863 1864 _Must_inspect_result_ 1865 _IRQL_requires_max_(PASSIVE_LEVEL) 1866 WDFAPI 1867 NTSTATUS 1868 WDFEXPORT(WdfIoTargetCreate)( 1869 _In_ 1870 PWDF_DRIVER_GLOBALS DriverGlobals, 1871 _In_ 1872 WDFDEVICE Device, 1873 _In_opt_ 1874 PWDF_OBJECT_ATTRIBUTES IoTargetAttributes, 1875 _Out_ 1876 WDFIOTARGET* IoTarget 1877 ); 1878 1879 _Must_inspect_result_ 1880 _IRQL_requires_max_(PASSIVE_LEVEL) 1881 WDFAPI 1882 NTSTATUS 1883 WDFEXPORT(WdfIoTargetOpen)( 1884 _In_ 1885 PWDF_DRIVER_GLOBALS DriverGlobals, 1886 _In_ 1887 WDFIOTARGET IoTarget, 1888 _In_ 1889 PWDF_IO_TARGET_OPEN_PARAMS OpenParams 1890 ); 1891 1892 _IRQL_requires_max_(PASSIVE_LEVEL) 1893 WDFAPI 1894 VOID 1895 WDFEXPORT(WdfIoTargetCloseForQueryRemove)( 1896 _In_ 1897 PWDF_DRIVER_GLOBALS DriverGlobals, 1898 _In_ 1899 WDFIOTARGET IoTarget 1900 ); 1901 1902 _IRQL_requires_max_(PASSIVE_LEVEL) 1903 WDFAPI 1904 VOID 1905 WDFEXPORT(WdfIoTargetClose)( 1906 _In_ 1907 PWDF_DRIVER_GLOBALS DriverGlobals, 1908 _In_ 1909 WDFIOTARGET IoTarget 1910 ); 1911 1912 _Must_inspect_result_ 1913 _IRQL_requires_max_(DISPATCH_LEVEL) 1914 WDFAPI 1915 NTSTATUS 1916 WDFEXPORT(WdfIoTargetStart)( 1917 _In_ 1918 PWDF_DRIVER_GLOBALS DriverGlobals, 1919 _In_ 1920 WDFIOTARGET IoTarget 1921 ); 1922 1923 _When_(Action == 3, _IRQL_requires_max_(DISPATCH_LEVEL)) 1924 _When_(Action == 0 || Action == 1 || Action == 2, _IRQL_requires_max_(PASSIVE_LEVEL)) 1925 WDFAPI 1926 VOID 1927 WDFEXPORT(WdfIoTargetStop)( 1928 _In_ 1929 PWDF_DRIVER_GLOBALS DriverGlobals, 1930 _In_ 1931 WDFIOTARGET IoTarget, 1932 _In_ 1933 _Strict_type_match_ 1934 WDF_IO_TARGET_SENT_IO_ACTION Action 1935 ); 1936 1937 _When_(Action == 2, _IRQL_requires_max_(DISPATCH_LEVEL)) 1938 _When_(Action == 0 || Action == 1, _IRQL_requires_max_(PASSIVE_LEVEL)) 1939 WDFAPI 1940 VOID 1941 WDFEXPORT(WdfIoTargetPurge)( 1942 _In_ 1943 PWDF_DRIVER_GLOBALS DriverGlobals, 1944 _In_ 1945 WDFIOTARGET IoTarget, 1946 _In_ 1947 _Strict_type_match_ 1948 WDF_IO_TARGET_PURGE_IO_ACTION Action 1949 ); 1950 1951 _IRQL_requires_max_(DISPATCH_LEVEL) 1952 WDFAPI 1953 WDF_IO_TARGET_STATE 1954 WDFEXPORT(WdfIoTargetGetState)( 1955 _In_ 1956 PWDF_DRIVER_GLOBALS DriverGlobals, 1957 _In_ 1958 WDFIOTARGET IoTarget 1959 ); 1960 1961 _IRQL_requires_max_(DISPATCH_LEVEL) 1962 WDFAPI 1963 WDFDEVICE 1964 WDFEXPORT(WdfIoTargetGetDevice)( 1965 _In_ 1966 PWDF_DRIVER_GLOBALS DriverGlobals, 1967 _In_ 1968 WDFIOTARGET IoTarget 1969 ); 1970 1971 _IRQL_requires_max_(DISPATCH_LEVEL) 1972 WDFAPI 1973 HANDLE 1974 WDFEXPORT(WdfIoTargetWdmGetTargetFileHandle)( 1975 _In_ 1976 PWDF_DRIVER_GLOBALS DriverGlobals, 1977 _In_ 1978 WDFIOTARGET IoTarget 1979 ); 1980 1981 _Must_inspect_result_ 1982 _IRQL_requires_max_(PASSIVE_LEVEL) 1983 WDFAPI 1984 NTSTATUS 1985 WDFEXPORT(WdfIoTargetSendReadSynchronously)( 1986 _In_ 1987 PWDF_DRIVER_GLOBALS DriverGlobals, 1988 _In_ 1989 WDFIOTARGET IoTarget, 1990 _In_opt_ 1991 WDFREQUEST Request, 1992 _In_opt_ 1993 PWDF_MEMORY_DESCRIPTOR OutputBuffer, 1994 _In_opt_ 1995 PLONGLONG DeviceOffset, 1996 _In_opt_ 1997 PWDF_REQUEST_SEND_OPTIONS RequestOptions, 1998 _Out_opt_ 1999 PULONG_PTR BytesRead 2000 ); 2001 2002 _Must_inspect_result_ 2003 _IRQL_requires_max_(DISPATCH_LEVEL) 2004 WDFAPI 2005 NTSTATUS 2006 WDFEXPORT(WdfIoTargetFormatRequestForRead)( 2007 _In_ 2008 PWDF_DRIVER_GLOBALS DriverGlobals, 2009 _In_ 2010 WDFIOTARGET IoTarget, 2011 _In_ 2012 WDFREQUEST Request, 2013 _In_opt_ 2014 WDFMEMORY OutputBuffer, 2015 _In_opt_ 2016 PWDFMEMORY_OFFSET OutputBufferOffset, 2017 _In_opt_ 2018 PLONGLONG DeviceOffset 2019 ); 2020 2021 _Must_inspect_result_ 2022 _IRQL_requires_max_(PASSIVE_LEVEL) 2023 WDFAPI 2024 NTSTATUS 2025 WDFEXPORT(WdfIoTargetSendWriteSynchronously)( 2026 _In_ 2027 PWDF_DRIVER_GLOBALS DriverGlobals, 2028 _In_ 2029 WDFIOTARGET IoTarget, 2030 _In_opt_ 2031 WDFREQUEST Request, 2032 _In_opt_ 2033 PWDF_MEMORY_DESCRIPTOR InputBuffer, 2034 _In_opt_ 2035 PLONGLONG DeviceOffset, 2036 _In_opt_ 2037 PWDF_REQUEST_SEND_OPTIONS RequestOptions, 2038 _Out_opt_ 2039 PULONG_PTR BytesWritten 2040 ); 2041 2042 _Must_inspect_result_ 2043 _IRQL_requires_max_(DISPATCH_LEVEL) 2044 WDFAPI 2045 NTSTATUS 2046 WDFEXPORT(WdfIoTargetFormatRequestForWrite)( 2047 _In_ 2048 PWDF_DRIVER_GLOBALS DriverGlobals, 2049 _In_ 2050 WDFIOTARGET IoTarget, 2051 _In_ 2052 WDFREQUEST Request, 2053 _In_opt_ 2054 WDFMEMORY InputBuffer, 2055 _In_opt_ 2056 PWDFMEMORY_OFFSET InputBufferOffset, 2057 _In_opt_ 2058 PLONGLONG DeviceOffset 2059 ); 2060 2061 _Must_inspect_result_ 2062 _IRQL_requires_max_(PASSIVE_LEVEL) 2063 WDFAPI 2064 NTSTATUS 2065 WDFEXPORT(WdfIoTargetSendIoctlSynchronously)( 2066 _In_ 2067 PWDF_DRIVER_GLOBALS DriverGlobals, 2068 _In_ 2069 WDFIOTARGET IoTarget, 2070 _In_opt_ 2071 WDFREQUEST Request, 2072 _In_ 2073 ULONG IoctlCode, 2074 _In_opt_ 2075 PWDF_MEMORY_DESCRIPTOR InputBuffer, 2076 _In_opt_ 2077 PWDF_MEMORY_DESCRIPTOR OutputBuffer, 2078 _In_opt_ 2079 PWDF_REQUEST_SEND_OPTIONS RequestOptions, 2080 _Out_opt_ 2081 PULONG_PTR BytesReturned 2082 ); 2083 2084 _Must_inspect_result_ 2085 _IRQL_requires_max_(DISPATCH_LEVEL) 2086 WDFAPI 2087 NTSTATUS 2088 WDFEXPORT(WdfIoTargetFormatRequestForIoctl)( 2089 _In_ 2090 PWDF_DRIVER_GLOBALS DriverGlobals, 2091 _In_ 2092 WDFIOTARGET IoTarget, 2093 _In_ 2094 WDFREQUEST Request, 2095 _In_ 2096 ULONG IoctlCode, 2097 _In_opt_ 2098 WDFMEMORY InputBuffer, 2099 _In_opt_ 2100 PWDFMEMORY_OFFSET InputBufferOffset, 2101 _In_opt_ 2102 WDFMEMORY OutputBuffer, 2103 _In_opt_ 2104 PWDFMEMORY_OFFSET OutputBufferOffset 2105 ); 2106 2107 _IRQL_requires_max_(DISPATCH_LEVEL) 2108 WDFAPI 2109 NTSTATUS 2110 WDFEXPORT(WdfIoTargetSelfAssignDefaultIoQueue)( 2111 _In_ 2112 PWDF_DRIVER_GLOBALS DriverGlobals, 2113 _In_ 2114 WDFIOTARGET IoTarget, 2115 _In_ 2116 WDFQUEUE Queue 2117 ); 2118 2119 _Must_inspect_result_ 2120 _When_(PoolType == 1 || PoolType == 257, _IRQL_requires_max_(APC_LEVEL)) 2121 _When_(PoolType == 0 || PoolType == 256, _IRQL_requires_max_(DISPATCH_LEVEL)) 2122 WDFAPI 2123 NTSTATUS 2124 WDFEXPORT(WdfMemoryCreate)( 2125 _In_ 2126 PWDF_DRIVER_GLOBALS DriverGlobals, 2127 _In_opt_ 2128 PWDF_OBJECT_ATTRIBUTES Attributes, 2129 _In_ 2130 _Strict_type_match_ 2131 POOL_TYPE PoolType, 2132 _In_opt_ 2133 ULONG PoolTag, 2134 _In_ 2135 _When_(BufferSize == 0, __drv_reportError(BufferSize cannot be zero)) 2136 size_t BufferSize, 2137 _Out_ 2138 WDFMEMORY* Memory, 2139 _Outptr_opt_result_bytebuffer_(BufferSize) 2140 PVOID* Buffer 2141 ); 2142 2143 _Must_inspect_result_ 2144 _IRQL_requires_max_(DISPATCH_LEVEL) 2145 WDFAPI 2146 NTSTATUS 2147 WDFEXPORT(WdfMemoryCreatePreallocated)( 2148 _In_ 2149 PWDF_DRIVER_GLOBALS DriverGlobals, 2150 _In_opt_ 2151 PWDF_OBJECT_ATTRIBUTES Attributes, 2152 _In_ __drv_aliasesMem 2153 PVOID Buffer, 2154 _In_ 2155 _When_(BufferSize == 0, __drv_reportError(BufferSize cannot be zero)) 2156 size_t BufferSize, 2157 _Out_ 2158 WDFMEMORY* Memory 2159 ); 2160 2161 _IRQL_requires_max_(DISPATCH_LEVEL) 2162 WDFAPI 2163 PVOID 2164 WDFEXPORT(WdfMemoryGetBuffer)( 2165 _In_ 2166 PWDF_DRIVER_GLOBALS DriverGlobals, 2167 _In_ 2168 WDFMEMORY Memory, 2169 _Out_opt_ 2170 size_t* BufferSize 2171 ); 2172 2173 _Must_inspect_result_ 2174 _IRQL_requires_max_(DISPATCH_LEVEL) 2175 WDFAPI 2176 NTSTATUS 2177 WDFEXPORT(WdfMemoryAssignBuffer)( 2178 _In_ 2179 PWDF_DRIVER_GLOBALS DriverGlobals, 2180 _In_ 2181 WDFMEMORY Memory, 2182 _Pre_notnull_ _Pre_writable_byte_size_(BufferSize) 2183 PVOID Buffer, 2184 _In_ 2185 _When_(BufferSize == 0, __drv_reportError(BufferSize cannot be zero)) 2186 size_t BufferSize 2187 ); 2188 2189 _Must_inspect_result_ 2190 _IRQL_requires_max_(DISPATCH_LEVEL) 2191 WDFAPI 2192 NTSTATUS 2193 WDFEXPORT(WdfMemoryCopyToBuffer)( 2194 _In_ 2195 PWDF_DRIVER_GLOBALS DriverGlobals, 2196 _In_ 2197 WDFMEMORY SourceMemory, 2198 _In_ 2199 size_t SourceOffset, 2200 _Out_writes_bytes_( NumBytesToCopyTo ) 2201 PVOID Buffer, 2202 _In_ 2203 _When_(NumBytesToCopyTo == 0, __drv_reportError(NumBytesToCopyTo cannot be zero)) 2204 size_t NumBytesToCopyTo 2205 ); 2206 2207 _Must_inspect_result_ 2208 _IRQL_requires_max_(DISPATCH_LEVEL) 2209 WDFAPI 2210 NTSTATUS 2211 WDFEXPORT(WdfMemoryCopyFromBuffer)( 2212 _In_ 2213 PWDF_DRIVER_GLOBALS DriverGlobals, 2214 _In_ 2215 WDFMEMORY DestinationMemory, 2216 _In_ 2217 size_t DestinationOffset, 2218 _In_ 2219 PVOID Buffer, 2220 _In_ 2221 _When_(NumBytesToCopyFrom == 0, __drv_reportError(NumBytesToCopyFrom cannot be zero)) 2222 size_t NumBytesToCopyFrom 2223 ); 2224 2225 WDFAPI 2226 PVOID 2227 FASTCALL 2228 WDFEXPORT(WdfObjectGetTypedContextWorker)( 2229 _In_ 2230 PWDF_DRIVER_GLOBALS DriverGlobals, 2231 _In_ 2232 WDFOBJECT Handle, 2233 _In_ 2234 PCWDF_OBJECT_CONTEXT_TYPE_INFO TypeInfo 2235 ); 2236 2237 WDFAPI 2238 NTSTATUS 2239 WDFEXPORT(WdfObjectAllocateContext)( 2240 _In_ 2241 PWDF_DRIVER_GLOBALS DriverGlobals, 2242 _In_ 2243 WDFOBJECT Handle, 2244 _In_ 2245 PWDF_OBJECT_ATTRIBUTES ContextAttributes, 2246 _Outptr_opt_ 2247 PVOID* Context 2248 ); 2249 2250 WDFAPI 2251 WDFOBJECT 2252 FASTCALL 2253 WDFEXPORT(WdfObjectContextGetObject)( 2254 _In_ 2255 PWDF_DRIVER_GLOBALS DriverGlobals, 2256 _In_ 2257 PVOID ContextPointer 2258 ); 2259 2260 WDFAPI 2261 VOID 2262 WDFEXPORT(WdfObjectReferenceActual)( 2263 _In_ 2264 PWDF_DRIVER_GLOBALS DriverGlobals, 2265 _In_ 2266 WDFOBJECT Handle, 2267 _In_opt_ 2268 PVOID Tag, 2269 _In_ 2270 LONG Line, 2271 _In_z_ 2272 PCHAR File 2273 ); 2274 2275 WDFAPI 2276 VOID 2277 WDFEXPORT(WdfObjectDereferenceActual)( 2278 _In_ 2279 PWDF_DRIVER_GLOBALS DriverGlobals, 2280 _In_ 2281 WDFOBJECT Handle, 2282 _In_opt_ 2283 PVOID Tag, 2284 _In_ 2285 LONG Line, 2286 _In_z_ 2287 PCHAR File 2288 ); 2289 2290 _Must_inspect_result_ 2291 _IRQL_requires_max_(DISPATCH_LEVEL) 2292 WDFAPI 2293 NTSTATUS 2294 WDFEXPORT(WdfObjectCreate)( 2295 _In_ 2296 PWDF_DRIVER_GLOBALS DriverGlobals, 2297 _In_opt_ 2298 PWDF_OBJECT_ATTRIBUTES Attributes, 2299 _Out_ 2300 WDFOBJECT* Object 2301 ); 2302 2303 _IRQL_requires_max_(DISPATCH_LEVEL) 2304 WDFAPI 2305 VOID 2306 WDFEXPORT(WdfObjectDelete)( 2307 _In_ 2308 PWDF_DRIVER_GLOBALS DriverGlobals, 2309 _In_ 2310 WDFOBJECT Object 2311 ); 2312 2313 _Must_inspect_result_ 2314 _IRQL_requires_max_(DISPATCH_LEVEL) 2315 WDFAPI 2316 NTSTATUS 2317 WDFEXPORT(WdfObjectQuery)( 2318 _In_ 2319 PWDF_DRIVER_GLOBALS DriverGlobals, 2320 _In_ 2321 WDFOBJECT Object, 2322 _In_ 2323 CONST GUID* Guid, 2324 _In_ 2325 ULONG QueryBufferLength, 2326 _Out_writes_bytes_(QueryBufferLength) 2327 PVOID QueryBuffer 2328 ); 2329 2330 _Must_inspect_result_ 2331 _IRQL_requires_max_(PASSIVE_LEVEL) 2332 WDFAPI 2333 NTSTATUS 2334 WDFEXPORT(WdfRegistryOpenKey)( 2335 _In_ 2336 PWDF_DRIVER_GLOBALS DriverGlobals, 2337 _In_opt_ 2338 WDFKEY ParentKey, 2339 _In_ 2340 PCUNICODE_STRING KeyName, 2341 _In_ 2342 ACCESS_MASK DesiredAccess, 2343 _In_opt_ 2344 PWDF_OBJECT_ATTRIBUTES KeyAttributes, 2345 _Out_ 2346 WDFKEY* Key 2347 ); 2348 2349 _Must_inspect_result_ 2350 _IRQL_requires_max_(PASSIVE_LEVEL) 2351 WDFAPI 2352 NTSTATUS 2353 WDFEXPORT(WdfRegistryCreateKey)( 2354 _In_ 2355 PWDF_DRIVER_GLOBALS DriverGlobals, 2356 _In_opt_ 2357 WDFKEY ParentKey, 2358 _In_ 2359 PCUNICODE_STRING KeyName, 2360 _In_ 2361 ACCESS_MASK DesiredAccess, 2362 _In_ 2363 ULONG CreateOptions, 2364 _Out_opt_ 2365 PULONG CreateDisposition, 2366 _In_opt_ 2367 PWDF_OBJECT_ATTRIBUTES KeyAttributes, 2368 _Out_ 2369 WDFKEY* Key 2370 ); 2371 2372 _IRQL_requires_max_(PASSIVE_LEVEL) 2373 WDFAPI 2374 VOID 2375 WDFEXPORT(WdfRegistryClose)( 2376 _In_ 2377 PWDF_DRIVER_GLOBALS DriverGlobals, 2378 _In_ 2379 WDFKEY Key 2380 ); 2381 2382 _IRQL_requires_max_(PASSIVE_LEVEL) 2383 WDFAPI 2384 HANDLE 2385 WDFEXPORT(WdfRegistryWdmGetHandle)( 2386 _In_ 2387 PWDF_DRIVER_GLOBALS DriverGlobals, 2388 _In_ 2389 WDFKEY Key 2390 ); 2391 2392 _Must_inspect_result_ 2393 _IRQL_requires_max_(PASSIVE_LEVEL) 2394 WDFAPI 2395 NTSTATUS 2396 WDFEXPORT(WdfRegistryRemoveKey)( 2397 _In_ 2398 PWDF_DRIVER_GLOBALS DriverGlobals, 2399 _In_ 2400 WDFKEY Key 2401 ); 2402 2403 _Must_inspect_result_ 2404 _IRQL_requires_max_(PASSIVE_LEVEL) 2405 WDFAPI 2406 NTSTATUS 2407 WDFEXPORT(WdfRegistryRemoveValue)( 2408 _In_ 2409 PWDF_DRIVER_GLOBALS DriverGlobals, 2410 _In_ 2411 WDFKEY Key, 2412 _In_ 2413 PCUNICODE_STRING ValueName 2414 ); 2415 2416 _Must_inspect_result_ 2417 _IRQL_requires_max_(PASSIVE_LEVEL) 2418 WDFAPI 2419 NTSTATUS 2420 WDFEXPORT(WdfRegistryQueryValue)( 2421 _In_ 2422 PWDF_DRIVER_GLOBALS DriverGlobals, 2423 _In_ 2424 WDFKEY Key, 2425 _In_ 2426 PCUNICODE_STRING ValueName, 2427 _In_ 2428 ULONG ValueLength, 2429 _Out_writes_bytes_opt_( ValueLength) 2430 PVOID Value, 2431 _Out_opt_ 2432 PULONG ValueLengthQueried, 2433 _Out_opt_ 2434 PULONG ValueType 2435 ); 2436 2437 _Must_inspect_result_ 2438 _IRQL_requires_max_(PASSIVE_LEVEL) 2439 WDFAPI 2440 NTSTATUS 2441 WDFEXPORT(WdfRegistryQueryMemory)( 2442 _In_ 2443 PWDF_DRIVER_GLOBALS DriverGlobals, 2444 _In_ 2445 WDFKEY Key, 2446 _In_ 2447 PCUNICODE_STRING ValueName, 2448 _In_ 2449 _Strict_type_match_ 2450 POOL_TYPE PoolType, 2451 _In_opt_ 2452 PWDF_OBJECT_ATTRIBUTES MemoryAttributes, 2453 _Out_ 2454 WDFMEMORY* Memory, 2455 _Out_opt_ 2456 PULONG ValueType 2457 ); 2458 2459 _Must_inspect_result_ 2460 _IRQL_requires_max_(PASSIVE_LEVEL) 2461 WDFAPI 2462 NTSTATUS 2463 WDFEXPORT(WdfRegistryQueryMultiString)( 2464 _In_ 2465 PWDF_DRIVER_GLOBALS DriverGlobals, 2466 _In_ 2467 WDFKEY Key, 2468 _In_ 2469 PCUNICODE_STRING ValueName, 2470 _In_opt_ 2471 PWDF_OBJECT_ATTRIBUTES StringsAttributes, 2472 _In_ 2473 WDFCOLLECTION Collection 2474 ); 2475 2476 _Must_inspect_result_ 2477 _IRQL_requires_max_(PASSIVE_LEVEL) 2478 WDFAPI 2479 NTSTATUS 2480 WDFEXPORT(WdfRegistryQueryUnicodeString)( 2481 _In_ 2482 PWDF_DRIVER_GLOBALS DriverGlobals, 2483 _In_ 2484 WDFKEY Key, 2485 _In_ 2486 PCUNICODE_STRING ValueName, 2487 _Out_opt_ 2488 PUSHORT ValueByteLength, 2489 _Inout_opt_ 2490 PUNICODE_STRING Value 2491 ); 2492 2493 _Must_inspect_result_ 2494 _IRQL_requires_max_(PASSIVE_LEVEL) 2495 WDFAPI 2496 NTSTATUS 2497 WDFEXPORT(WdfRegistryQueryString)( 2498 _In_ 2499 PWDF_DRIVER_GLOBALS DriverGlobals, 2500 _In_ 2501 WDFKEY Key, 2502 _In_ 2503 PCUNICODE_STRING ValueName, 2504 _In_ 2505 WDFSTRING String 2506 ); 2507 2508 _Must_inspect_result_ 2509 _IRQL_requires_max_(PASSIVE_LEVEL) 2510 WDFAPI 2511 NTSTATUS 2512 WDFEXPORT(WdfRegistryQueryULong)( 2513 _In_ 2514 PWDF_DRIVER_GLOBALS DriverGlobals, 2515 _In_ 2516 WDFKEY Key, 2517 _In_ 2518 PCUNICODE_STRING ValueName, 2519 _Out_ 2520 PULONG Value 2521 ); 2522 2523 _Must_inspect_result_ 2524 _IRQL_requires_max_(PASSIVE_LEVEL) 2525 WDFAPI 2526 NTSTATUS 2527 WDFEXPORT(WdfRegistryAssignValue)( 2528 _In_ 2529 PWDF_DRIVER_GLOBALS DriverGlobals, 2530 _In_ 2531 WDFKEY Key, 2532 _In_ 2533 PCUNICODE_STRING ValueName, 2534 _In_ 2535 ULONG ValueType, 2536 _In_ 2537 ULONG ValueLength, 2538 _In_reads_( ValueLength) 2539 PVOID Value 2540 ); 2541 2542 _Must_inspect_result_ 2543 _IRQL_requires_max_(PASSIVE_LEVEL) 2544 WDFAPI 2545 NTSTATUS 2546 WDFEXPORT(WdfRegistryAssignMemory)( 2547 _In_ 2548 PWDF_DRIVER_GLOBALS DriverGlobals, 2549 _In_ 2550 WDFKEY Key, 2551 _In_ 2552 PCUNICODE_STRING ValueName, 2553 _In_ 2554 ULONG ValueType, 2555 _In_ 2556 WDFMEMORY Memory, 2557 _In_opt_ 2558 PWDFMEMORY_OFFSET MemoryOffsets 2559 ); 2560 2561 _Must_inspect_result_ 2562 _IRQL_requires_max_(PASSIVE_LEVEL) 2563 WDFAPI 2564 NTSTATUS 2565 WDFEXPORT(WdfRegistryAssignMultiString)( 2566 _In_ 2567 PWDF_DRIVER_GLOBALS DriverGlobals, 2568 _In_ 2569 WDFKEY Key, 2570 _In_ 2571 PCUNICODE_STRING ValueName, 2572 _In_ 2573 WDFCOLLECTION StringsCollection 2574 ); 2575 2576 _Must_inspect_result_ 2577 _IRQL_requires_max_(PASSIVE_LEVEL) 2578 WDFAPI 2579 NTSTATUS 2580 WDFEXPORT(WdfRegistryAssignUnicodeString)( 2581 _In_ 2582 PWDF_DRIVER_GLOBALS DriverGlobals, 2583 _In_ 2584 WDFKEY Key, 2585 _In_ 2586 PCUNICODE_STRING ValueName, 2587 _In_ 2588 PCUNICODE_STRING Value 2589 ); 2590 2591 _Must_inspect_result_ 2592 _IRQL_requires_max_(PASSIVE_LEVEL) 2593 WDFAPI 2594 NTSTATUS 2595 WDFEXPORT(WdfRegistryAssignString)( 2596 _In_ 2597 PWDF_DRIVER_GLOBALS DriverGlobals, 2598 _In_ 2599 WDFKEY Key, 2600 _In_ 2601 PCUNICODE_STRING ValueName, 2602 _In_ 2603 WDFSTRING String 2604 ); 2605 2606 _Must_inspect_result_ 2607 _IRQL_requires_max_(PASSIVE_LEVEL) 2608 WDFAPI 2609 NTSTATUS 2610 WDFEXPORT(WdfRegistryAssignULong)( 2611 _In_ 2612 PWDF_DRIVER_GLOBALS DriverGlobals, 2613 _In_ 2614 WDFKEY Key, 2615 _In_ 2616 PCUNICODE_STRING ValueName, 2617 _In_ 2618 ULONG Value 2619 ); 2620 2621 _Must_inspect_result_ 2622 _IRQL_requires_max_(DISPATCH_LEVEL) 2623 WDFAPI 2624 NTSTATUS 2625 WDFEXPORT(WdfRequestCreate)( 2626 _In_ 2627 PWDF_DRIVER_GLOBALS DriverGlobals, 2628 _In_opt_ 2629 PWDF_OBJECT_ATTRIBUTES RequestAttributes, 2630 _In_opt_ 2631 WDFIOTARGET IoTarget, 2632 _Out_ 2633 WDFREQUEST* Request 2634 ); 2635 2636 _IRQL_requires_max_(DISPATCH_LEVEL) 2637 WDFAPI 2638 NTSTATUS 2639 WDFEXPORT(WdfRequestReuse)( 2640 _In_ 2641 PWDF_DRIVER_GLOBALS DriverGlobals, 2642 _In_ 2643 WDFREQUEST Request, 2644 _In_ 2645 PWDF_REQUEST_REUSE_PARAMS ReuseParams 2646 ); 2647 2648 _Must_inspect_result_ 2649 _IRQL_requires_max_(DISPATCH_LEVEL) 2650 WDFAPI 2651 NTSTATUS 2652 WDFEXPORT(WdfRequestChangeTarget)( 2653 _In_ 2654 PWDF_DRIVER_GLOBALS DriverGlobals, 2655 _In_ 2656 WDFREQUEST Request, 2657 _In_ 2658 WDFIOTARGET IoTarget 2659 ); 2660 2661 _IRQL_requires_max_(DISPATCH_LEVEL) 2662 WDFAPI 2663 VOID 2664 WDFEXPORT(WdfRequestFormatRequestUsingCurrentType)( 2665 _In_ 2666 PWDF_DRIVER_GLOBALS DriverGlobals, 2667 _In_ 2668 WDFREQUEST Request 2669 ); 2670 2671 _IRQL_requires_max_(DISPATCH_LEVEL) 2672 _When_(Options->Flags & WDF_REQUEST_SEND_OPTION_SYNCHRONOUS == 0, _Must_inspect_result_) 2673 WDFAPI 2674 BOOLEAN 2675 WDFEXPORT(WdfRequestSend)( 2676 _In_ 2677 PWDF_DRIVER_GLOBALS DriverGlobals, 2678 _In_ 2679 WDFREQUEST Request, 2680 _In_ 2681 WDFIOTARGET Target, 2682 _In_opt_ 2683 PWDF_REQUEST_SEND_OPTIONS Options 2684 ); 2685 2686 _Must_inspect_result_ 2687 _IRQL_requires_max_(DISPATCH_LEVEL) 2688 WDFAPI 2689 NTSTATUS 2690 WDFEXPORT(WdfRequestGetStatus)( 2691 _In_ 2692 PWDF_DRIVER_GLOBALS DriverGlobals, 2693 _In_ 2694 WDFREQUEST Request 2695 ); 2696 2697 _IRQL_requires_max_(DISPATCH_LEVEL) 2698 WDFAPI 2699 VOID 2700 WDFEXPORT(WdfRequestMarkCancelable)( 2701 _In_ 2702 PWDF_DRIVER_GLOBALS DriverGlobals, 2703 _In_ 2704 WDFREQUEST Request, 2705 _In_ 2706 PFN_WDF_REQUEST_CANCEL EvtRequestCancel 2707 ); 2708 2709 _Must_inspect_result_ 2710 _IRQL_requires_max_(DISPATCH_LEVEL) 2711 WDFAPI 2712 NTSTATUS 2713 WDFEXPORT(WdfRequestMarkCancelableEx)( 2714 _In_ 2715 PWDF_DRIVER_GLOBALS DriverGlobals, 2716 _In_ 2717 WDFREQUEST Request, 2718 _In_ 2719 PFN_WDF_REQUEST_CANCEL EvtRequestCancel 2720 ); 2721 2722 _Must_inspect_result_ 2723 _IRQL_requires_max_(DISPATCH_LEVEL) 2724 WDFAPI 2725 NTSTATUS 2726 WDFEXPORT(WdfRequestUnmarkCancelable)( 2727 _In_ 2728 PWDF_DRIVER_GLOBALS DriverGlobals, 2729 _In_ 2730 WDFREQUEST Request 2731 ); 2732 2733 _Must_inspect_result_ 2734 _IRQL_requires_max_(DISPATCH_LEVEL) 2735 WDFAPI 2736 BOOLEAN 2737 WDFEXPORT(WdfRequestIsCanceled)( 2738 _In_ 2739 PWDF_DRIVER_GLOBALS DriverGlobals, 2740 _In_ 2741 WDFREQUEST Request 2742 ); 2743 2744 _IRQL_requires_max_(DISPATCH_LEVEL) 2745 WDFAPI 2746 BOOLEAN 2747 WDFEXPORT(WdfRequestCancelSentRequest)( 2748 _In_ 2749 PWDF_DRIVER_GLOBALS DriverGlobals, 2750 _In_ 2751 WDFREQUEST Request 2752 ); 2753 2754 _Must_inspect_result_ 2755 _IRQL_requires_max_(APC_LEVEL) 2756 WDFAPI 2757 BOOLEAN 2758 WDFEXPORT(WdfRequestIsFrom32BitProcess)( 2759 _In_ 2760 PWDF_DRIVER_GLOBALS DriverGlobals, 2761 _In_ 2762 WDFREQUEST Request 2763 ); 2764 2765 _IRQL_requires_max_(DISPATCH_LEVEL) 2766 WDFAPI 2767 VOID 2768 WDFEXPORT(WdfRequestSetCompletionRoutine)( 2769 _In_ 2770 PWDF_DRIVER_GLOBALS DriverGlobals, 2771 _In_ 2772 WDFREQUEST Request, 2773 _In_opt_ 2774 PFN_WDF_REQUEST_COMPLETION_ROUTINE CompletionRoutine, 2775 _In_opt_ __drv_aliasesMem 2776 WDFCONTEXT CompletionContext 2777 ); 2778 2779 _IRQL_requires_max_(DISPATCH_LEVEL) 2780 WDFAPI 2781 VOID 2782 WDFEXPORT(WdfRequestGetCompletionParams)( 2783 _In_ 2784 PWDF_DRIVER_GLOBALS DriverGlobals, 2785 _In_ 2786 WDFREQUEST Request, 2787 _Out_ 2788 PWDF_REQUEST_COMPLETION_PARAMS Params 2789 ); 2790 2791 _Must_inspect_result_ 2792 _IRQL_requires_max_(DISPATCH_LEVEL) 2793 WDFAPI 2794 NTSTATUS 2795 WDFEXPORT(WdfRequestAllocateTimer)( 2796 _In_ 2797 PWDF_DRIVER_GLOBALS DriverGlobals, 2798 _In_ 2799 WDFREQUEST Request 2800 ); 2801 2802 _IRQL_requires_max_(DISPATCH_LEVEL) 2803 WDFAPI 2804 VOID 2805 WDFEXPORT(WdfRequestComplete)( 2806 _In_ 2807 PWDF_DRIVER_GLOBALS DriverGlobals, 2808 _In_ 2809 WDFREQUEST Request, 2810 _In_ 2811 NTSTATUS Status 2812 ); 2813 2814 _IRQL_requires_max_(DISPATCH_LEVEL) 2815 WDFAPI 2816 VOID 2817 WDFEXPORT(WdfRequestCompleteWithInformation)( 2818 _In_ 2819 PWDF_DRIVER_GLOBALS DriverGlobals, 2820 _In_ 2821 WDFREQUEST Request, 2822 _In_ 2823 NTSTATUS Status, 2824 _In_ 2825 ULONG_PTR Information 2826 ); 2827 2828 _IRQL_requires_max_(DISPATCH_LEVEL) 2829 WDFAPI 2830 VOID 2831 WDFEXPORT(WdfRequestGetParameters)( 2832 _In_ 2833 PWDF_DRIVER_GLOBALS DriverGlobals, 2834 _In_ 2835 WDFREQUEST Request, 2836 _Out_ 2837 PWDF_REQUEST_PARAMETERS Parameters 2838 ); 2839 2840 _Must_inspect_result_ 2841 _IRQL_requires_max_(DISPATCH_LEVEL) 2842 WDFAPI 2843 NTSTATUS 2844 WDFEXPORT(WdfRequestRetrieveInputMemory)( 2845 _In_ 2846 PWDF_DRIVER_GLOBALS DriverGlobals, 2847 _In_ 2848 WDFREQUEST Request, 2849 _Out_ 2850 WDFMEMORY* Memory 2851 ); 2852 2853 _Must_inspect_result_ 2854 _IRQL_requires_max_(DISPATCH_LEVEL) 2855 WDFAPI 2856 NTSTATUS 2857 WDFEXPORT(WdfRequestRetrieveOutputMemory)( 2858 _In_ 2859 PWDF_DRIVER_GLOBALS DriverGlobals, 2860 _In_ 2861 WDFREQUEST Request, 2862 _Out_ 2863 WDFMEMORY* Memory 2864 ); 2865 2866 _Must_inspect_result_ 2867 _IRQL_requires_max_(DISPATCH_LEVEL) 2868 WDFAPI 2869 NTSTATUS 2870 WDFEXPORT(WdfRequestRetrieveInputBuffer)( 2871 _In_ 2872 PWDF_DRIVER_GLOBALS DriverGlobals, 2873 _In_ 2874 WDFREQUEST Request, 2875 _In_ 2876 size_t MinimumRequiredLength, 2877 _Outptr_result_bytebuffer_(*Length) 2878 PVOID* Buffer, 2879 _Out_opt_ 2880 size_t* Length 2881 ); 2882 2883 _Must_inspect_result_ 2884 _IRQL_requires_max_(DISPATCH_LEVEL) 2885 WDFAPI 2886 NTSTATUS 2887 WDFEXPORT(WdfRequestRetrieveOutputBuffer)( 2888 _In_ 2889 PWDF_DRIVER_GLOBALS DriverGlobals, 2890 _In_ 2891 WDFREQUEST Request, 2892 _In_ 2893 size_t MinimumRequiredSize, 2894 _Outptr_result_bytebuffer_(*Length) 2895 PVOID* Buffer, 2896 _Out_opt_ 2897 size_t* Length 2898 ); 2899 2900 _IRQL_requires_max_(DISPATCH_LEVEL) 2901 WDFAPI 2902 VOID 2903 WDFEXPORT(WdfRequestSetInformation)( 2904 _In_ 2905 PWDF_DRIVER_GLOBALS DriverGlobals, 2906 _In_ 2907 WDFREQUEST Request, 2908 _In_ 2909 ULONG_PTR Information 2910 ); 2911 2912 _IRQL_requires_max_(DISPATCH_LEVEL) 2913 WDFAPI 2914 ULONG_PTR 2915 WDFEXPORT(WdfRequestGetInformation)( 2916 _In_ 2917 PWDF_DRIVER_GLOBALS DriverGlobals, 2918 _In_ 2919 WDFREQUEST Request 2920 ); 2921 2922 _IRQL_requires_max_(DISPATCH_LEVEL) 2923 WDFAPI 2924 WDFFILEOBJECT 2925 WDFEXPORT(WdfRequestGetFileObject)( 2926 _In_ 2927 PWDF_DRIVER_GLOBALS DriverGlobals, 2928 _In_ 2929 WDFREQUEST Request 2930 ); 2931 2932 _IRQL_requires_max_(DISPATCH_LEVEL) 2933 WDFAPI 2934 KPROCESSOR_MODE 2935 WDFEXPORT(WdfRequestGetRequestorMode)( 2936 _In_ 2937 PWDF_DRIVER_GLOBALS DriverGlobals, 2938 _In_ 2939 WDFREQUEST Request 2940 ); 2941 2942 _Must_inspect_result_ 2943 _IRQL_requires_max_(DISPATCH_LEVEL) 2944 WDFAPI 2945 NTSTATUS 2946 WDFEXPORT(WdfRequestForwardToIoQueue)( 2947 _In_ 2948 PWDF_DRIVER_GLOBALS DriverGlobals, 2949 _In_ 2950 WDFREQUEST Request, 2951 _In_ 2952 WDFQUEUE DestinationQueue 2953 ); 2954 2955 _IRQL_requires_max_(DISPATCH_LEVEL) 2956 WDFAPI 2957 WDFQUEUE 2958 WDFEXPORT(WdfRequestGetIoQueue)( 2959 _In_ 2960 PWDF_DRIVER_GLOBALS DriverGlobals, 2961 _In_ 2962 WDFREQUEST Request 2963 ); 2964 2965 _Must_inspect_result_ 2966 _IRQL_requires_max_(DISPATCH_LEVEL) 2967 WDFAPI 2968 NTSTATUS 2969 WDFEXPORT(WdfRequestRequeue)( 2970 _In_ 2971 PWDF_DRIVER_GLOBALS DriverGlobals, 2972 _In_ 2973 WDFREQUEST Request 2974 ); 2975 2976 _IRQL_requires_max_(DISPATCH_LEVEL) 2977 WDFAPI 2978 VOID 2979 WDFEXPORT(WdfRequestStopAcknowledge)( 2980 _In_ 2981 PWDF_DRIVER_GLOBALS DriverGlobals, 2982 _In_ 2983 WDFREQUEST Request, 2984 _In_ 2985 BOOLEAN Requeue 2986 ); 2987 2988 _Must_inspect_result_ 2989 _IRQL_requires_max_(PASSIVE_LEVEL) 2990 WDFAPI 2991 NTSTATUS 2992 WDFEXPORT(WdfRequestImpersonate)( 2993 _In_ 2994 PWDF_DRIVER_GLOBALS DriverGlobals, 2995 _In_ 2996 WDFREQUEST Request, 2997 _In_ 2998 SECURITY_IMPERSONATION_LEVEL ImpersonationLevel, 2999 _In_ 3000 PFN_WDF_REQUEST_IMPERSONATE EvtRequestImpersonate, 3001 _In_opt_ 3002 PVOID Context 3003 ); 3004 3005 _IRQL_requires_max_(PASSIVE_LEVEL) 3006 WDFAPI 3007 ULONG 3008 WDFEXPORT(WdfRequestGetRequestorProcessId)( 3009 _In_ 3010 PWDF_DRIVER_GLOBALS DriverGlobals, 3011 _In_ 3012 WDFREQUEST Request 3013 ); 3014 3015 _IRQL_requires_max_(PASSIVE_LEVEL) 3016 WDFAPI 3017 BOOLEAN 3018 WDFEXPORT(WdfRequestIsFromUserModeDriver)( 3019 _In_ 3020 PWDF_DRIVER_GLOBALS DriverGlobals, 3021 _In_ 3022 WDFREQUEST Request 3023 ); 3024 3025 _IRQL_requires_max_(PASSIVE_LEVEL) 3026 WDFAPI 3027 VOID 3028 WDFEXPORT(WdfRequestSetUserModeDriverInitiatedIo)( 3029 _In_ 3030 PWDF_DRIVER_GLOBALS DriverGlobals, 3031 _In_ 3032 WDFREQUEST Request, 3033 _In_ 3034 BOOLEAN IsUserModeDriverInitiated 3035 ); 3036 3037 _IRQL_requires_max_(PASSIVE_LEVEL) 3038 WDFAPI 3039 BOOLEAN 3040 WDFEXPORT(WdfRequestGetUserModeDriverInitiatedIo)( 3041 _In_ 3042 PWDF_DRIVER_GLOBALS DriverGlobals, 3043 _In_ 3044 WDFREQUEST Request 3045 ); 3046 3047 _IRQL_requires_max_(PASSIVE_LEVEL) 3048 WDFAPI 3049 VOID 3050 WDFEXPORT(WdfRequestSetActivityId)( 3051 _In_ 3052 PWDF_DRIVER_GLOBALS DriverGlobals, 3053 _In_ 3054 WDFREQUEST Request, 3055 _In_ 3056 LPGUID ActivityId 3057 ); 3058 3059 _IRQL_requires_max_(PASSIVE_LEVEL) 3060 WDFAPI 3061 NTSTATUS 3062 WDFEXPORT(WdfRequestRetrieveActivityId)( 3063 _In_ 3064 PWDF_DRIVER_GLOBALS DriverGlobals, 3065 _In_ 3066 WDFREQUEST Request, 3067 _Out_ 3068 LPGUID ActivityId 3069 ); 3070 3071 _IRQL_requires_max_(PASSIVE_LEVEL) 3072 WDFAPI 3073 WDF_DEVICE_IO_TYPE 3074 WDFEXPORT(WdfRequestGetEffectiveIoType)( 3075 _In_ 3076 PWDF_DRIVER_GLOBALS DriverGlobals, 3077 _In_ 3078 WDFREQUEST Request 3079 ); 3080 3081 _IRQL_requires_max_(DISPATCH_LEVEL) 3082 WDFAPI 3083 ULONG 3084 WDFEXPORT(WdfCmResourceListGetCount)( 3085 _In_ 3086 PWDF_DRIVER_GLOBALS DriverGlobals, 3087 _In_ 3088 WDFCMRESLIST List 3089 ); 3090 3091 _IRQL_requires_max_(DISPATCH_LEVEL) 3092 WDFAPI 3093 PCM_PARTIAL_RESOURCE_DESCRIPTOR 3094 WDFEXPORT(WdfCmResourceListGetDescriptor)( 3095 _In_ 3096 PWDF_DRIVER_GLOBALS DriverGlobals, 3097 _In_ 3098 WDFCMRESLIST List, 3099 _In_ 3100 ULONG Index 3101 ); 3102 3103 _Must_inspect_result_ 3104 _IRQL_requires_max_(PASSIVE_LEVEL) 3105 WDFAPI 3106 NTSTATUS 3107 WDFEXPORT(WdfStringCreate)( 3108 _In_ 3109 PWDF_DRIVER_GLOBALS DriverGlobals, 3110 _In_opt_ 3111 PCUNICODE_STRING UnicodeString, 3112 _In_opt_ 3113 PWDF_OBJECT_ATTRIBUTES StringAttributes, 3114 _Out_ 3115 WDFSTRING* String 3116 ); 3117 3118 _IRQL_requires_max_(PASSIVE_LEVEL) 3119 WDFAPI 3120 VOID 3121 WDFEXPORT(WdfStringGetUnicodeString)( 3122 _In_ 3123 PWDF_DRIVER_GLOBALS DriverGlobals, 3124 _In_ 3125 WDFSTRING String, 3126 _Out_ 3127 PUNICODE_STRING UnicodeString 3128 ); 3129 3130 _IRQL_requires_max_(DISPATCH_LEVEL) 3131 WDFAPI 3132 VOID 3133 WDFEXPORT(WdfObjectAcquireLock)( 3134 _In_ 3135 PWDF_DRIVER_GLOBALS DriverGlobals, 3136 _In_ 3137 _Requires_lock_not_held_(_Curr_) 3138 _Acquires_lock_(_Curr_) 3139 WDFOBJECT Object 3140 ); 3141 3142 _IRQL_requires_max_(DISPATCH_LEVEL) 3143 WDFAPI 3144 VOID 3145 WDFEXPORT(WdfObjectReleaseLock)( 3146 _In_ 3147 PWDF_DRIVER_GLOBALS DriverGlobals, 3148 _In_ 3149 _Requires_lock_held_(_Curr_) 3150 _Releases_lock_(_Curr_) 3151 WDFOBJECT Object 3152 ); 3153 3154 _Must_inspect_result_ 3155 _IRQL_requires_max_(DISPATCH_LEVEL) 3156 WDFAPI 3157 NTSTATUS 3158 WDFEXPORT(WdfWaitLockCreate)( 3159 _In_ 3160 PWDF_DRIVER_GLOBALS DriverGlobals, 3161 _In_opt_ 3162 PWDF_OBJECT_ATTRIBUTES LockAttributes, 3163 _Out_ 3164 WDFWAITLOCK* Lock 3165 ); 3166 3167 _When_(Timeout == NULL, _IRQL_requires_max_(PASSIVE_LEVEL)) 3168 _When_(Timeout != NULL && *Timeout == 0, _IRQL_requires_max_(DISPATCH_LEVEL)) 3169 _When_(Timeout != NULL && *Timeout != 0, _IRQL_requires_max_(PASSIVE_LEVEL)) 3170 _Always_(_When_(Timeout == NULL, _Acquires_lock_(Lock))) 3171 _When_(Timeout != NULL && return == STATUS_SUCCESS, _Acquires_lock_(Lock)) 3172 _When_(Timeout != NULL, _Must_inspect_result_) 3173 WDFAPI 3174 NTSTATUS 3175 WDFEXPORT(WdfWaitLockAcquire)( 3176 _In_ 3177 PWDF_DRIVER_GLOBALS DriverGlobals, 3178 _In_ 3179 _Requires_lock_not_held_(_Curr_) 3180 WDFWAITLOCK Lock, 3181 _In_opt_ 3182 PLONGLONG Timeout 3183 ); 3184 3185 _IRQL_requires_max_(DISPATCH_LEVEL) 3186 WDFAPI 3187 VOID 3188 WDFEXPORT(WdfWaitLockRelease)( 3189 _In_ 3190 PWDF_DRIVER_GLOBALS DriverGlobals, 3191 _In_ 3192 _Requires_lock_held_(_Curr_) 3193 _Releases_lock_(_Curr_) 3194 WDFWAITLOCK Lock 3195 ); 3196 3197 _Must_inspect_result_ 3198 _IRQL_requires_max_(DISPATCH_LEVEL) 3199 WDFAPI 3200 NTSTATUS 3201 WDFEXPORT(WdfSpinLockCreate)( 3202 _In_ 3203 PWDF_DRIVER_GLOBALS DriverGlobals, 3204 _In_opt_ 3205 PWDF_OBJECT_ATTRIBUTES SpinLockAttributes, 3206 _Out_ 3207 WDFSPINLOCK* SpinLock 3208 ); 3209 3210 _IRQL_requires_max_(DISPATCH_LEVEL) 3211 _IRQL_raises_(DISPATCH_LEVEL) 3212 WDFAPI 3213 VOID 3214 WDFEXPORT(WdfSpinLockAcquire)( 3215 _In_ 3216 PWDF_DRIVER_GLOBALS DriverGlobals, 3217 _In_ 3218 _Requires_lock_not_held_(_Curr_) 3219 _Acquires_lock_(_Curr_) 3220 _IRQL_saves_ 3221 WDFSPINLOCK SpinLock 3222 ); 3223 3224 _IRQL_requires_max_(DISPATCH_LEVEL) 3225 _IRQL_requires_min_(DISPATCH_LEVEL) 3226 WDFAPI 3227 VOID 3228 WDFEXPORT(WdfSpinLockRelease)( 3229 _In_ 3230 PWDF_DRIVER_GLOBALS DriverGlobals, 3231 _In_ 3232 _Requires_lock_held_(_Curr_) 3233 _Releases_lock_(_Curr_) 3234 _IRQL_restores_ 3235 WDFSPINLOCK SpinLock 3236 ); 3237 3238 _Must_inspect_result_ 3239 _IRQL_requires_max_(DISPATCH_LEVEL) 3240 WDFAPI 3241 NTSTATUS 3242 WDFEXPORT(WdfTimerCreate)( 3243 _In_ 3244 PWDF_DRIVER_GLOBALS DriverGlobals, 3245 _In_ 3246 PWDF_TIMER_CONFIG Config, 3247 _In_ 3248 PWDF_OBJECT_ATTRIBUTES Attributes, 3249 _Out_ 3250 WDFTIMER* Timer 3251 ); 3252 3253 _IRQL_requires_max_(DISPATCH_LEVEL) 3254 WDFAPI 3255 BOOLEAN 3256 WDFEXPORT(WdfTimerStart)( 3257 _In_ 3258 PWDF_DRIVER_GLOBALS DriverGlobals, 3259 _In_ 3260 WDFTIMER Timer, 3261 _In_ 3262 LONGLONG DueTime 3263 ); 3264 3265 _When_(Wait == __true, _IRQL_requires_max_(PASSIVE_LEVEL)) 3266 _When_(Wait == __false, _IRQL_requires_max_(DISPATCH_LEVEL)) 3267 WDFAPI 3268 BOOLEAN 3269 WDFEXPORT(WdfTimerStop)( 3270 _In_ 3271 PWDF_DRIVER_GLOBALS DriverGlobals, 3272 _In_ 3273 WDFTIMER Timer, 3274 _In_ 3275 BOOLEAN Wait 3276 ); 3277 3278 _IRQL_requires_max_(DISPATCH_LEVEL) 3279 WDFAPI 3280 WDFOBJECT 3281 WDFEXPORT(WdfTimerGetParentObject)( 3282 _In_ 3283 PWDF_DRIVER_GLOBALS DriverGlobals, 3284 _In_ 3285 WDFTIMER Timer 3286 ); 3287 3288 _Must_inspect_result_ 3289 _IRQL_requires_max_(PASSIVE_LEVEL) 3290 WDFAPI 3291 NTSTATUS 3292 WDFEXPORT(WdfUsbTargetDeviceCreate)( 3293 _In_ 3294 PWDF_DRIVER_GLOBALS DriverGlobals, 3295 _In_ 3296 WDFDEVICE Device, 3297 _In_opt_ 3298 PWDF_OBJECT_ATTRIBUTES Attributes, 3299 _Out_ 3300 WDFUSBDEVICE* UsbDevice 3301 ); 3302 3303 _Must_inspect_result_ 3304 _IRQL_requires_max_(PASSIVE_LEVEL) 3305 WDFAPI 3306 NTSTATUS 3307 WDFEXPORT(WdfUsbTargetDeviceCreateWithParameters)( 3308 _In_ 3309 PWDF_DRIVER_GLOBALS DriverGlobals, 3310 _In_ 3311 WDFDEVICE Device, 3312 _In_ 3313 PWDF_USB_DEVICE_CREATE_CONFIG Config, 3314 _In_opt_ 3315 PWDF_OBJECT_ATTRIBUTES Attributes, 3316 _Out_ 3317 WDFUSBDEVICE* UsbDevice 3318 ); 3319 3320 _Must_inspect_result_ 3321 _IRQL_requires_max_(DISPATCH_LEVEL) 3322 WDFAPI 3323 NTSTATUS 3324 WDFEXPORT(WdfUsbTargetDeviceRetrieveInformation)( 3325 _In_ 3326 PWDF_DRIVER_GLOBALS DriverGlobals, 3327 _In_ 3328 WDFUSBDEVICE UsbDevice, 3329 _Out_ 3330 PWDF_USB_DEVICE_INFORMATION Information 3331 ); 3332 3333 _IRQL_requires_max_(PASSIVE_LEVEL) 3334 WDFAPI 3335 VOID 3336 WDFEXPORT(WdfUsbTargetDeviceGetDeviceDescriptor)( 3337 _In_ 3338 PWDF_DRIVER_GLOBALS DriverGlobals, 3339 _In_ 3340 WDFUSBDEVICE UsbDevice, 3341 _Out_ 3342 PUSB_DEVICE_DESCRIPTOR UsbDeviceDescriptor 3343 ); 3344 3345 _Must_inspect_result_ 3346 _IRQL_requires_max_(PASSIVE_LEVEL) 3347 WDFAPI 3348 NTSTATUS 3349 WDFEXPORT(WdfUsbTargetDeviceRetrieveConfigDescriptor)( 3350 _In_ 3351 PWDF_DRIVER_GLOBALS DriverGlobals, 3352 _In_ 3353 WDFUSBDEVICE UsbDevice, 3354 _Out_writes_bytes_to_opt_(*ConfigDescriptorLength,*ConfigDescriptorLength) 3355 PVOID ConfigDescriptor, 3356 _Inout_ 3357 PUSHORT ConfigDescriptorLength 3358 ); 3359 3360 _Must_inspect_result_ 3361 _IRQL_requires_max_(PASSIVE_LEVEL) 3362 WDFAPI 3363 NTSTATUS 3364 WDFEXPORT(WdfUsbTargetDeviceQueryString)( 3365 _In_ 3366 PWDF_DRIVER_GLOBALS DriverGlobals, 3367 _In_ 3368 WDFUSBDEVICE UsbDevice, 3369 _In_opt_ 3370 WDFREQUEST Request, 3371 _In_opt_ 3372 PWDF_REQUEST_SEND_OPTIONS RequestOptions, 3373 _Out_writes_opt_(*NumCharacters) 3374 PUSHORT String, 3375 _Inout_ 3376 PUSHORT NumCharacters, 3377 _In_ 3378 UCHAR StringIndex, 3379 _In_opt_ 3380 USHORT LangID 3381 ); 3382 3383 _Must_inspect_result_ 3384 _IRQL_requires_max_(PASSIVE_LEVEL) 3385 WDFAPI 3386 NTSTATUS 3387 WDFEXPORT(WdfUsbTargetDeviceAllocAndQueryString)( 3388 _In_ 3389 PWDF_DRIVER_GLOBALS DriverGlobals, 3390 _In_ 3391 WDFUSBDEVICE UsbDevice, 3392 _In_opt_ 3393 PWDF_OBJECT_ATTRIBUTES StringMemoryAttributes, 3394 _Out_ 3395 WDFMEMORY* StringMemory, 3396 _Out_opt_ 3397 PUSHORT NumCharacters, 3398 _In_ 3399 UCHAR StringIndex, 3400 _In_opt_ 3401 USHORT LangID 3402 ); 3403 3404 _Must_inspect_result_ 3405 _IRQL_requires_max_(DISPATCH_LEVEL) 3406 WDFAPI 3407 NTSTATUS 3408 WDFEXPORT(WdfUsbTargetDeviceFormatRequestForString)( 3409 _In_ 3410 PWDF_DRIVER_GLOBALS DriverGlobals, 3411 _In_ 3412 WDFUSBDEVICE UsbDevice, 3413 _In_ 3414 WDFREQUEST Request, 3415 _In_ 3416 WDFMEMORY Memory, 3417 _In_opt_ 3418 PWDFMEMORY_OFFSET Offset, 3419 _In_ 3420 UCHAR StringIndex, 3421 _In_opt_ 3422 USHORT LangID 3423 ); 3424 3425 _IRQL_requires_max_(DISPATCH_LEVEL) 3426 WDFAPI 3427 UCHAR 3428 WDFEXPORT(WdfUsbTargetDeviceGetNumInterfaces)( 3429 _In_ 3430 PWDF_DRIVER_GLOBALS DriverGlobals, 3431 _In_ 3432 WDFUSBDEVICE UsbDevice 3433 ); 3434 3435 _Must_inspect_result_ 3436 _IRQL_requires_max_(PASSIVE_LEVEL) 3437 WDFAPI 3438 NTSTATUS 3439 WDFEXPORT(WdfUsbTargetDeviceSelectConfig)( 3440 _In_ 3441 PWDF_DRIVER_GLOBALS DriverGlobals, 3442 _In_ 3443 WDFUSBDEVICE UsbDevice, 3444 _In_opt_ 3445 PWDF_OBJECT_ATTRIBUTES PipeAttributes, 3446 _Inout_ 3447 PWDF_USB_DEVICE_SELECT_CONFIG_PARAMS Params 3448 ); 3449 3450 _Must_inspect_result_ 3451 _IRQL_requires_max_(PASSIVE_LEVEL) 3452 WDFAPI 3453 NTSTATUS 3454 WDFEXPORT(WdfUsbTargetDeviceSendControlTransferSynchronously)( 3455 _In_ 3456 PWDF_DRIVER_GLOBALS DriverGlobals, 3457 _In_ 3458 WDFUSBDEVICE UsbDevice, 3459 _In_opt_ 3460 WDFREQUEST Request, 3461 _In_opt_ 3462 PWDF_REQUEST_SEND_OPTIONS RequestOptions, 3463 _In_ 3464 PWDF_USB_CONTROL_SETUP_PACKET SetupPacket, 3465 _In_opt_ 3466 PWDF_MEMORY_DESCRIPTOR MemoryDescriptor, 3467 _Out_opt_ 3468 PULONG BytesTransferred 3469 ); 3470 3471 _Must_inspect_result_ 3472 _IRQL_requires_max_(DISPATCH_LEVEL) 3473 WDFAPI 3474 NTSTATUS 3475 WDFEXPORT(WdfUsbTargetDeviceFormatRequestForControlTransfer)( 3476 _In_ 3477 PWDF_DRIVER_GLOBALS DriverGlobals, 3478 _In_ 3479 WDFUSBDEVICE UsbDevice, 3480 _In_ 3481 WDFREQUEST Request, 3482 _In_ 3483 PWDF_USB_CONTROL_SETUP_PACKET SetupPacket, 3484 _In_opt_ 3485 WDFMEMORY TransferMemory, 3486 _In_opt_ 3487 PWDFMEMORY_OFFSET TransferOffset 3488 ); 3489 3490 _Must_inspect_result_ 3491 _IRQL_requires_max_(PASSIVE_LEVEL) 3492 WDFAPI 3493 NTSTATUS 3494 WDFEXPORT(WdfUsbTargetDeviceResetPortSynchronously)( 3495 _In_ 3496 PWDF_DRIVER_GLOBALS DriverGlobals, 3497 _In_ 3498 WDFUSBDEVICE UsbDevice 3499 ); 3500 3501 _Must_inspect_result_ 3502 _IRQL_requires_max_(PASSIVE_LEVEL) 3503 WDFAPI 3504 NTSTATUS 3505 WDFEXPORT(WdfUsbTargetDeviceQueryUsbCapability)( 3506 _In_ 3507 PWDF_DRIVER_GLOBALS DriverGlobals, 3508 _In_ 3509 WDFUSBDEVICE UsbDevice, 3510 _In_ 3511 CONST GUID* CapabilityType, 3512 _In_ 3513 ULONG CapabilityBufferLength, 3514 _When_(CapabilityBufferLength == 0, _Out_opt_) 3515 _When_(CapabilityBufferLength != 0 && ResultLength == NULL, _Out_writes_bytes_(CapabilityBufferLength)) 3516 _When_(CapabilityBufferLength != 0 && ResultLength != NULL, _Out_writes_bytes_to_opt_(CapabilityBufferLength, *ResultLength)) 3517 PVOID CapabilityBuffer, 3518 _Out_opt_ 3519 _When_(ResultLength != NULL,_Deref_out_range_(<=,CapabilityBufferLength)) 3520 PULONG ResultLength 3521 ); 3522 3523 _IRQL_requires_max_(DISPATCH_LEVEL) 3524 WDFAPI 3525 VOID 3526 WDFEXPORT(WdfUsbTargetPipeGetInformation)( 3527 _In_ 3528 PWDF_DRIVER_GLOBALS DriverGlobals, 3529 _In_ 3530 WDFUSBPIPE Pipe, 3531 _Out_ 3532 PWDF_USB_PIPE_INFORMATION PipeInformation 3533 ); 3534 3535 _IRQL_requires_max_(DISPATCH_LEVEL) 3536 WDFAPI 3537 BOOLEAN 3538 WDFEXPORT(WdfUsbTargetPipeIsInEndpoint)( 3539 _In_ 3540 PWDF_DRIVER_GLOBALS DriverGlobals, 3541 _In_ 3542 WDFUSBPIPE Pipe 3543 ); 3544 3545 _IRQL_requires_max_(DISPATCH_LEVEL) 3546 WDFAPI 3547 BOOLEAN 3548 WDFEXPORT(WdfUsbTargetPipeIsOutEndpoint)( 3549 _In_ 3550 PWDF_DRIVER_GLOBALS DriverGlobals, 3551 _In_ 3552 WDFUSBPIPE Pipe 3553 ); 3554 3555 _IRQL_requires_max_(DISPATCH_LEVEL) 3556 WDFAPI 3557 WDF_USB_PIPE_TYPE 3558 WDFEXPORT(WdfUsbTargetPipeGetType)( 3559 _In_ 3560 PWDF_DRIVER_GLOBALS DriverGlobals, 3561 _In_ 3562 WDFUSBPIPE Pipe 3563 ); 3564 3565 _IRQL_requires_max_(DISPATCH_LEVEL) 3566 WDFAPI 3567 VOID 3568 WDFEXPORT(WdfUsbTargetPipeSetNoMaximumPacketSizeCheck)( 3569 _In_ 3570 PWDF_DRIVER_GLOBALS DriverGlobals, 3571 _In_ 3572 WDFUSBPIPE Pipe 3573 ); 3574 3575 _Must_inspect_result_ 3576 _IRQL_requires_max_(PASSIVE_LEVEL) 3577 WDFAPI 3578 NTSTATUS 3579 WDFEXPORT(WdfUsbTargetPipeWriteSynchronously)( 3580 _In_ 3581 PWDF_DRIVER_GLOBALS DriverGlobals, 3582 _In_ 3583 WDFUSBPIPE Pipe, 3584 _In_opt_ 3585 WDFREQUEST Request, 3586 _In_opt_ 3587 PWDF_REQUEST_SEND_OPTIONS RequestOptions, 3588 _In_opt_ 3589 PWDF_MEMORY_DESCRIPTOR MemoryDescriptor, 3590 _Out_opt_ 3591 PULONG BytesWritten 3592 ); 3593 3594 _Must_inspect_result_ 3595 _IRQL_requires_max_(DISPATCH_LEVEL) 3596 WDFAPI 3597 NTSTATUS 3598 WDFEXPORT(WdfUsbTargetPipeFormatRequestForWrite)( 3599 _In_ 3600 PWDF_DRIVER_GLOBALS DriverGlobals, 3601 _In_ 3602 WDFUSBPIPE Pipe, 3603 _In_ 3604 WDFREQUEST Request, 3605 _In_opt_ 3606 WDFMEMORY WriteMemory, 3607 _In_opt_ 3608 PWDFMEMORY_OFFSET WriteOffset 3609 ); 3610 3611 _Must_inspect_result_ 3612 _IRQL_requires_max_(PASSIVE_LEVEL) 3613 WDFAPI 3614 NTSTATUS 3615 WDFEXPORT(WdfUsbTargetPipeReadSynchronously)( 3616 _In_ 3617 PWDF_DRIVER_GLOBALS DriverGlobals, 3618 _In_ 3619 WDFUSBPIPE Pipe, 3620 _In_opt_ 3621 WDFREQUEST Request, 3622 _In_opt_ 3623 PWDF_REQUEST_SEND_OPTIONS RequestOptions, 3624 _In_opt_ 3625 PWDF_MEMORY_DESCRIPTOR MemoryDescriptor, 3626 _Out_opt_ 3627 PULONG BytesRead 3628 ); 3629 3630 _Must_inspect_result_ 3631 _IRQL_requires_max_(DISPATCH_LEVEL) 3632 WDFAPI 3633 NTSTATUS 3634 WDFEXPORT(WdfUsbTargetPipeFormatRequestForRead)( 3635 _In_ 3636 PWDF_DRIVER_GLOBALS DriverGlobals, 3637 _In_ 3638 WDFUSBPIPE Pipe, 3639 _In_ 3640 WDFREQUEST Request, 3641 _In_opt_ 3642 WDFMEMORY ReadMemory, 3643 _In_opt_ 3644 PWDFMEMORY_OFFSET ReadOffset 3645 ); 3646 3647 _Must_inspect_result_ 3648 _IRQL_requires_max_(DISPATCH_LEVEL) 3649 WDFAPI 3650 NTSTATUS 3651 WDFEXPORT(WdfUsbTargetPipeConfigContinuousReader)( 3652 _In_ 3653 PWDF_DRIVER_GLOBALS DriverGlobals, 3654 _In_ 3655 WDFUSBPIPE Pipe, 3656 _In_ 3657 PWDF_USB_CONTINUOUS_READER_CONFIG Config 3658 ); 3659 3660 _Must_inspect_result_ 3661 _IRQL_requires_max_(PASSIVE_LEVEL) 3662 WDFAPI 3663 NTSTATUS 3664 WDFEXPORT(WdfUsbTargetPipeAbortSynchronously)( 3665 _In_ 3666 PWDF_DRIVER_GLOBALS DriverGlobals, 3667 _In_ 3668 WDFUSBPIPE Pipe, 3669 _In_opt_ 3670 WDFREQUEST Request, 3671 _In_opt_ 3672 PWDF_REQUEST_SEND_OPTIONS RequestOptions 3673 ); 3674 3675 _Must_inspect_result_ 3676 _IRQL_requires_max_(DISPATCH_LEVEL) 3677 WDFAPI 3678 NTSTATUS 3679 WDFEXPORT(WdfUsbTargetPipeFormatRequestForAbort)( 3680 _In_ 3681 PWDF_DRIVER_GLOBALS DriverGlobals, 3682 _In_ 3683 WDFUSBPIPE Pipe, 3684 _In_ 3685 WDFREQUEST Request 3686 ); 3687 3688 _Must_inspect_result_ 3689 _IRQL_requires_max_(PASSIVE_LEVEL) 3690 WDFAPI 3691 NTSTATUS 3692 WDFEXPORT(WdfUsbTargetPipeResetSynchronously)( 3693 _In_ 3694 PWDF_DRIVER_GLOBALS DriverGlobals, 3695 _In_ 3696 WDFUSBPIPE Pipe, 3697 _In_opt_ 3698 WDFREQUEST Request, 3699 _In_opt_ 3700 PWDF_REQUEST_SEND_OPTIONS RequestOptions 3701 ); 3702 3703 _Must_inspect_result_ 3704 _IRQL_requires_max_(DISPATCH_LEVEL) 3705 WDFAPI 3706 NTSTATUS 3707 WDFEXPORT(WdfUsbTargetPipeFormatRequestForReset)( 3708 _In_ 3709 PWDF_DRIVER_GLOBALS DriverGlobals, 3710 _In_ 3711 WDFUSBPIPE Pipe, 3712 _In_ 3713 WDFREQUEST Request 3714 ); 3715 3716 _IRQL_requires_max_(DISPATCH_LEVEL) 3717 WDFAPI 3718 BYTE 3719 WDFEXPORT(WdfUsbInterfaceGetInterfaceNumber)( 3720 _In_ 3721 PWDF_DRIVER_GLOBALS DriverGlobals, 3722 _In_ 3723 WDFUSBINTERFACE UsbInterface 3724 ); 3725 3726 _IRQL_requires_max_(DISPATCH_LEVEL) 3727 WDFAPI 3728 BYTE 3729 WDFEXPORT(WdfUsbInterfaceGetNumEndpoints)( 3730 _In_ 3731 PWDF_DRIVER_GLOBALS DriverGlobals, 3732 _In_ 3733 WDFUSBINTERFACE UsbInterface, 3734 _In_ 3735 UCHAR SettingIndex 3736 ); 3737 3738 _IRQL_requires_max_(DISPATCH_LEVEL) 3739 WDFAPI 3740 VOID 3741 WDFEXPORT(WdfUsbInterfaceGetDescriptor)( 3742 _In_ 3743 PWDF_DRIVER_GLOBALS DriverGlobals, 3744 _In_ 3745 WDFUSBINTERFACE UsbInterface, 3746 _In_ 3747 UCHAR SettingIndex, 3748 _Out_ 3749 PUSB_INTERFACE_DESCRIPTOR InterfaceDescriptor 3750 ); 3751 3752 _IRQL_requires_max_(DISPATCH_LEVEL) 3753 WDFAPI 3754 BYTE 3755 WDFEXPORT(WdfUsbInterfaceGetNumSettings)( 3756 _In_ 3757 PWDF_DRIVER_GLOBALS DriverGlobals, 3758 _In_ 3759 WDFUSBINTERFACE UsbInterface 3760 ); 3761 3762 _Must_inspect_result_ 3763 _IRQL_requires_max_(PASSIVE_LEVEL) 3764 WDFAPI 3765 NTSTATUS 3766 WDFEXPORT(WdfUsbInterfaceSelectSetting)( 3767 _In_ 3768 PWDF_DRIVER_GLOBALS DriverGlobals, 3769 _In_ 3770 WDFUSBINTERFACE UsbInterface, 3771 _In_opt_ 3772 PWDF_OBJECT_ATTRIBUTES PipesAttributes, 3773 _In_ 3774 PWDF_USB_INTERFACE_SELECT_SETTING_PARAMS Params 3775 ); 3776 3777 _IRQL_requires_max_(DISPATCH_LEVEL) 3778 WDFAPI 3779 VOID 3780 WDFEXPORT(WdfUsbInterfaceGetEndpointInformation)( 3781 _In_ 3782 PWDF_DRIVER_GLOBALS DriverGlobals, 3783 _In_ 3784 WDFUSBINTERFACE UsbInterface, 3785 _In_ 3786 UCHAR SettingIndex, 3787 _In_ 3788 UCHAR EndpointIndex, 3789 _Out_ 3790 PWDF_USB_PIPE_INFORMATION EndpointInfo 3791 ); 3792 3793 _IRQL_requires_max_(DISPATCH_LEVEL) 3794 WDFAPI 3795 WDFUSBINTERFACE 3796 WDFEXPORT(WdfUsbTargetDeviceGetInterface)( 3797 _In_ 3798 PWDF_DRIVER_GLOBALS DriverGlobals, 3799 _In_ 3800 WDFUSBDEVICE UsbDevice, 3801 _In_ 3802 UCHAR InterfaceIndex 3803 ); 3804 3805 _IRQL_requires_max_(DISPATCH_LEVEL) 3806 WDFAPI 3807 BYTE 3808 WDFEXPORT(WdfUsbInterfaceGetConfiguredSettingIndex)( 3809 _In_ 3810 PWDF_DRIVER_GLOBALS DriverGlobals, 3811 _In_ 3812 WDFUSBINTERFACE Interface 3813 ); 3814 3815 _IRQL_requires_max_(DISPATCH_LEVEL) 3816 WDFAPI 3817 BYTE 3818 WDFEXPORT(WdfUsbInterfaceGetNumConfiguredPipes)( 3819 _In_ 3820 PWDF_DRIVER_GLOBALS DriverGlobals, 3821 _In_ 3822 WDFUSBINTERFACE UsbInterface 3823 ); 3824 3825 _IRQL_requires_max_(DISPATCH_LEVEL) 3826 WDFAPI 3827 WDFUSBPIPE 3828 WDFEXPORT(WdfUsbInterfaceGetConfiguredPipe)( 3829 _In_ 3830 PWDF_DRIVER_GLOBALS DriverGlobals, 3831 _In_ 3832 WDFUSBINTERFACE UsbInterface, 3833 _In_ 3834 UCHAR PipeIndex, 3835 _Out_opt_ 3836 PWDF_USB_PIPE_INFORMATION PipeInfo 3837 ); 3838 3839 WDFAPI 3840 VOID 3841 WDFEXPORT(WdfVerifierDbgBreakPoint)( 3842 _In_ 3843 PWDF_DRIVER_GLOBALS DriverGlobals 3844 ); 3845 3846 WDFAPI 3847 VOID 3848 WDFEXPORT(WdfVerifierKeBugCheck)( 3849 _In_ 3850 PWDF_DRIVER_GLOBALS DriverGlobals, 3851 _In_ 3852 ULONG BugCheckCode, 3853 _In_ 3854 ULONG_PTR BugCheckParameter1, 3855 _In_ 3856 ULONG_PTR BugCheckParameter2, 3857 _In_ 3858 ULONG_PTR BugCheckParameter3, 3859 _In_ 3860 ULONG_PTR BugCheckParameter4 3861 ); 3862 3863 WDFAPI 3864 PVOID 3865 WDFEXPORT(WdfGetTriageInfo)( 3866 _In_ 3867 PWDF_DRIVER_GLOBALS DriverGlobals 3868 ); 3869 3870 _Must_inspect_result_ 3871 _IRQL_requires_max_(DISPATCH_LEVEL) 3872 WDFAPI 3873 NTSTATUS 3874 WDFEXPORT(WdfWorkItemCreate)( 3875 _In_ 3876 PWDF_DRIVER_GLOBALS DriverGlobals, 3877 _In_ 3878 PWDF_WORKITEM_CONFIG Config, 3879 _In_ 3880 PWDF_OBJECT_ATTRIBUTES Attributes, 3881 _Out_ 3882 WDFWORKITEM* WorkItem 3883 ); 3884 3885 _IRQL_requires_max_(DISPATCH_LEVEL) 3886 WDFAPI 3887 VOID 3888 WDFEXPORT(WdfWorkItemEnqueue)( 3889 _In_ 3890 PWDF_DRIVER_GLOBALS DriverGlobals, 3891 _In_ 3892 WDFWORKITEM WorkItem 3893 ); 3894 3895 _IRQL_requires_max_(DISPATCH_LEVEL) 3896 WDFAPI 3897 WDFOBJECT 3898 WDFEXPORT(WdfWorkItemGetParentObject)( 3899 _In_ 3900 PWDF_DRIVER_GLOBALS DriverGlobals, 3901 _In_ 3902 WDFWORKITEM WorkItem 3903 ); 3904 3905 _IRQL_requires_max_(PASSIVE_LEVEL) 3906 WDFAPI 3907 VOID 3908 WDFEXPORT(WdfWorkItemFlush)( 3909 _In_ 3910 PWDF_DRIVER_GLOBALS DriverGlobals, 3911 _In_ 3912 WDFWORKITEM WorkItem 3913 ); 3914 3915 3916 #ifdef FX_DYNAMICS_GENERATE_TABLE 3917 3918 WDFVERSION WdfVersion = { 3919 sizeof(WDFVERSION), 3920 sizeof(WDFFUNCTIONS)/sizeof(PVOID), 3921 { 3922 WDFEXPORT(WdfCollectionCreate), 3923 WDFEXPORT(WdfCollectionGetCount), 3924 WDFEXPORT(WdfCollectionAdd), 3925 WDFEXPORT(WdfCollectionRemove), 3926 WDFEXPORT(WdfCollectionRemoveItem), 3927 WDFEXPORT(WdfCollectionGetItem), 3928 WDFEXPORT(WdfCollectionGetFirstItem), 3929 WDFEXPORT(WdfCollectionGetLastItem), 3930 WDFEXPORT(WdfCxDeviceInitAllocate), 3931 WDFEXPORT(WdfCxDeviceInitSetRequestAttributes), 3932 WDFEXPORT(WdfCxDeviceInitSetFileObjectConfig), 3933 WDFEXPORT(WdfCxVerifierKeBugCheck), 3934 WDFEXPORT(WdfDeviceGetDeviceState), 3935 WDFEXPORT(WdfDeviceSetDeviceState), 3936 WDFEXPORT(WdfDeviceGetDriver), 3937 WDFEXPORT(WdfDeviceGetIoTarget), 3938 WDFEXPORT(WdfDeviceAssignS0IdleSettings), 3939 WDFEXPORT(WdfDeviceAssignSxWakeSettings), 3940 WDFEXPORT(WdfDeviceOpenRegistryKey), 3941 WDFEXPORT(WdfDeviceInitSetPnpPowerEventCallbacks), 3942 WDFEXPORT(WdfDeviceInitSetPowerPolicyEventCallbacks), 3943 WDFEXPORT(WdfDeviceInitSetPowerPolicyOwnership), 3944 WDFEXPORT(WdfDeviceInitSetIoType), 3945 WDFEXPORT(WdfDeviceInitSetFileObjectConfig), 3946 WDFEXPORT(WdfDeviceInitSetRequestAttributes), 3947 WDFEXPORT(WdfDeviceCreate), 3948 WDFEXPORT(WdfDeviceSetStaticStopRemove), 3949 WDFEXPORT(WdfDeviceCreateDeviceInterface), 3950 WDFEXPORT(WdfDeviceSetDeviceInterfaceState), 3951 WDFEXPORT(WdfDeviceRetrieveDeviceInterfaceString), 3952 WDFEXPORT(WdfDeviceCreateSymbolicLink), 3953 WDFEXPORT(WdfDeviceQueryProperty), 3954 WDFEXPORT(WdfDeviceAllocAndQueryProperty), 3955 WDFEXPORT(WdfDeviceSetPnpCapabilities), 3956 WDFEXPORT(WdfDeviceSetPowerCapabilities), 3957 WDFEXPORT(WdfDeviceSetFailed), 3958 WDFEXPORT(WdfDeviceStopIdleNoTrack), 3959 WDFEXPORT(WdfDeviceResumeIdleNoTrack), 3960 WDFEXPORT(WdfDeviceGetFileObject), 3961 WDFEXPORT(WdfDeviceGetDefaultQueue), 3962 WDFEXPORT(WdfDeviceConfigureRequestDispatching), 3963 WDFEXPORT(WdfDeviceGetSystemPowerAction), 3964 WDFEXPORT(WdfDeviceInitSetReleaseHardwareOrderOnFailure), 3965 WDFEXPORT(WdfDeviceInitSetIoTypeEx), 3966 WDFEXPORT(WdfDevicePostEvent), 3967 WDFEXPORT(WdfDeviceMapIoSpace), 3968 WDFEXPORT(WdfDeviceUnmapIoSpace), 3969 WDFEXPORT(WdfDeviceGetHardwareRegisterMappedAddress), 3970 WDFEXPORT(WdfDeviceReadFromHardware), 3971 WDFEXPORT(WdfDeviceWriteToHardware), 3972 WDFEXPORT(WdfDeviceAssignInterfaceProperty), 3973 WDFEXPORT(WdfDeviceAllocAndQueryInterfaceProperty), 3974 WDFEXPORT(WdfDeviceQueryInterfaceProperty), 3975 WDFEXPORT(WdfDeviceGetDeviceStackIoType), 3976 WDFEXPORT(WdfDeviceQueryPropertyEx), 3977 WDFEXPORT(WdfDeviceAllocAndQueryPropertyEx), 3978 WDFEXPORT(WdfDeviceAssignProperty), 3979 WDFEXPORT(WdfDriverCreate), 3980 WDFEXPORT(WdfDriverGetRegistryPath), 3981 WDFEXPORT(WdfDriverOpenParametersRegistryKey), 3982 WDFEXPORT(WdfDriverRetrieveVersionString), 3983 WDFEXPORT(WdfDriverIsVersionAvailable), 3984 WDFEXPORT(WdfFdoInitOpenRegistryKey), 3985 WDFEXPORT(WdfFdoInitQueryProperty), 3986 WDFEXPORT(WdfFdoInitAllocAndQueryProperty), 3987 WDFEXPORT(WdfFdoInitQueryPropertyEx), 3988 WDFEXPORT(WdfFdoInitAllocAndQueryPropertyEx), 3989 WDFEXPORT(WdfFdoInitSetFilter), 3990 WDFEXPORT(WdfFileObjectGetFileName), 3991 WDFEXPORT(WdfFileObjectGetDevice), 3992 WDFEXPORT(WdfFileObjectGetInitiatorProcessId), 3993 WDFEXPORT(WdfFileObjectGetRelatedFileObject), 3994 WDFEXPORT(WdfInterruptCreate), 3995 WDFEXPORT(WdfInterruptQueueDpcForIsr), 3996 WDFEXPORT(WdfInterruptQueueWorkItemForIsr), 3997 WDFEXPORT(WdfInterruptSynchronize), 3998 WDFEXPORT(WdfInterruptAcquireLock), 3999 WDFEXPORT(WdfInterruptReleaseLock), 4000 WDFEXPORT(WdfInterruptEnable), 4001 WDFEXPORT(WdfInterruptDisable), 4002 WDFEXPORT(WdfInterruptGetInfo), 4003 WDFEXPORT(WdfInterruptSetPolicy), 4004 WDFEXPORT(WdfInterruptSetExtendedPolicy), 4005 WDFEXPORT(WdfInterruptGetDevice), 4006 WDFEXPORT(WdfInterruptTryToAcquireLock), 4007 WDFEXPORT(WdfIoQueueCreate), 4008 WDFEXPORT(WdfIoQueueGetState), 4009 WDFEXPORT(WdfIoQueueStart), 4010 WDFEXPORT(WdfIoQueueStop), 4011 WDFEXPORT(WdfIoQueueStopSynchronously), 4012 WDFEXPORT(WdfIoQueueGetDevice), 4013 WDFEXPORT(WdfIoQueueRetrieveNextRequest), 4014 WDFEXPORT(WdfIoQueueRetrieveRequestByFileObject), 4015 WDFEXPORT(WdfIoQueueFindRequest), 4016 WDFEXPORT(WdfIoQueueRetrieveFoundRequest), 4017 WDFEXPORT(WdfIoQueueDrainSynchronously), 4018 WDFEXPORT(WdfIoQueueDrain), 4019 WDFEXPORT(WdfIoQueuePurgeSynchronously), 4020 WDFEXPORT(WdfIoQueuePurge), 4021 WDFEXPORT(WdfIoQueueReadyNotify), 4022 WDFEXPORT(WdfIoQueueStopAndPurge), 4023 WDFEXPORT(WdfIoQueueStopAndPurgeSynchronously), 4024 WDFEXPORT(WdfIoTargetCreate), 4025 WDFEXPORT(WdfIoTargetOpen), 4026 WDFEXPORT(WdfIoTargetCloseForQueryRemove), 4027 WDFEXPORT(WdfIoTargetClose), 4028 WDFEXPORT(WdfIoTargetStart), 4029 WDFEXPORT(WdfIoTargetStop), 4030 WDFEXPORT(WdfIoTargetPurge), 4031 WDFEXPORT(WdfIoTargetGetState), 4032 WDFEXPORT(WdfIoTargetGetDevice), 4033 WDFEXPORT(WdfIoTargetSendReadSynchronously), 4034 WDFEXPORT(WdfIoTargetFormatRequestForRead), 4035 WDFEXPORT(WdfIoTargetSendWriteSynchronously), 4036 WDFEXPORT(WdfIoTargetFormatRequestForWrite), 4037 WDFEXPORT(WdfIoTargetSendIoctlSynchronously), 4038 WDFEXPORT(WdfIoTargetFormatRequestForIoctl), 4039 WDFEXPORT(WdfMemoryCreate), 4040 WDFEXPORT(WdfMemoryCreatePreallocated), 4041 WDFEXPORT(WdfMemoryGetBuffer), 4042 WDFEXPORT(WdfMemoryAssignBuffer), 4043 WDFEXPORT(WdfMemoryCopyToBuffer), 4044 WDFEXPORT(WdfMemoryCopyFromBuffer), 4045 WDFEXPORT(WdfObjectGetTypedContextWorker), 4046 WDFEXPORT(WdfObjectAllocateContext), 4047 WDFEXPORT(WdfObjectContextGetObject), 4048 WDFEXPORT(WdfObjectReferenceActual), 4049 WDFEXPORT(WdfObjectDereferenceActual), 4050 WDFEXPORT(WdfObjectCreate), 4051 WDFEXPORT(WdfObjectDelete), 4052 WDFEXPORT(WdfObjectQuery), 4053 WDFEXPORT(WdfRegistryOpenKey), 4054 WDFEXPORT(WdfRegistryCreateKey), 4055 WDFEXPORT(WdfRegistryClose), 4056 WDFEXPORT(WdfRegistryRemoveKey), 4057 WDFEXPORT(WdfRegistryRemoveValue), 4058 WDFEXPORT(WdfRegistryQueryValue), 4059 WDFEXPORT(WdfRegistryQueryMemory), 4060 WDFEXPORT(WdfRegistryQueryMultiString), 4061 WDFEXPORT(WdfRegistryQueryUnicodeString), 4062 WDFEXPORT(WdfRegistryQueryString), 4063 WDFEXPORT(WdfRegistryQueryULong), 4064 WDFEXPORT(WdfRegistryAssignValue), 4065 WDFEXPORT(WdfRegistryAssignMemory), 4066 WDFEXPORT(WdfRegistryAssignMultiString), 4067 WDFEXPORT(WdfRegistryAssignUnicodeString), 4068 WDFEXPORT(WdfRegistryAssignString), 4069 WDFEXPORT(WdfRegistryAssignULong), 4070 WDFEXPORT(WdfRequestCreate), 4071 WDFEXPORT(WdfRequestReuse), 4072 WDFEXPORT(WdfRequestChangeTarget), 4073 WDFEXPORT(WdfRequestFormatRequestUsingCurrentType), 4074 WDFEXPORT(WdfRequestSend), 4075 WDFEXPORT(WdfRequestGetStatus), 4076 WDFEXPORT(WdfRequestMarkCancelable), 4077 WDFEXPORT(WdfRequestMarkCancelableEx), 4078 WDFEXPORT(WdfRequestUnmarkCancelable), 4079 WDFEXPORT(WdfRequestIsCanceled), 4080 WDFEXPORT(WdfRequestCancelSentRequest), 4081 WDFEXPORT(WdfRequestIsFrom32BitProcess), 4082 WDFEXPORT(WdfRequestSetCompletionRoutine), 4083 WDFEXPORT(WdfRequestGetCompletionParams), 4084 WDFEXPORT(WdfRequestAllocateTimer), 4085 WDFEXPORT(WdfRequestComplete), 4086 WDFEXPORT(WdfRequestCompleteWithInformation), 4087 WDFEXPORT(WdfRequestGetParameters), 4088 WDFEXPORT(WdfRequestRetrieveInputMemory), 4089 WDFEXPORT(WdfRequestRetrieveOutputMemory), 4090 WDFEXPORT(WdfRequestRetrieveInputBuffer), 4091 WDFEXPORT(WdfRequestRetrieveOutputBuffer), 4092 WDFEXPORT(WdfRequestSetInformation), 4093 WDFEXPORT(WdfRequestGetInformation), 4094 WDFEXPORT(WdfRequestGetFileObject), 4095 WDFEXPORT(WdfRequestGetRequestorMode), 4096 WDFEXPORT(WdfRequestForwardToIoQueue), 4097 WDFEXPORT(WdfRequestGetIoQueue), 4098 WDFEXPORT(WdfRequestRequeue), 4099 WDFEXPORT(WdfRequestStopAcknowledge), 4100 WDFEXPORT(WdfRequestImpersonate), 4101 WDFEXPORT(WdfRequestGetRequestorProcessId), 4102 WDFEXPORT(WdfRequestIsFromUserModeDriver), 4103 WDFEXPORT(WdfRequestSetUserModeDriverInitiatedIo), 4104 WDFEXPORT(WdfRequestGetUserModeDriverInitiatedIo), 4105 WDFEXPORT(WdfRequestSetActivityId), 4106 WDFEXPORT(WdfRequestRetrieveActivityId), 4107 WDFEXPORT(WdfRequestGetEffectiveIoType), 4108 WDFEXPORT(WdfCmResourceListGetCount), 4109 WDFEXPORT(WdfCmResourceListGetDescriptor), 4110 WDFEXPORT(WdfStringCreate), 4111 WDFEXPORT(WdfStringGetUnicodeString), 4112 WDFEXPORT(WdfObjectAcquireLock), 4113 WDFEXPORT(WdfObjectReleaseLock), 4114 WDFEXPORT(WdfWaitLockCreate), 4115 WDFEXPORT(WdfWaitLockAcquire), 4116 WDFEXPORT(WdfWaitLockRelease), 4117 WDFEXPORT(WdfSpinLockCreate), 4118 WDFEXPORT(WdfSpinLockAcquire), 4119 WDFEXPORT(WdfSpinLockRelease), 4120 WDFEXPORT(WdfTimerCreate), 4121 WDFEXPORT(WdfTimerStart), 4122 WDFEXPORT(WdfTimerStop), 4123 WDFEXPORT(WdfTimerGetParentObject), 4124 WDFEXPORT(WdfUsbTargetDeviceCreate), 4125 WDFEXPORT(WdfUsbTargetDeviceCreateWithParameters), 4126 WDFEXPORT(WdfUsbTargetDeviceRetrieveInformation), 4127 WDFEXPORT(WdfUsbTargetDeviceGetDeviceDescriptor), 4128 WDFEXPORT(WdfUsbTargetDeviceRetrieveConfigDescriptor), 4129 WDFEXPORT(WdfUsbTargetDeviceQueryString), 4130 WDFEXPORT(WdfUsbTargetDeviceAllocAndQueryString), 4131 WDFEXPORT(WdfUsbTargetDeviceFormatRequestForString), 4132 WDFEXPORT(WdfUsbTargetDeviceGetNumInterfaces), 4133 WDFEXPORT(WdfUsbTargetDeviceSelectConfig), 4134 WDFEXPORT(WdfUsbTargetDeviceSendControlTransferSynchronously), 4135 WDFEXPORT(WdfUsbTargetDeviceFormatRequestForControlTransfer), 4136 WDFEXPORT(WdfUsbTargetDeviceResetPortSynchronously), 4137 WDFEXPORT(WdfUsbTargetDeviceQueryUsbCapability), 4138 WDFEXPORT(WdfUsbTargetPipeGetInformation), 4139 WDFEXPORT(WdfUsbTargetPipeIsInEndpoint), 4140 WDFEXPORT(WdfUsbTargetPipeIsOutEndpoint), 4141 WDFEXPORT(WdfUsbTargetPipeGetType), 4142 WDFEXPORT(WdfUsbTargetPipeSetNoMaximumPacketSizeCheck), 4143 WDFEXPORT(WdfUsbTargetPipeWriteSynchronously), 4144 WDFEXPORT(WdfUsbTargetPipeFormatRequestForWrite), 4145 WDFEXPORT(WdfUsbTargetPipeReadSynchronously), 4146 WDFEXPORT(WdfUsbTargetPipeFormatRequestForRead), 4147 WDFEXPORT(WdfUsbTargetPipeConfigContinuousReader), 4148 WDFEXPORT(WdfUsbTargetPipeAbortSynchronously), 4149 WDFEXPORT(WdfUsbTargetPipeFormatRequestForAbort), 4150 WDFEXPORT(WdfUsbTargetPipeResetSynchronously), 4151 WDFEXPORT(WdfUsbTargetPipeFormatRequestForReset), 4152 WDFEXPORT(WdfUsbInterfaceGetInterfaceNumber), 4153 WDFEXPORT(WdfUsbInterfaceGetNumEndpoints), 4154 WDFEXPORT(WdfUsbInterfaceGetDescriptor), 4155 WDFEXPORT(WdfUsbInterfaceGetNumSettings), 4156 WDFEXPORT(WdfUsbInterfaceSelectSetting), 4157 WDFEXPORT(WdfUsbInterfaceGetEndpointInformation), 4158 WDFEXPORT(WdfUsbTargetDeviceGetInterface), 4159 WDFEXPORT(WdfUsbInterfaceGetConfiguredSettingIndex), 4160 WDFEXPORT(WdfUsbInterfaceGetNumConfiguredPipes), 4161 WDFEXPORT(WdfUsbInterfaceGetConfiguredPipe), 4162 WDFEXPORT(WdfVerifierDbgBreakPoint), 4163 WDFEXPORT(WdfVerifierKeBugCheck), 4164 WDFEXPORT(WdfGetTriageInfo), 4165 WDFEXPORT(WdfWorkItemCreate), 4166 WDFEXPORT(WdfWorkItemEnqueue), 4167 WDFEXPORT(WdfWorkItemGetParentObject), 4168 WDFEXPORT(WdfWorkItemFlush), 4169 WDFEXPORT(WdfRegistryWdmGetHandle), 4170 WDFEXPORT(WdfDeviceStopIdleActual), 4171 WDFEXPORT(WdfDeviceResumeIdleActual), 4172 WDFEXPORT(WdfDeviceInitEnableHidInterface), 4173 WDFEXPORT(WdfDeviceHidNotifyPresence), 4174 WDFEXPORT(WdfDeviceGetSelfIoTarget), 4175 WDFEXPORT(WdfDeviceInitAllowSelfIoTarget), 4176 WDFEXPORT(WdfIoTargetSelfAssignDefaultIoQueue), 4177 WDFEXPORT(WdfDeviceOpenDevicemapKey), 4178 WDFEXPORT(WdfIoTargetWdmGetTargetFileHandle), 4179 WDFEXPORT(WdfDeviceWdmDispatchIrp), 4180 WDFEXPORT(WdfDeviceWdmDispatchIrpToIoQueue), 4181 WDFEXPORT(WdfDeviceConfigureWdmIrpDispatchCallback), 4182 } 4183 }; 4184 4185 #endif // FX_DYNAMICS_GENERATE_TABLE 4186 4187 #endif // _FXDYNAMICS_H_ 4188 4189