32#define TAG_PCIIDEX 'XedI'
41 ((((PCOMMON_DEVICE_EXTENSION)(p))->Flags & DO_IS_FDO) != 0)
43#define IS_PRIMARY_CHANNEL(PdoExtension) (PdoExtension->Channel == 0)
46#pragma section("PAGECONS", read)
50#define PCIIDEX_PAGED_DATA DATA_SEG("PAGECONS")
52#define MAX_CHANNELS 32
54#define PORT_TIMER_TICK_MS 10
56#define DEV_NUMBER(Device) ((Device)->TransportFlags & DEVICE_NUMBER_MASK)
72(CONTROLLER_CHANNEL_ENABLED)(
102(CHANNEL_SET_MODE_EX)(
190#define RANGE_IS_VALID 0x01
191#define RANGE_IS_MEMORY 0x02
192#define RANGE_IS_MAPPED 0x04
223#define CTRL_FLAG_NATIVE_PCI 0x00000001
224#define CTRL_FLAG_IS_SIMPLEX 0x00000002
225#define CTRL_FLAG_SATA_HBA_ACPI 0x00000002
226#define CTRL_FLAG_USE_TEST_FUNCTION 0x00000004
227#define CTRL_FLAG_IS_AHCI 0x00000008
228#define CTRL_FLAG_NON_PNP 0x00000010
229#define CTRL_FLAG_MANUAL_RES 0x00000020
230#define CTRL_FLAG_DMA_INTERRUPT 0x00000040
260#define CHANNEL_FLAG_IO32 0x00000001
261#define CHANNEL_FLAG_DRIVE0_DMA_CAPABLE 0x00000002
262#define CHANNEL_FLAG_DRIVE1_DMA_CAPABLE 0x00000004
263#define CHANNEL_FLAG_CONTROL_PORT_BASE_MAPPED 0x00000008
264#define CHANNEL_FLAG_COMMAND_PORT_BASE_MAPPED 0x00000010
265#define CHANNEL_FLAG_DMA_PORT_BASE_MAPPED 0x00000020
266#define CHANNEL_FLAG_64_BIT_DMA 0x00000040
267#define CHANNEL_FLAG_PRIMARY_ADDRESS_CLAIMED 0x00000080
268#define CHANNEL_FLAG_SECONDARY_ADDRESS_CLAIMED 0x00000100
269#define CHANNEL_FLAG_PIO_VIA_DMA 0x00000200
270#define CHANNEL_FLAG_NO_SLAVE 0x00000400
271#define CHANNEL_FLAG_IS_EXTERNAL 0x00000800
272#define CHANNEL_FLAG_IS_PMP 0x00001000
273#define CHANNEL_FLAG_HAS_FBS 0x00002000
274#define CHANNEL_FLAG_FBS_ENABLED 0x00004000
275#define CHANNEL_FLAG_HAS_ACPI_GTM 0x00008000
276#define CHANNEL_FLAG_HAS_NCQ 0x00010000
277#define CHANNEL_FLAG_PIO_FOR_LBA48_XFER 0x00020000
278#define CHANNEL_FLAG_NO_ATAPI_DMA 0x00040000
279#define CHANNEL_FLAG_DMA_BEFORE_CMD 0x00080000
280#define CHANNEL_FLAG_MRES_TF 0x00100000
281#define CHANNEL_FLAG_MRES_DMA 0x00200000
282#define CHANNEL_FLAG_MRES_CTRL 0x00400000
283#define CHANNEL_FLAG_CBUS 0x80000000
359 volatile LONG PageFiles;
362 volatile LONG HibernateFiles;
365 volatile LONG DumpFiles;
379#define DO_IS_FDO 0x80000000
409#define PDO_FLAG_NOT_PRESENT 0x00000001
410#define PDO_FLAG_REPORTED_MISSING 0x00000002
755#if defined(ATA_DETECT_LEGACY_DEVICES)
830 x -=
x >> 1 & 0x55555555;
831 x = (
x & 0x33333333) + (
x >> 2 & 0x33333333);
833 return ((
x + (
x >> 4)) & 0x0F0F0F0F) * 0x01010101 >> 24;
842 return (
x != 0) && ((
x & (
x - 1)) == 0);
enum _SATA_SCR_REGISTER SATA_SCR_REGISTER
#define AHCI_MAX_COMMAND_SLOTS
BOOLEAN() CHANNEL_DOWNGRADE_INTERFACE_SPEED(_In_ PVOID ChannelContext)
NTSTATUS() CONTROLLER_ATTACH_CHANNEL(_In_ PVOID ChannelContext, _In_ BOOLEAN Attach)
VOID() CONTROLLER_PNP_REMOVE_DEVICE(_In_ PVOID ControllerContext)
VOID() CHANNEL_ABORT_CHANNEL(_In_ PVOID ChannelContext, _In_ BOOLEAN DisableInterrupts)
NTSTATUS() CONTROLLER_PNP_START_DEVICE(_In_ PVOID ControllerContext, _In_ PCM_RESOURCE_LIST ResourcesTranslated)
_In_ PVOID typedef PORT_NOTIFICATION * PPORT_NOTIFICATION
CHANNEL_START_IO * PCHANNEL_START_IO
VOID() CHANNEL_RESET_CHANNEL(_In_ PVOID ChannelContext)
ULONG() CHANNEL_ENUMERATE_CHANNEL(_In_ PVOID ChannelContext)
PVOID() CHANNEL_GET_INIT_TASK_FILE(_In_ PVOID ChannelContext, _In_ PDEVICE_OBJECT DeviceObject)
CHANNEL_PREPARE_PRD_TABLE * PCHANNEL_PREPARE_PRD_TABLE
VOID() CHANNEL_SET_DEVICE_DATA(_In_ PVOID ChannelContext, _In_ PDEVICE_OBJECT DeviceObject, _In_ PIDENTIFY_DEVICE_DATA IdentifyDeviceData)
CHANNEL_PREPARE_IO * PCHANNEL_PREPARE_IO
ATA_CONNECTION_STATUS() CHANNEL_IDENTIFY_DEVICE(_In_ PVOID ChannelContext, _In_ ULONG DeviceNumber)
#define _Dispatch_type_(a)
NTSTATUS NTAPI PciIdeXDispatchPower(_In_ PDEVICE_OBJECT DeviceObject, _Inout_ PIRP Irp)
#define _IRQL_requires_max_(irql)
#define _IRQL_requires_(irql)
GLint GLint GLint GLint GLint x
NTSTATUS(NTAPI * PCONTROLLER_PROPERTIES)(_In_ PVOID DeviceExtension, _In_ PIDE_CONTROLLER_PROPERTIES ControllerProperties)
_In_ PIOMMU_DEVICE_PATH _In_ PIOMMU_SVM_CAPABILITIES DeviceCapabilities
#define _In_reads_bytes_(s)
#define _Out_writes_bytes_all_(s)
#define _Out_writes_all_(s)
_In_ ULONGLONG _In_ ULONGLONG _In_ BOOLEAN Enable
NTSTATUS PataGetControllerProperties(_Inout_ PATA_CONTROLLER Controller, _In_ PCM_RESOURCE_LIST ResourcesTranslated)
NTSTATUS NTAPI PciIdeXDispatchWmi(_In_ PDEVICE_OBJECT DeviceObject, _Inout_ PIRP Irp)
CHANNEL_PREPARE_IO PataPrepareIo
struct _CHANNEL_INFO_AHCI * PCHANNEL_INFO_AHCI
VOID AtaWritePortUchar(_In_ PUCHAR Port, _In_ UCHAR Value, _In_ ULONG MmioFlags)
BOOLEAN AtaAcpiGetTimingMode(_In_ PDEVICE_OBJECT DeviceObject, _Out_ PIDE_ACPI_TIMING_MODE_BLOCK TimingMode)
BOOLEAN() CHANNEL_CHECK_INTERRUPT(_In_ PCHANNEL_DATA_PATA ChanData)
struct _FDO_DEVICE_EXTENSION FDO_DEVICE_EXTENSION
IDE_CHANNEL_STATE PciIdeXChannelState(_In_ PFDO_DEVICE_EXTENSION FdoExtension, _In_ ULONG Channel)
CONTROLLER_START * PCONTROLLER_START
NTSTATUS AtaAcpiSetTimingMode(_In_ PDEVICE_OBJECT DeviceObject, _In_ PIDE_ACPI_TIMING_MODE_BLOCK TimingMode, _In_opt_ PIDENTIFY_DEVICE_DATA IdBlock1, _In_opt_ PIDENTIFY_DEVICE_DATA IdBlock2)
NTSTATUS PciIdeXFdoDispatchPnp(_In_ PFDO_DEVICE_EXTENSION FdoExtension, _Inout_ PIRP Irp)
CHANNEL_ENABLE_INTERRUPTS * PCHANNEL_ENABLE_INTERRUPTS
FORCEINLINE UCHAR PciRead8(_In_ PATA_CONTROLLER Controller, _In_ ULONG ConfigDataOffset)
NTSTATUS PciIdeXPnpQueryDeviceUsageNotification(_In_ PCOMMON_DEVICE_EXTENSION CommonExt, _In_ PIRP Irp)
VOID PciWrite(_In_ PATA_CONTROLLER Controller, _In_reads_bytes_(BufferLength) PVOID Buffer, _In_ ULONG ConfigDataOffset, _In_ ULONG BufferLength)
VOID PciRead(_In_ PATA_CONTROLLER Controller, _Out_writes_bytes_all_(BufferLength) PVOID Buffer, _In_ ULONG ConfigDataOffset, _In_ ULONG BufferLength)
NTSTATUS PcTechGetControllerProperties(_Inout_ PATA_CONTROLLER Controller)
struct _CHANNEL_DATA_AHCI * PCHANNEL_DATA_AHCI
BOOLEAN() CHANNEL_READ_SCR(_In_ PCHANNEL_DATA_PATA ChanData, _In_ SATA_SCR_REGISTER Register, _In_ ULONG PortNumber, _In_ PULONG Result)
CONTROLLER_PNP_START_DEVICE PciIdeXFdoStartDevice
NTSTATUS() CHANNEL_ALLOCATE_MEMORY(_In_ PVOID ChannelContext)
CHANNEL_LOAD_TASK_FILE PataLoadTaskFile
DRIVER_UNLOAD PciIdeXUnload
VOID() CHANNEL_ENABLE_INTERRUPTS(_In_ PVOID ChannelContext, _In_ BOOLEAN Enable)
CHANNEL_SAVE_TASK_FILE * PCHANNEL_SAVE_TASK_FILE
CONTROLLER_FREE_RESOURCES * PCONTROLLER_FREE_RESOURCES
CHANNEL_PREPARE_IO AtaAhciPrepareIo
NTSTATUS CmdGetControllerProperties(_Inout_ PATA_CONTROLLER Controller)
KDEFERRED_ROUTINE PataPollingTimerDpc
_In_ ULONG _In_ PCI_SLOT_NUMBER PciSlot
struct _CHANNEL_INFO_AHCI CHANNEL_INFO_AHCI
CHANNEL_START_IO PataStartIo
VOID() CHANNEL_FREE_MEMORY(_In_ PVOID ChannelContext)
VOID AtaSelectTimings(_In_reads_(MAX_IDE_DEVICE) PCHANNEL_DEVICE_CONFIG *DeviceList, _Out_writes_all_(MAX_IDE_DEVICE) PATA_TIMING Timings, _In_range_(>, 0) ULONG ClockPeriodPs, _In_ ULONG Flags)
struct _FDO_DEVICE_EXTENSION * PFDO_DEVICE_EXTENSION
CONTROLLER_CHANNEL_ENABLED * PCONTROLLER_CHANNEL_ENABLED
ULONG AtaAhciChannelGetMaximumDeviceCount(_In_ PVOID ChannelContext)
BOOLEAN AtaAhciDowngradeInterfaceSpeed(_In_ PCHANNEL_DATA_AHCI ChanData)
struct _ATA_PCI_ENABLE_BITS * PATA_PCI_ENABLE_BITS
CONTROLLER_ATTACH_CHANNEL AtaCtrlAttachChannel
NTSTATUS PciIdeParseResources(_In_ PCHANNEL_DATA_PATA ChanData, _In_ PCM_RESOURCE_LIST ResourcesTranslated)
VOID AtaWritePortUlong(_In_ PULONG Port, _In_ ULONG Value, _In_ ULONG MmioFlags)
VOID AtaAhciStopDma(_In_ PCHANNEL_DATA_AHCI ChanData)
DRIVER_INITIALIZE DriverEntry
VOID AtaAhciHandleFatalError(_In_ PCHANNEL_DATA_AHCI ChanData)
CHANNEL_SET_MODE AtaCtrlSetTransferMode
CHANNEL_CHECK_INTERRUPT * PCHANNEL_CHECK_INTERRUPT
CHANNEL_IDENTIFY_DEVICE PataIdentifyDevice
FORCEINLINE VOID PciWrite16(_In_ PATA_CONTROLLER Controller, _In_ ULONG ConfigDataOffset, _In_ USHORT Value)
CHANNEL_ENUMERATE_CHANNEL PataEnumerateChannel
CHANNEL_ALLOCATE_SLOT AtaAhciAllocateSlot
CHANNEL_SET_DEVICE_DATA AtaCtrlSetDeviceData
NTSTATUS PciIdeXPnpRepeatRequest(_In_ PCOMMON_DEVICE_EXTENSION CommonExt, _In_ PIRP Irp, _In_opt_ PDEVICE_CAPABILITIES DeviceCapabilities)
NTSTATUS IntelGetControllerProperties(_Inout_ PATA_CONTROLLER Controller)
CHANNEL_READ_STATUS * PCHANNEL_READ_STATUS
DRIVER_ADD_DEVICE PciIdeXAddDevice
KSERVICE_ROUTINE PciIdeChannelIsr
BOOLEAN PciFindDevice(_In_ __callback PATA_PCI_MATCH_FN MatchFunction, _In_ PVOID Context)
CHANNEL_FREE_MEMORY * PCHANNEL_FREE_MEMORY
struct _CHANNEL_DATA_AHCI CHANNEL_DATA_AHCI
CHANNEL_IDENTIFY_DEVICE AtaAhciIdentifyDevice
struct _PDO_DEVICE_EXTENSION PDO_DEVICE_EXTENSION
FORCEINLINE VOID PciWrite8(_In_ PATA_CONTROLLER Controller, _In_ ULONG ConfigDataOffset, _In_ UCHAR Value)
CHANNEL_SAVE_TASK_FILE PataSaveTaskFile
IDE_CHANNEL_STATE PciIdeGetChannelState(_In_ PATA_CONTROLLER Controller, _In_ ULONG Channel)
struct _ATA_PCI_ENABLE_BITS ATA_PCI_ENABLE_BITS
VOID ViaClampTimings(_Inout_ PATA_TIMING Timing)
CHANNEL_ALLOCATE_MEMORY * PCHANNEL_ALLOCATE_MEMORY
ULONG PataChannelGetMaximumDeviceCount(_In_ PVOID ChannelContext)
NTSTATUS PciIdeXPdoRemoveDevice(_In_ PPDO_DEVICE_EXTENSION PdoExtension, _In_ PIRP Irp, _In_ BOOLEAN FinalRemove)
FORCEINLINE VOID PciWrite32(_In_ PATA_CONTROLLER Controller, _In_ ULONG ConfigDataOffset, _In_ ULONG Value)
struct _PDO_DEVICE_EXTENSION * PPDO_DEVICE_EXTENSION
CONTROLLER_STOP * PCONTROLLER_STOP
FORCEINLINE BOOLEAN IsPowerOfTwo(_In_ ULONG x)
CONTROLLER_ATTACH_CHANNEL_EX PciIdeAttachChannel
CHANNEL_ALLOCATE_SLOT PataAllocateSlot
CHANNEL_ENABLE_INTERRUPTS AtaAhciEnableInterrupts
FORCEINLINE USHORT PciRead16(_In_ PATA_CONTROLLER Controller, _In_ ULONG ConfigDataOffset)
NTSTATUS Sil680GetControllerProperties(_Inout_ PATA_CONTROLLER Controller)
struct _CHANNEL_DATA_PATA CHANNEL_DATA_PATA
KSERVICE_ROUTINE PataChannelIsr
CHANNEL_DOWNGRADE_INTERFACE_SPEED AtaCtrlDowngradeInterfaceSpeed
CHANNEL_SET_MODE_EX SataSetTransferMode
CHANNEL_RESET_CHANNEL PataResetChannel
NTSTATUS PciIdeConnectInterrupt(_In_ PVOID ChannelContext)
CHANNEL_CHECK_INTERRUPT PciIdeCheckInterrupt
VOID PciIdeFreeResources(_In_ PVOID ChannelContext)
CHANNEL_SET_MODE_EX * PCHANNEL_SET_MODE_EX
CHANNEL_READ_STATUS PataReadStatus
DECLSPEC_NOINLINE_FROM_PAGED VOID AtaChanEnableInterruptsSync(_In_ PVOID ChannelContext, _In_ BOOLEAN Enable)
BOOLEAN SvwHasUdmaCable(_In_ PATA_CONTROLLER Controller, _In_ ULONG Channel)
struct _PCIIDEX_DRIVER_EXTENSION PCIIDEX_DRIVER_EXTENSION
NTSTATUS SvwPataGetControllerProperties(_Inout_ PATA_CONTROLLER Controller)
ATA_PCI_MATCH_FN * PATA_PCI_MATCH_FN
struct _PCIIDE_PRD_TABLE_ENTRY * PPCIIDE_PRD_TABLE_ENTRY
VOID AtaReadBlock16(_In_ PUSHORT Port, _In_ PUSHORT Buffer, _In_ ULONG Count, _In_ ULONG MmioFlags)
VOID() CHANNEL_SAVE_TASK_FILE(_In_ PCHANNEL_DATA_PATA ChanData, _Inout_ PATA_DEVICE_REQUEST Request)
IO_COMPLETION_ROUTINE PciIdeXPdoCompletionRoutine
VOID AtaAcpiSetDeviceData(_In_ PDEVICE_OBJECT DeviceObject, _In_ PIDENTIFY_DEVICE_DATA IdBlock)
CHANNEL_WRITE_SCR * PCHANNEL_WRITE_SCR
CHANNEL_ENUMERATE_CHANNEL AtaAhciEnumerateChannel
NTSTATUS ViaGetControllerProperties(_Inout_ PATA_CONTROLLER Controller)
NTSTATUS AmdGetControllerProperties(_Inout_ PATA_CONTROLLER Controller)
PVOID AtaAcpiGetTaskFile(_In_ PDEVICE_OBJECT DeviceObject)
struct _CHANNEL_DATA_COMMON CHANNEL_DATA_COMMON
VOID() CHANNEL_LOAD_TASK_FILE(_In_ PCHANNEL_DATA_PATA ChanData, _In_ PATA_DEVICE_REQUEST Request)
NTSTATUS() CONTROLLER_ATTACH_CHANNEL_EX(_In_ PVOID ChannelContext, _In_ BOOLEAN Attach)
FORCEINLINE ULONG CountSetBits(_In_ ULONG x)
struct _PCIIDEX_DRIVER_EXTENSION * PPCIIDEX_DRIVER_EXTENSION
CHANNEL_ABORT_CHANNEL AtaCtrlAbortChannel
NTSTATUS ToshibaGetControllerProperties(_Inout_ PATA_CONTROLLER Controller)
struct _COMMON_DEVICE_EXTENSION COMMON_DEVICE_EXTENSION
struct _CHANNEL_DATA_PATA * PCHANNEL_DATA_PATA
VOID AtaAhciHandlePortStateChange(_In_ PCHANNEL_DATA_AHCI ChanData, _In_ ULONG InterruptStatus)
CHANNEL_PREPARE_PRD_TABLE AtaAhciPreparePrdTable
VOID AtaWriteBlock16(_In_ PUSHORT Port, _In_ PUSHORT Buffer, _In_ ULONG Count, _In_ ULONG MmioFlags)
NTSYSAPI ULONG InitSafeBootMode
KSERVICE_ROUTINE AtaAhciHbaIsr
CHANNEL_PREPARE_PRD_TABLE PciIdePreparePrdTable
UCHAR() CHANNEL_READ_STATUS(_In_ PCHANNEL_DATA_PATA ChanData)
CHANNEL_START_IO AtaAhciStartIo
CHANNEL_RESET_CHANNEL AtaAhciResetChannel
CONTROLLER_PNP_REMOVE_DEVICE PciIdeXFdoRemoveDevice
VOID AtaReadBlock32(_In_ PULONG Port, _In_ PULONG Buffer, _In_ ULONG Count, _In_ ULONG MmioFlags)
VOID PciIdeDmaStop(_In_ PCHANNEL_DATA_PATA ChanData)
struct _ATA_CONTROLLER ATA_CONTROLLER
CHANNEL_SET_MODE_EX SvwSetTransferMode
NTSTATUS AhciGetControllerProperties(_Inout_ PATA_CONTROLLER Controller)
NTSTATUS PciIdeCreateChannelData(_In_ PATA_CONTROLLER Controller, _In_ ULONG HwExtensionSize)
_In_ ULONG _In_ PCI_SLOT_NUMBER _In_ PPCI_COMMON_HEADER PciConfig
CHANNEL_GET_INIT_TASK_FILE AtaCtrlGetInitTaskFile
VOID AtaAhciSaveTaskFile(_In_ PCHANNEL_DATA_AHCI ChanData, _Inout_ PATA_DEVICE_REQUEST Request, _In_ BOOLEAN ProcessErrorStatus)
CHANNEL_READ_SCR * PCHANNEL_READ_SCR
UCHAR AtaReadPortUchar(_In_ PUCHAR Port, _In_ ULONG MmioFlags)
NTSTATUS AtiGetControllerProperties(_Inout_ PATA_CONTROLLER Controller)
PVOID AtaCtrlPciMapBar(_In_ PATA_CONTROLLER Controller, _In_range_(0, PCI_TYPE0_ADDRESSES) ULONG Index, _In_ ULONG MinimumIoLength)
CHANNEL_LOAD_TASK_FILE * PCHANNEL_LOAD_TASK_FILE
VOID AtaWriteBlock32(_In_ PULONG Port, _In_ PULONG Buffer, _In_ ULONG Count, _In_ ULONG MmioFlags)
struct _ATA_CONTROLLER * PATA_CONTROLLER
NTSTATUS SvwSataGetControllerProperties(_Inout_ PATA_CONTROLLER Controller)
BOOLEAN() CHANNEL_WRITE_SCR(_In_ PCHANNEL_DATA_PATA ChanData, _In_ SATA_SCR_REGISTER Register, _In_ ULONG PortNumber, _In_ ULONG Value)
NTSTATUS PciIdeXPnpQueryPnpDeviceState(_In_ PCOMMON_DEVICE_EXTENSION CommonExt, _In_ PIRP Irp)
struct _COMMON_DEVICE_EXTENSION * PCOMMON_DEVICE_EXTENSION
CONTROLLER_ATTACH_CHANNEL_EX * PCONTROLLER_ATTACH_CHANNEL_EX
FORCEINLINE ULONG PciRead32(_In_ PATA_CONTROLLER Controller, _In_ ULONG ConfigDataOffset)
VOID() CONTROLLER_FREE_RESOURCES(_In_ PATA_CONTROLLER Controller)
struct _CHANNEL_DATA_COMMON * PCHANNEL_DATA_COMMON
IDE_CHANNEL_STATE PciIdeXGetChannelState(_In_ PATA_CONTROLLER Controller, _In_ ULONG Channel)
NTSTATUS PciIdeGetControllerProperties(_Inout_ PATA_CONTROLLER Controller)
VOID PciIdeInitTaskFileIoResources(_In_ PCHANNEL_DATA_PATA ChanData, _In_ ULONG_PTR CommandPortBase, _In_ ULONG_PTR ControlPortBase, _In_ ULONG CommandBlockSpare)
#define DECLSPEC_NOINLINE_FROM_PAGED
NTSTATUS NTAPI PciIdeXDispatchPnp(_In_ PDEVICE_OBJECT DeviceObject, _Inout_ PIRP Irp)
PGET_SET_DEVICE_DATA SetBusData
PCONTROLLER_CHANNEL_ENABLED ChannelEnabledTest
PCONTROLLER_OBJECT HwSyncObject
ULONG AlignmentRequirement
PCONTROLLER_ATTACH_CHANNEL_EX AttachChannel
CM_PARTIAL_RESOURCE_DESCRIPTOR InterruptDesc
struct _ATA_CONTROLLER::@1180 AccessRange[PCI_TYPE0_ADDRESSES]
PVOID BusInterfaceContext
struct _ATA_CONTROLLER::@1179 Pci
const ATA_PCI_ENABLE_BITS * ChannelEnableBits
PGET_SET_DEVICE_DATA GetBusData
PKINTERRUPT InterruptObject
PVOID Channels[MAX_CHANNELS]
PCONTROLLER_FREE_RESOURCES FreeResources
PAHCI_COMMAND_TABLE CommandTable[AHCI_MAX_COMMAND_SLOTS]
UCHAR LastFbsDeviceNumber
PAHCI_COMMAND_LIST CommandList
PAHCI_RECEIVED_FIS ReceivedFis
UCHAR LastPmpDeviceNumber
PCHANNEL_PREPARE_IO PrepareIo
PCHANNEL_SET_MODE_EX SetTransferMode
ULONG TransferModeSupported
PPORT_NOTIFICATION PortNotification
struct _CHANNEL_DATA_COMMON::@1183 Current
PCHANNEL_PREPARE_PRD_TABLE PreparePrdTable
PKINTERRUPT InterruptObject
PCHANNEL_ALLOCATE_MEMORY AllocateMemory
PPDO_DEVICE_EXTENSION PdoExt
ULONG ActiveQueuedSlotsBitmap
ULONG MaximumPhysicalPages
CM_PARTIAL_RESOURCE_DESCRIPTOR InterruptDesc
PATA_CONTROLLER Controller
PATA_DEVICE_REQUEST * Slots
ULONG MaximumTransferLength
PCHANNEL_FREE_MEMORY FreeMemory
PCHANNEL_ENABLE_INTERRUPTS EnableInterrupts
PCHANNEL_START_IO StartIo
PCHANNEL_CHECK_INTERRUPT CheckInterrupt
PCHANNEL_READ_STATUS ReadStatus
ULONG PrdTablePhysicalAddress
IDE_ACPI_TIMING_MODE_BLOCK CurrentTimingMode
PUCHAR HwExt[ANYSIZE_ARRAY]
PPCIIDE_PRD_TABLE_ENTRY PrdTable
PCHANNEL_SAVE_TASK_FILE SaveTaskFile
PCHANNEL_LOAD_TASK_FILE LoadTaskFile
PCHANNEL_WRITE_SCR ScrWrite
PCHANNEL_READ_SCR ScrRead
PVOID CommandListOriginal
PHYSICAL_ADDRESS CommandListPhysOriginal
ULONG CommandTableSize[AHCI_MAX_COMMAND_SLOTS]
PVOID ReceivedFisOriginal
PHYSICAL_ADDRESS ReceivedFisPhysOriginal
PHYSICAL_ADDRESS CommandTablePhysOriginal[AHCI_MAX_COMMAND_SLOTS]
PVOID CommandTableOriginal[AHCI_MAX_COMMAND_SLOTS]
_Write_guarded_by_(_Global_interlock_) volatile LONG PageFiles
_Write_guarded_by_(_Global_interlock_) volatile LONG DumpFiles
PDEVICE_OBJECT LowerDeviceObject
_Write_guarded_by_(_Global_interlock_) volatile LONG HibernateFiles
IO_REMOVE_LOCK RemoveLock
IDE_CONTROLLER_PROPERTIES Properties
FAST_MUTEX PdoListSyncMutex
COMMON_DEVICE_EXTENSION Common
PDRIVER_OBJECT DriverObject
ATA_CONTROLLER Controller
PUCHAR MiniControllerExtension[0]
_Guarded_by_(PdoListSyncMutex) LIST_ENTRY PdoListHead
ULONG MiniControllerExtensionSize
PCONTROLLER_PROPERTIES HwGetControllerProperties
COMMON_DEVICE_EXTENSION Common
PCHANNEL_DATA_COMMON ChanData
_In_ WDFCOLLECTION _In_ ULONG Index
_In_ PDEVICE_OBJECT DeviceObject
_In_ WDFCMRESLIST _In_ WDFCMRESLIST ResourcesTranslated
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
_Must_inspect_result_ _In_ ULONG Flags
GET_SET_DEVICE_DATA * PGET_SET_DEVICE_DATA
#define PCI_TYPE0_ADDRESSES
DRIVER_DISPATCH DRIVER_DISPATCH_RAISED
#define IRP_MJ_SYSTEM_CONTROL