Hi Tim,
In the following link:
download.microsoft.com/download/.../ACPIDriver_Vista.doc
I found the following structure:
typedef struct {
//
// Generic interface header
//
USHORT Size;
USHORT Version;
PVOID Context;
PINTERFACE_REFERENCE InterfaceReference;
PINTERFACE_DEREFERENCE InterfaceDereference;
//
// ACPI interfaces
//
PGPE_CONNECT_VECTOR2 GpeConnectVector;
PGPE_DISCONNECT_VECTOR2 GpeDisconnectVector;
PGPE_ENABLE_EVENT2 GpeEnableEvent;
PGPE_DISABLE_EVENT2 GpeDisableEvent;
PGPE_CLEAR_STATUS2 GpeClearStatus;
PREGISTER_FOR_DEVICE_NOTIFICATIONS2 RegisterForDeviceNotifications;
PUNREGISTER_FOR_DEVICE_NOTIFICATIONS2
UnregisterForDeviceNotifications;
} ACPI_INTERFACE_STANDARD2, *PACPI_INTERFACE_STANDARD2;
Is this the structure I should get by calling to: “WdfFdoQueryForInterface
for GUID_ACPI_INTERFACE_STANDARD” ?
In your reply you wrote:
Your ACPI BIOS has to put the “vector number” somewhere in the ACPI DSDT
for your device. You have to call an ACPI method to fetch that “vector
number,” so you know what to register. That in itself is tricky enough.
What is the ACPI method I should call to fetch that “vector number” ?
Best regards,
Z.V
-----Original Message-----
From: Tim Roberts
Sent: Wednesday, December 31, 2014 7:28 PM
To: Windows System Software Devs Interest List
Subject: Re: [ntdev] WDF: Installing ISR for IRQ 9
Zvi Vered wrote:
Thank you for the detailed information.
The mechanism you described is very complicated.
Yes, it is. As with most driver tasks, when you go to drive a piece of
hardware, you are expected to be a “subject matter expert” in that
hardware. Windows is not an experimental microprocessor system – it’s
kernel does genuine resource management, so that resources are owned by
one particular component. Any request to use that component has to go
through the owner.
In this case, the GPIOs are not simply available for everyone to use.
They are owned by the BIOS, and the gateway to the BIOS is the ACPI
driver. So, you have to work with the BIOS developers, and you have to
follow the ACPI driver’s rules.
Do you have an account on Intel’s developer support forums? Since you
are accessing a resource that is exposed by Intel’s chipset, you should
go ask them about it. It is POSSIBLE that they have already created an
API layer to allow access to these pins, or perhaps have a chunk of
sample code you can use.
Do you have a sample code ?
The work I did was on a contract to Intel, so I’m not free to release
it. I suspect the Intel forums are your best plan for now.
It seems Microsoft / Intel does not want users to access ACPI.
I’m not sure why the interface is not documented. I suppose no one has
taken the time to write the documentation.
–
Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.
NTDEV is sponsored by OSR
Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev
OSR is HIRING!! See http://www.osr.com/careers
For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars
To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer