Dependency check on XP pciede.sys, pciidex.sys, atapi.sys to NTKERN.VXD
pciide.sys - depends only on pciidex.sys
pciidex.sys - depends on ntoskrnl.exe and hal.dll
ntoskrnl
IoBuildSynchronousFsdRequest - present in NTKERN.VXD
KeInitializeEvent - present in NTKERN.VXD
IoDeleteDevice - present in NTKERN.VXD
IoDetachDevice - present in NTKERN.VXD
IoAttachDeviceToDeviceStack - present in NTKERN.VXD
IoCreateDevice - present in NTKERN.VXD
swprintf - present in NTKERN.VXD
IofCompleteRequest - present in NTKERN.VXD
ObReferenceObjectByPointer - present in NTKERN.VXD
KeInitializeSpinLock - present in NTKERN.VXD
KeQueryTimeIncrement - present in NTKERN.VXD
KeTickCount - NOT present in NTKERN.VXD
IoGetConfigurationInformation - present in NTKERN.VXD
_aulldiv - present in NTKERN.VXD
_allmul - present in NTKERN.VXD
IoConnectInterrupt - present in NTKERN.VXD
IoDisconnectInterrupt - present in NTKERN.VXD
IoInvalidateDeviceState - present in NTKERN.VXD
MmUnmapIoSpace - present in NTKERN.VXD
wcslen - present in NTKERN.VXD
RtlAnsiStringToUnicodeString - present in NTKERN.VXD
RtlInitAnsiString - present in NTKERN.VXD
RtlFindMessage - NOT present in NTKERN.VXD
KeWaitForSingleObject - present in NTKERN.VXD
IoGetAttachedDeviceReference - present in NTKERN.VXD
memmove - present in NTKERN.VXD
IoInvalidateDeviceRelations - present in NTKERN.VXD
ObReferenceObjectByHandle - present in NTKERN.VXD
ZwClose - present in NTKERN.VXD
ZwCreateDirectoryObject - present in NTKERN.VXD
PoCallDriver - present in NTKERN.VXD
PoStartNextPowerIrp - present in NTKERN.VXD
IoFreeIrp - present in NTKERN.VXD
RtlQueryRegistryValues - present in NTKERN.VXD
IoOpenDeviceRegistryKey - present in NTKERN.VXD
IoAllocateDriverObjectExtension - present in NTKERN.VXD
IoAllocateIrp - present in NTKERN.VXD
IoGetDmaAdapter - present in NTKERN.VXD
MmGetPhysicalAddress - present in NTKERN.VXD
IoDeleteController - NOT present in NTKERN.VXD
IoAllocateController - NOT present in NTKERN.VXD
IoFreeController - NOT present in NTKERN.VXD
IoCreateController - NOT present in NTKERN.VXD
PoRequestPowerIrp - present in NTKERN.VXD
PoSetPowerState - present in NTKERN.VXD
KeBugCheckEx - present in NTKERN.VXD
IoGetDriverObjectExtension - present in NTKERN.VXD
RtlInitUnicodeString - present in NTKERN.VXD
RtlUnicodeStringToInteger - present in NTKERN.VXD
ExAllocatePoolWithTag - present in NTKERN.VXD
ExFreePoolWithTag - present in NTKERN.VXD
MmMapIoSpace - present in NTKERN.VXD
HalDispatchTable - NOT present in NTKERN.VXD
IofCallDriver - present in NTKERN.VXD
ObfDereferenceObject - present in NTKERN.VXD
KeSetEvent - present in NTKERN.VXD
hal
WRITE_PORT_ULONG - present in NTKERN.VXD
KfRaiseIrql - NOT present in NTKERN.VXD
KfLowerIrql - NOT present in NTKERN.VXD
KeStallExecutionProcessor - present in NTKERN.VXD
KfAcquireSpinLock - present in NTKERN.VXD
KfReleaseSpinLock - present in NTKERN.VXD
READ_PORT_UCHAR - present in NTKERN.VXD
WRITE_PORT_UCHAR - present in NTKERN.VXD
HalAllocateCrashDumpRegisters - NOT present in NTKERN.VXD
atapi.sys
ntoskrnl
RtlInitUnicodeString - present in NTKERN.VXD
swprintf - present in NTKERN.VXD
KeSetEvent - present in NTKERN.VXD
IoCreateSymbolicLink - present in NTKERN.VXD
IoGetConfigurationInformation - present in NTKERN.VXD
IoDeleteSymbolicLink - present in NTKERN.VXD
MmFreeMappingAddress - NOT present in NTKERN.VXD
IoFreeErrorLogEntry - NOT present in NTKERN.VXD
IoDisconnectInterrupt - present in NTKERN.VXD
MmUnmapIoSpace - present in NTKERN.VXD
ObReferenceObjectByPointer - present in NTKERN.VXD
IofCompleteRequest - present in NTKERN.VXD
RtlCompareUnicodeString - present in NTKERN.VXD
IofCallDriver - present in NTKERN.VXD
MmAllocateMappingAddress - NOT present in NTKERN.VXD
IoAllocateErrorLogEntry - present in NTKERN.VXD
IoConnectInterrupt - present in NTKERN.VXD
IoDetachDevice - present in NTKERN.VXD
KeWaitForSingleObject - present in NTKERN.VXD
KeInitializeEvent - present in NTKERN.VXD
KeCancelTimer - NOT present in NTKERN.VXD
RtlAnsiStringToUnicodeString - present in NTKERN.VXD
RtlInitAnsiString - present in NTKERN.VXD
IoBuildDeviceIoControlRequest - present in NTKERN.VXD
IoQueueWorkItem - NOT present in NTKERN.VXD
MmMapIoSpace - present in NTKERN.VXD
IoInvalidateDeviceRelations - present in NTKERN.VXD
IoReportDetectedDevice - NOT present in NTKERN.VXD
IoReportResourceForDetection - NOT present in NTKERN.VXD
RtlxAnsiStringToUnicodeSize - present in NTKERN.VXD
NlsMbCodePageTag - present in NTKERN.VXD
PoRequestPowerIrp - present in NTKERN.VXD
KeInsertByKeyDeviceQueue - present in NTKERN.VXD
PoRegisterDeviceForIdleDetection - present in NTKERN.VXD
sprintf - present in NTKERN.VXD
MmMapLockedPagesSpecifyCache - NOT present in NTKERN.VXD
ObfDereferenceObject - present in NTKERN.VXD
IoGetAttachedDeviceReference - present in NTKERN.VXD
IoInvalidateDeviceState - present in NTKERN.VXD
ZwClose - present in NTKERN.VXD
ObReferenceObjectByHandle - present in NTKERN.VXD
ZwCreateDirectoryObject - present in NTKERN.VXD
IoBuildSynchronousFsdRequest - present in NTKERN.VXD
PoStartNextPowerIrp - present in NTKERN.VXD
IoCreateDevice - present in NTKERN.VXD
RtlCopyUnicodeString - present in NTKERN.VXD
IoAllocateDriverObjectExtension - present in NTKERN.VXD
RtlQueryRegistryValues - present in NTKERN.VXD
ZwOpenKey - present in NTKERN.VXD
RtlFreeUnicodeString - present in NTKERN.VXD
IoStartTimer - present in NTKERN.VXD
KeInitializeTimer - NOT present in NTKERN.VXD
IoInitializeTimer - present in NTKERN.VXD
KeInitializeDpc - NOT present in NTKERN.VXD
KeInitializeSpinLock - present in NTKERN.VXD
IoInitializeIrp - present in NTKERN.VXD
ZwCreateKey - present in NTKERN.VXD
RtlAppendUnicodeStringToString - present in NTKERN.VXD
RtlIntegerToUnicodeString - present in NTKERN.VXD
ZwSetValueKey - present in NTKERN.VXD
KeInsertQueueDpc - NOT present in NTKERN.VXD
KefAcquireSpinLockAtDpcLevel - present in NTKERN.VXD
IoStartPacket - present in NTKERN.VXD
KefReleaseSpinLockFromDpcLevel - present in NTKERN.VXD
IoBuildAsynchronousFsdRequest - present in NTKERN.VXD
IoFreeMdl - present in NTKERN.VXD
MmUnlockPages - present in NTKERN.VXD
IoWriteErrorLogEntry - present in NTKERN.VXD
KeRemoveByKeyDeviceQueue - present in NTKERN.VXD
MmMapLockedPagesWithReservedMapping - NOT present in NTKERN.VXD
MmUnmapReservedMapping - NOT present in NTKERN.VXD
KeSynchronizeExecution - present in NTKERN.VXD
IoStartNextPacket - present in NTKERN.VXD
KeBugCheckEx - present in NTKERN.VXD
KeRemoveDeviceQueue - present in NTKERN.VXD
KeSetTimer - present in NTKERN.VXD
_allmul - present in NTKERN.VXD
MmProbeAndLockPages - present in NTKERN.VXD
_except_handler3 - present in NTKERN.VXD
PoSetPowerState - present in NTKERN.VXD
IoOpenDeviceRegistryKey - present in NTKERN.VXD
RtlWriteRegistryValue - present in NTKERN.VXD
RtlDeleteRegistryValue - present in NTKERN.VXD
_aulldiv - present in NTKERN.VXD
strstr - present in NTKERN.VXD
_strupr - present in NTKERN.VXD
KeQuerySystemTime - NOT present in NTKERN.VXD
IoWMIRegistrationControl - present in NTKERN.VXD
KeTickCount - NOT present in NTKERN.VXD
IoAttachDeviceToDeviceStack - present in NTKERN.VXD
IoDeleteDevice - present in NTKERN.VXD
ExAllocatePoolWithTag - present in NTKERN.VXD
IoAllocateWorkItem - NOT present in NTKERN.VXD
IoAllocateIrp - present in NTKERN.VXD
IoAllocateMdl - present in NTKERN.VXD
MmBuildMdlForNonPagedPool - present in NTKERN.VXD
MmLockPagableDataSection - NOT present in NTKERN.VXD
IoGetDriverObjectExtension - present in NTKERN.VXD
MmUnlockPagableImageSection - NOT present in NTKERN.VXD
ExFreePoolWithTag - present in NTKERN.VXD
IoFreeIrp - present in NTKERN.VXD
IoFreeWorkItem - NOT present in NTKERN.VXD
InitSafeBootMode - NOT present in NTKERN.VXD
RtlCompareMemory - present in NTKERN.VXD
PoCallDriver - present in NTKERN.VXD
memmove - present in NTKERN.VXD
MmHighestUserAddress - NOT present in NTKERN.VXD
hal
KfAcquireSpinLock - present in NTKERN.VXD
READ_PORT_UCHAR - present in NTKERN.VXD
KeGetCurrentIrql - present in NTKERN.VXD
KfRaiseIrql - NOT present in NTKERN.VXD
KfLowerIrql - NOT present in NTKERN.VXD
HalGetInterruptVector - present in NTKERN.VXD
HalTranslateBusAddress - present in NTKERN.VXD
KeStallExecutionProcessor - present in NTKERN.VXD
KfReleaseSpinLock - present in NTKERN.VXD
READ_PORT_BUFFER_USHORT - present in NTKERN.VXD
READ_PORT_USHORT - present in NTKERN.VXD
WRITE_PORT_BUFFER_USHORT - present in NTKERN.VXD
WRITE_PORT_UCHAR - present in NTKERN.VXD
wmilib - wmilib.sys is present on windows 98 and it's dependencies are met.
So I think 30 functions in total missing for XP IDE driver -
KeTickCount
RtlFindMessage
IoDeleteController
IoAllocateController
IoFreeController
IoCreateController
HalDispatchTable
KfRaiseIrql
KfLowerIrql
HalAllocateCrashDumpRegisters
MmFreeMappingAddress
IoFreeErrorLogEntry
MmAllocateMappingAddress
KeCancelTimer
IoQueueWorkItem
IoReportDetectedDevice
IoReportResourceForDetection
MmMapLockedPagesSpecifyCache
KeInitializeTimer
KeInitializeDpc
KeInsertQueueDpc
MmMapLockedPagesWithReservedMapping
MmUnmapReservedMapping
KeQuerySystemTime
IoAllocateWorkItem
MmLockPagableDataSection
MmUnlockPagableImageSection
IoFreeWorkItem
InitSafeBootMode
MmHighestUserAddress
MB: ASRock B550 Steel Legend
CPU: Ryzen 9 5950X
RAM: Corsair 64GB Kit (4x16GB) DDR4 Veng LPX C18 4000MHz
SSDs: 2x Crucial MX500 1TB SATA + 1x Samsung 980 (non-pro) 1TB NVMe SSD
OSs: Win 11 Pro (NVMe) + WinXP Pro SP3 (SATA)
GPU: RTX2070 (11) GT730 (XP)