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