filter driver to wmiacpi.sys

When using WMI to access BIOS variables it goes thru WMI ACPI mapper driver (wmiacpi.sys & acpi.sys) by default. But on a UEFI aware windows, I want the WMI to make use of EFI Runtime services (GetFirmwareEnvironmentVariable) instead of ACPI ASL code as I can add some extra logic in EFI runtime services.

So can I implement a filter driver on top of wmiacpi.sys to handle some IRPs (call GetFirmwareEnvironmentVariable) and route others down the stack (to wmiacpi.sys/acpi.sys).

From what I read (I am new to windows driver development), a filter driver will have to implement all IRPs (even if just forwarding them to lower level drivers). So how do I get the list of all IRPs in wmiacpi.sys.

Thank you!!!

What existing WMI-oriented behavior do you expect to filter? If you don’t
have an answer to that question, it would be far easier to write a driver
that just exposes the interface you want, perhaps through WMI, perhaps
through some other path.

The harder part will be getting EFI Runtime services working. Windows
doesn’t use it.

Jake Oshins
Hyper-V I/O Architect
Windows Kernel Group

This post implies no warranties and confers no rights.


wrote in message news:xxxxx@ntdev…

When using WMI to access BIOS variables it goes thru WMI ACPI mapper driver
(wmiacpi.sys & acpi.sys) by default. But on a UEFI aware windows, I want the
WMI to make use of EFI Runtime services (GetFirmwareEnvironmentVariable)
instead of ACPI ASL code as I can add some extra logic in EFI runtime
services.

So can I implement a filter driver on top of wmiacpi.sys to handle some IRPs
(call GetFirmwareEnvironmentVariable) and route others down the stack (to
wmiacpi.sys/acpi.sys).

From what I read (I am new to windows driver development), a filter driver
will have to implement all IRPs (even if just forwarding them to lower level
drivers). So how do I get the list of all IRPs in wmiacpi.sys.

Thank you!!!

Hi Jake,

So can I write a new driver (not a filter driver) that calls EFI Runtime services and then registers as a data provider to WMI? If yes, any such examples out there? or can you please outline the steps involved?

Thank you,
Kiran

You can write a new driver that registers as a data provider for WMI, that’s
for sure.

What’s not at all clear to me is whether you’ll be successful at
instantiating EFI Runtime services. It certainly has nothing to do with
ACPI, so filtering anything related to ACPI is pointlessly complicated.

Jake Oshins
Windows Kernel Group

This post implies no warranties and confers no rights.


wrote in message news:xxxxx@ntdev…

Hi Jake,

So can I write a new driver (not a filter driver) that calls EFI Runtime
services and then registers as a data provider to WMI? If yes, any such
examples out there? or can you please outline the steps involved?

Thank you,
Kiran