Problem to access ACPIEC in Vista

Hi folks,

I want to read/write EC RAM by a user mode program.

In Windows XP,
I can use generic ReadFile/WriteFile to my device driver and forward the IRP to ACPIEC. (as below)

RtlInitUnicodeString(&DeviceName, L"\Device\ACPIEC");
ntStatus = IoGetDeviceObjectPointer(
&DeviceName,
FILE_ALL_ACCESS,
&pFileObject,
&pDeviceObject);
ntStatus = IoCallDriver(pDeviceObject, Irp);

Or simply, just create a Symbolic Link to \Device\ACPIEC and ReadFile/WriteFile to it directly.
There is no problem in XP.

But in Vista,
there is no “\Device\ACPIEC” device under \Driver\ACPIEC.

Is there any way to access EC RAM in Vista.

Thanks in advance.

Jerry

I’m pretty sure that this behavior was changed inadvertently. I’m also
pretty sure that the original design never intended to expose this as widely
as it did.

In either case, contace Allen Marshall at Microsoft (xxxxx@microsoft.com)
for an official position on this.

  • Jake Oshins
    Windows Kernel Team

wrote in message news:xxxxx@ntdev…
> Hi folks,
>
> I want to read/write EC RAM by a user mode program.
>
> In Windows XP,
> I can use generic ReadFile/WriteFile to my device driver and forward the
> IRP to ACPIEC. (as below)
>
> RtlInitUnicodeString(&DeviceName, L"\Device\ACPIEC");
> ntStatus = IoGetDeviceObjectPointer(
> &DeviceName,
> FILE_ALL_ACCESS,
> &pFileObject,
> &pDeviceObject);
> ntStatus = IoCallDriver(pDeviceObject, Irp);
>
> Or simply, just create a Symbolic Link to \Device\ACPIEC and
> ReadFile/WriteFile to it directly.
> There is no problem in XP.
>
> But in Vista,
> there is no “\Device\ACPIEC” device under \Driver\ACPIEC.
>
> Is there any way to access EC RAM in Vista.
>
>
> Thanks in advance.
>
> Jerry
>
>
>