128 BOOLEAN bUseDMA, bUseInterrupt;
140 List = IoStack->
Parameters.StartDevice.AllocatedResourcesTranslated;
162 ASSERT(DriverObjectExtension);
178 Config->HwDeviceExtension = (
PVOID) (DeviceExtension + 1);
188 List = IoStack->
Parameters.StartDevice.AllocatedResourcesTranslated;
192 bUseInterrupt =
FALSE;
209 Config->NumberOfAccessRanges++;
219 bUseInterrupt =
TRUE;
226 if (!MappedAddr || !Mem)
251 Config->NumberOfAccessRanges++;
254 Mem->
Start = MappedAddr;
280 (
PVOID)DeviceExtension,
282 Config->BusInterruptVector,
283 Config->BusInterruptLevel,
284 Config->BusInterruptLevel,
407 if (!StreamDescriptor)
VOID NTAPI StreamClassReleaseResources(IN PDEVICE_OBJECT DeviceObject)
struct _ACCESS_RANGE ACCESS_RANGE
#define STATUS_INSUFFICIENT_RESOURCES
_Must_inspect_result_ _In_ WDFIORESLIST _In_ PIO_RESOURCE_DESCRIPTOR Descriptor
enum _INTERFACE_TYPE INTERFACE_TYPE
struct _DMA_ADAPTER * PADAPTER_OBJECT
PDMA_ADAPTER NTAPI IoGetDmaAdapter(IN PDEVICE_OBJECT PhysicalDeviceObject, IN PDEVICE_DESCRIPTION DeviceDescription, IN OUT PULONG NumberOfMapRegisters)
BOOLEAN NTAPI IoForwardIrpSynchronously(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
HW_INITIALIZATION_DATA Data
SYNCHRONIZE_FUNC SynchronizeFunction
PVOID NTAPI MmMapIoSpace(IN PHYSICAL_ADDRESS PhysicalAddress, IN SIZE_T NumberOfBytes, IN MEMORY_CACHING_TYPE CacheType)
#define InsertTailList(ListHead, Entry)
struct _HW_STREAM_REQUEST_BLOCK HW_STREAM_REQUEST_BLOCK
NTSTATUS NTAPI KeWaitForSingleObject(IN PVOID Object, IN KWAIT_REASON WaitReason, IN KPROCESSOR_MODE WaitMode, IN BOOLEAN Alertable, IN PLARGE_INTEGER Timeout OPTIONAL)
BOOLEAN NTAPI StreamClassSynchronize(IN PKINTERRUPT Interrupt, IN PKSYNCHRONIZE_ROUTINE SynchronizeRoutine, IN PVOID SynchronizeContext)
struct _DMA_OPERATIONS * DmaOperations
#define CmResourceTypePort
#define DEVICE_DESCRIPTION_VERSION
VOID CompleteIrp(IN PIRP Irp, IN NTSTATUS Status, IN ULONG_PTR Information)
BOOLEAN NTAPI StreamClassInterruptRoutine(IN PKINTERRUPT Interrupt, IN PVOID ServiceContext)
PHYSICAL_ADDRESS DmaPhysicalAddress
_In_ PDEVICE_OBJECT DeviceObject
struct _PORT_CONFIGURATION_INFORMATION * ConfigInfo
BOOLEAN Dma24BitAddresses
NTSTATUS NTAPI IoConnectInterrupt(OUT PKINTERRUPT *InterruptObject, IN PKSERVICE_ROUTINE ServiceRoutine, IN PVOID ServiceContext, IN PKSPIN_LOCK SpinLock, IN ULONG Vector, IN KIRQL Irql, IN KIRQL SynchronizeIrql, IN KINTERRUPT_MODE InterruptMode, IN BOOLEAN ShareVector, IN KAFFINITY ProcessorEnableMask, IN BOOLEAN FloatingSave)
PHW_INTERRUPT HwInterrupt
NTSTATUS NTAPI IoGetDeviceProperty(IN PDEVICE_OBJECT DeviceObject, IN DEVICE_REGISTRY_PROPERTY DeviceProperty, IN ULONG BufferLength, OUT PVOID PropertyBuffer, OUT PULONG ResultLength)
BOOLEAN Dma32BitAddresses
#define NT_SUCCESS(StatCode)
_In_ WDFCOLLECTION _In_ ULONG Index
struct _ACCESS_RANGE * PACCESS_RANGE
PDEVICE_OBJECT PhysicalDeviceObject
_In_ ULONG _In_ ULONG _In_ ULONG _Out_ PKIRQL _Out_ PKAFFINITY Affinity
struct STREAM_DEVICE_EXTENSION * PSTREAM_DEVICE_EXTENSION
PHW_STREAM_DESCRIPTOR StreamDescriptor
#define STATUS_UNSUCCESSFUL
HW_STREAM_REQUEST_BLOCK Block
PHW_STREAM_DESCRIPTOR StreamBuffer
#define ExAllocatePool(type, size)
_Must_inspect_result_ _In_ WDFCMRESLIST List
PVOID NTAPI IoGetDriverObjectExtension(IN PDRIVER_OBJECT DriverObject, IN PVOID ClientIdentificationAddress)
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_CHILD_LIST_CONFIG Config
union _HW_STREAM_REQUEST_BLOCK::_CommandData CommandData
NTSTATUS NTAPI StreamClassAddDevice(IN PDRIVER_OBJECT DriverObject, IN PDEVICE_OBJECT PhysicalDeviceObject)
__drv_aliasesMem FORCEINLINE PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(_In_ PIRP Irp)
#define KeInitializeEvent(pEvt, foo, foo2)
VOID NTAPI MmUnmapIoSpace(IN PVOID BaseAddress, IN SIZE_T NumberOfBytes)
ULONG StreamDescriptorSize
#define CmResourceTypeInterrupt
INTERFACE_TYPE InterfaceType
#define RtlZeroMemory(Destination, Length)
PSTREAM_CLASS_DRIVER_EXTENSION DriverExtension
BOOLEAN NTAPI KeSynchronizeExecution(IN OUT PKINTERRUPT Interrupt, IN PKSYNCHRONIZE_ROUTINE SynchronizeRoutine, IN PVOID SynchronizeContext OPTIONAL)
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG _Out_ PULONG ResultLength
PDEVICE_OBJECT LowerDeviceObject
LIST_ENTRY MemoryResourceList
struct _NAMED_PIPE_CREATE_PARAMETERS * Parameters
#define CmResourceTypeMemory
VOID NTAPI KeClearEvent(IN PKEVENT Event)
PHW_RECEIVE_DEVICE_SRB HwReceivePacket
#define CmResourceTypeDma
struct _PORT_CONFIGURATION_INFORMATION * PPORT_CONFIGURATION_INFORMATION