24#define TAG_ISAPNP 'pasI'
27#define ISAPNP_MAX_RESOURCEDATA 0x1000
30#define ISAPNP_MAX_ALTERNATIVES 8
134#define ISAPNP_PRESENT 0x00000001
135#define ISAPNP_HAS_MULTIPLE_LOGDEVS 0x00000002
136#define ISAPNP_HAS_RESOURCES 0x00000004
187#define ISAPNP_ENUMERATED 0x00000001
188#define ISAPNP_SCANNED_BY_READ_PORT 0x00000002
189#define ISAPNP_READ_PORT_ALLOW_FDO_SCAN 0x00000004
190#define ISAPNP_READ_PORT_NEED_REBALANCE 0x00000008
193 volatile LONG SpecialFiles;
208IsaPnpAcquireBusDataLock(
VOID)
216IsaPnpReleaseBusDataLock(
VOID)
225IsaPnpAcquireDeviceDataLock(
234IsaPnpReleaseDeviceDataLock(
245 return (Alternatives->Io[0].Length != 0);
253 return (Alternatives->Irq[0].Mask != 0);
261 return (Alternatives->Dma[0].Mask != 0);
269 return (Alternatives->MemRange[0].Length != 0);
277 return (Alternatives->MemRange32[0].Length != 0);
392IsaHwDeactivateDevice(
403IsaHwWaitForKey(
VOID);
static LIST_ENTRY DeviceListHead
#define _Acquires_lock_(lock)
#define _Guarded_by_(lock)
#define _Requires_lock_held_(lock)
#define _Requires_lock_not_held_(lock)
#define _Releases_lock_(lock)
_In_ PIO_STACK_LOCATION IrpSp
#define _IRQL_requires_max_(irql)
#define KeWaitForSingleObject(pEvt, foo, a, b, c)
#define KeSetEvent(pEvt, foo, foo2)
struct _ISAPNP_ALTERNATIVES * PISAPNP_ALTERNATIVES
struct _ISAPNP_LOGICAL_DEVICE * PISAPNP_LOGICAL_DEVICE
VOID IsaPnpRemoveLogicalDeviceDO(_In_ PDEVICE_OBJECT Pdo)
struct _ISAPNP_MEMRANGE ISAPNP_MEMRANGE
_In_ PISAPNP_LOGICAL_DEVICE LogicalDevice
struct _ISAPNP_IO ISAPNP_IO
NTSTATUS IsaFdoQueryInterface(_In_ PISAPNP_FDO_EXTENSION FdoExt, _In_ PIO_STACK_LOCATION IrpSp)
struct _ISAPNP_FDO_EXTENSION ISAPNP_FDO_EXTENSION
#define ISAPNP_MAX_ALTERNATIVES
Maximum number of Start DF tags supported by the driver.
NTSTATUS IsaPnpCreateReadPortDORequirements(_In_ PISAPNP_PDO_EXTENSION PdoExt, _In_opt_ ULONG SelectedReadPort)
struct _ISAPNP_FDO_EXTENSION * PISAPNP_FDO_EXTENSION
struct _ISAPNP_PDO_EXTENSION * PISAPNP_PDO_EXTENSION
DRIVER_INITIALIZE DriverEntry
BOOLEAN FindMemoryDescriptor(_In_ PISAPNP_LOGICAL_DEVICE LogDevice, _In_ ULONG RangeStart, _In_ ULONG RangeEnd, _Out_opt_ PBOOLEAN Memory32, _Out_opt_ PUCHAR Information, _Out_opt_ PUCHAR WriteOrder)
NTSTATUS IsaPnpFillDeviceRelations(_In_ PISAPNP_FDO_EXTENSION FdoExt, _Inout_ PIRP Irp, _In_ BOOLEAN IncludeDataPort)
struct _ISAPNP_IRQ ISAPNP_IRQ
struct _ISAPNP_IO * PISAPNP_IO
struct _ISAPNP_PDO_EXTENSION ISAPNP_PDO_EXTENSION
struct _ISAPNP_COMMON_EXTENSION ISAPNP_COMMON_EXTENSION
struct _ISAPNP_DMA * PISAPNP_DMA
VOID IsaPnpRemoveReadPortDO(_In_ PDEVICE_OBJECT Pdo)
UCHAR IsaHwTryReadDataPort(_In_ PUCHAR ReadDataPort)
FORCEINLINE BOOLEAN HasDmaAlternatives(_In_ PISAPNP_ALTERNATIVES Alternatives)
NTSTATUS IsaPdoPnp(_In_ PISAPNP_PDO_EXTENSION PdoDeviceExtension, _Inout_ PIRP Irp, _In_ PIO_STACK_LOCATION IrpSp)
NTSTATUS IsaFdoPnp(_In_ PISAPNP_FDO_EXTENSION FdoExt, _Inout_ PIRP Irp, _In_ PIO_STACK_LOCATION IrpSp)
struct _ISAPNP_COMMON_EXTENSION * PISAPNP_COMMON_EXTENSION
struct _ISAPNP_COMPATIBLE_ID_ENTRY ISAPNP_COMPATIBLE_ID_ENTRY
BOOLEAN FindIrqDescriptor(_In_ PISAPNP_LOGICAL_DEVICE LogDevice, _In_ ULONG Vector, _Out_opt_ PUCHAR WriteOrder)
struct _ISAPNP_IRQ * PISAPNP_IRQ
enum _ISAPNP_SIGNATURE ISAPNP_SIGNATURE
FORCEINLINE BOOLEAN HasMemory32Alternatives(_In_ PISAPNP_ALTERNATIVES Alternatives)
FORCEINLINE BOOLEAN HasMemoryAlternatives(_In_ PISAPNP_ALTERNATIVES Alternatives)
struct _ISAPNP_MEMRANGE32 * PISAPNP_MEMRANGE32
struct _ISAPNP_DMA ISAPNP_DMA
struct _ISAPNP_MEMRANGE * PISAPNP_MEMRANGE
struct _ISAPNP_LOGICAL_DEVICE ISAPNP_LOGICAL_DEVICE
FORCEINLINE BOOLEAN HasIoAlternatives(_In_ PISAPNP_ALTERNATIVES Alternatives)
struct _ISAPNP_MEMRANGE32 ISAPNP_MEMRANGE32
BOOLEAN FindIoDescriptor(_In_ PISAPNP_LOGICAL_DEVICE LogDevice, _In_opt_ ULONG Base, _In_ ULONG RangeStart, _In_ ULONG RangeEnd, _Out_opt_ PUCHAR Information, _Out_opt_ PULONG Length, _Out_opt_ PUCHAR WriteOrder)
NTSTATUS IsaHwConfigureDevice(_In_ PISAPNP_FDO_EXTENSION FdoExt, _In_ PISAPNP_LOGICAL_DEVICE LogicalDevice, _In_ PCM_RESOURCE_LIST Resources)
struct _ISAPNP_ALTERNATIVES ISAPNP_ALTERNATIVES
FORCEINLINE BOOLEAN HasIrqAlternatives(_In_ PISAPNP_ALTERNATIVES Alternatives)
struct _ISAPNP_COMPATIBLE_ID_ENTRY * PISAPNP_COMPATIBLE_ID_ENTRY
BOOLEAN FindDmaDescriptor(_In_ PISAPNP_LOGICAL_DEVICE LogDevice, _In_ ULONG Channel, _Out_opt_ PUCHAR WriteOrder)
_In_ ULONG _In_ ULONG _In_ ULONG Length
_Field_range_(0, ISAPNP_MAX_ALTERNATIVES) UCHAR Count
ISAPNP_IRQ_DESCRIPTION Irq[ISAPNP_MAX_ALTERNATIVES]
ISAPNP_MEMRANGE32_DESCRIPTION MemRange32[ISAPNP_MAX_ALTERNATIVES]
ISAPNP_MEMRANGE_DESCRIPTION MemRange[ISAPNP_MAX_ALTERNATIVES]
ISAPNP_IO_DESCRIPTION Io[ISAPNP_MAX_ALTERNATIVES]
ISAPNP_DMA_DESCRIPTION Dma[ISAPNP_MAX_ALTERNATIVES]
ISAPNP_SIGNATURE Signature
ISAPNP_DEVICE_STATE State
ISAPNP_DMA_DESCRIPTION Description
PDRIVER_OBJECT DriverObject
_Guarded_by_(DeviceSyncEvent) ULONG DeviceCount
ISAPNP_COMMON_EXTENSION Common
_Guarded_by_(DeviceSyncEvent) LIST_ENTRY DeviceListHead
PDEVICE_OBJECT ReadPortPdo
ISAPNP_IO_DESCRIPTION Description
ISAPNP_IRQ_DESCRIPTION Description
LIST_ENTRY CompatibleIdList
ISAPNP_MEMRANGE32 MemRange32[4]
ISAPNP_MEMRANGE MemRange[4]
PISAPNP_ALTERNATIVES Alternatives
ISAPNP_MEMRANGE32_DESCRIPTION Description
ISAPNP_MEMRANGE_DESCRIPTION Description
PCM_RESOURCE_LIST ResourceList
ISAPNP_COMMON_EXTENSION Common
PIO_RESOURCE_REQUIREMENTS_LIST RequirementsList
_Write_guarded_by_(_Global_interlock_) volatile LONG SpecialFiles
PISAPNP_LOGICAL_DEVICE IsaPnpDevice
PISAPNP_FDO_EXTENSION FdoExt
PUSBHUB_PORT_PDO_EXTENSION NTAPI PdoExt(IN PDEVICE_OBJECT DeviceObject)
_In_ WDFINTERRUPT _In_ WDF_INTERRUPT_POLICY _In_ WDF_INTERRUPT_PRIORITY Priority
WDF_EXTERN_C_START typedef _Must_inspect_result_ _In_ WDFDRIVER _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ PDEVICE_OBJECT _In_opt_ PDEVICE_OBJECT _In_opt_ PDEVICE_OBJECT Pdo
_In_ WDFREQUEST _In_ NTSTATUS _In_ ULONG_PTR Information