Dmitry Borisov
76ec8411a4
[ISAPNP] Fix parsing of complex resource data
...
- Properly handle the case when the dependent function is placed
after fixed resources
- Initialize the version and revision fields of resource lists
- Improve validation of resource data
- Add more debug prints
CORE-18562
2024-08-03 17:08:43 +06:00
Dmitry Borisov
4ba8a8b59b
[ISAPNP] Allocate the Read Port resources on demand
...
This will simplify failure paths and reduce memory usage
2024-08-03 17:08:42 +06:00
Hervé Poussineau
3a32d5980c
[ISAPNP] Generate hardware ids and compatible ids in upper case
2022-09-23 23:07:45 +02:00
Dmitry Borisov
adac7dc2e5
[ISAPNP] Implement device configuration
2021-06-20 19:24:32 +06:00
Dmitry Borisov
e318d22940
[ISAPNP] Disable I/O range check before activation
...
See Table A-2 of "Plug and Play ISA Specification 1.0a"
2021-06-20 19:24:31 +06:00
Dmitry Borisov
367f4b1581
[ISAPNP] Map configuration states to PnP states
...
Rework the hardware support code to avoid unneeded transitions
between configuration states.
- Only call WaitForKey when needed.
- Each PnP state transition causes the bus to move to WaitForKey state.
Besides, deactivate logical device during processing remove request.
2021-06-20 19:24:31 +06:00
Dmitry Borisov
b29a3ac524
[ISAPNP] Read all resources when detecting devices
2021-06-20 19:24:31 +06:00
Dmitry Borisov
ca42de9c31
[ISAPNP] Rewrite the tag parser
...
- Support all resource descriptors.
- Optimize card identification.
- Detect cards that is no longer present on the bus.
- Deactivate cards after the identification phase; they will be activated
by start device IRP.
- Provide a device description and compatible IDs to the device manager.
- Prevent duplicate IDs across multiple logical devices.
- Suppress warning about the usage of literals in port addresses.
2021-06-20 19:24:31 +06:00
Dmitry Borisov
c4b6330b14
[ISAPNP] Implement the Read Port resource management
...
Currently disabled until the kernel is ready
2021-06-20 19:24:31 +06:00
Dmitry Borisov
f15de15554
[ISAPNP] Fixes and improvements for IRP handling
...
- Implement device removal.
- Finish the Read Port special handling
introduced in 21514e473f
.
- Gracefully handle low memory situations.
- Implement IRQ translator.
- Correctly stub power IRP handling.
- Remove unneeded dispatch routines; implement WMI IRP handling.
- Do not handle requests like WRITE_CONFIG.
- Add a signature member to device extensions to make checks clearer.
2021-06-20 19:24:26 +06:00
Dmitry Borisov
e19595572a
[ISAPNP] Implement querying bus information
2021-06-20 19:24:25 +06:00
Dmitry Borisov
2d367001bd
[ISAPNP] Fix device capabilities
...
- The bus does not supply an address.
- Read Port ID is always unique.
This reverts commit fc0a0b9f84
.
See also commit 21514e473f
.
CORE-17034
2021-06-20 19:24:19 +06:00
Dmitry Borisov
c92bec609b
[ISAPNP] Refactor string handling
...
- Don't allocate string buffers twice.
2021-06-20 19:22:32 +06:00
Dmitry Borisov
70ba96f164
[ISAPNP] Make the driver pageable
2021-06-20 19:22:31 +06:00
Dmitry Borisov
66c195755c
[ISAPNP] Use pool tagging
2021-06-20 19:22:31 +06:00
Dmitry Borisov
8f44930f91
[ISAPNP] Code formatting
...
- Add SAL2 annotations.
- Use RTL_NUMBER_OF macro in kernel mode.
- Use better function/member names.
- Less hardcoded values.
- Add license information. See commit
d9face83c6
for details.
No functional changes.
2021-06-20 19:22:31 +06:00
Hervé Poussineau
e246b9947e
[ISAPNP] Mark read data port as started, even if no ISAPNP card is present
...
CORE-17056
2020-05-16 23:20:38 +02:00
Mark Jansen
da777baa3d
[ISAPNP] Initialize uninitialized variable
...
Return value was a suggestion from Thomas,
it still boots for me (tm)
2020-05-16 14:03:04 +02:00
Hervé Poussineau
fc0a0b9f84
[ISAPNP] Mark Read Data Port as not having a unique ID
...
This fixes a bugcheck in ntoskrnl.exe when computer has multiple ISA buses.
CORE-17034
2020-05-09 16:54:46 +02:00
Hervé Poussineau
eb66324d7c
[ISAPNP] Fix reporting of devices with hexadecimal productId
2020-03-26 16:36:22 +01:00
Hervé Poussineau
0ca5567894
[ISAPNP] Read all tags when detecting devices, and keep interesting ones
...
Currently, we only keep device identification, IO ports and IRQs.
2020-03-22 14:29:38 +01:00
Hervé Poussineau
61c1079a18
[ISAPNP] Create resource list ahead of IRP_MN_QUERY_RESOURCES
2020-03-22 14:29:38 +01:00
Hervé Poussineau
debec8c96e
[ISAPNP] Create resource requirements ahead of IRP_MN_QUERY_RESOURCE_REQUIREMENTS
2020-03-22 14:29:38 +01:00
Hervé Poussineau
1dcc6f8b94
[ISAPNP] Fix capabilities for devices
2020-03-22 14:29:38 +01:00
Hervé Poussineau
42724f47f8
[ISAPNP] Return a compatibleIDs only if defined
2020-03-22 14:29:38 +01:00
Hervé Poussineau
b905c40d2e
[ISAPNP] Fix some indentation
2020-03-22 14:29:38 +01:00
Hervé Poussineau
7b1e28e724
[ISAPNP] Fix some warnings
2020-03-21 08:29:15 +01:00
Hervé Poussineau
2abd853b37
[ISAPNP] Implement some more IRP_MJ_PNP/IRP_MN_* requests
...
We either succeed them, or we pass them down to the ISAPNP FDO.
2020-03-20 22:40:11 +01:00
Hervé Poussineau
8b53ed1d9b
[ISAPNP] Implement IRP_MN_QUERY_PNP_DEVICE_STATE for ReadDataPort
2020-03-20 22:40:11 +01:00
Hervé Poussineau
5b9929a076
[ISAPNP] Detect devices only once ReadDataPort is started
...
Also let kernel choose the read data port address, by using the resources given in IRP_MN_START_DEVICE.
2020-03-20 22:40:11 +01:00
Hervé Poussineau
5a404e6c50
[ISAPNP] Implement IRP_MN_QUERY_RESOURCES/IRP_MN_QUERY_RESOURCE_REQUIREMENTS for ReadDataPort
2020-03-20 22:40:11 +01:00
Hervé Poussineau
2fe644dc86
[ISAPNP] Report removal relations on ReadDataPort
2020-03-20 22:40:11 +01:00
Hervé Poussineau
c4813f73f5
[ISAPNP] Report a ReadDataPort PDO
...
This PDO will later request resources required for ISAPNP bus.
2020-03-20 22:40:11 +01:00
Hervé Poussineau
e0607fcebf
[ISAPNP] Create PDO identifiers ahead of IRP_MN_QUERY_ID
2020-03-20 22:40:11 +01:00
Hervé Poussineau
d0c7bd98c7
[ISAPNP] Fix some return codes
2020-03-20 22:40:11 +01:00
Hervé Poussineau
947b49aac3
[ISAPNP] Reformat files. No code change.
2020-03-20 22:40:11 +01:00
Hervé Poussineau
7a98d28d7f
[ISAPNP] Rewrite device reporting method
...
IoCreateDevice() was called too early, when a spinlock was acquired.
Create ISAPNP_LOGICAL_DEVICE structure when a device is detected, and call IoCreateDevice() later, when required.
2020-03-14 23:39:01 +01:00
Hervé Poussineau
58e8be6258
[ISAPNP] Fix reading of serial number
2020-03-14 23:39:00 +01:00
Hervé Poussineau
4788676671
[ISAPNP] Implement IRP_MN_QUERY_CAPABILITIES + IRP_MN_QUERY_ID
2020-02-10 21:33:36 +01:00
Colin Finck
c2c66aff7d
Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys.
2017-10-03 07:45:34 +00:00