From: Elizabeth Figura zfigura@codeweavers.com
Needed by the FTDI USB D2XX driver. --- dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 2 +- dlls/ntoskrnl.exe/pnp.c | 11 +++++++++++ include/ddk/wdm.h | 3 +++ 3 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec index 3b29e0b9e12..eb85130ae1a 100644 --- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec +++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec @@ -880,7 +880,7 @@ @ stub PoRegisterDeviceForIdleDetection @ stub PoRegisterDeviceNotify @ stub PoRegisterSystemState -@ stub PoRequestPowerIrp +@ stdcall PoRequestPowerIrp(ptr long long ptr ptr ptr) @ stub PoRequestShutdownEvent @ stub PoSetHiberRange @ stdcall PoSetPowerState(ptr long long) diff --git a/dlls/ntoskrnl.exe/pnp.c b/dlls/ntoskrnl.exe/pnp.c index db8285824da..f887bfc619d 100644 --- a/dlls/ntoskrnl.exe/pnp.c +++ b/dlls/ntoskrnl.exe/pnp.c @@ -1085,6 +1085,17 @@ NTSTATUS WINAPI IoOpenDeviceRegistryKey( DEVICE_OBJECT *device, ULONG type, ACCE return STATUS_SUCCESS; }
+/*********************************************************************** + * PoRequestPowerIrp (NTOSKRNL.EXE.@) + */ +NTSTATUS WINAPI PoRequestPowerIrp( DEVICE_OBJECT *device, UCHAR minor, + POWER_STATE state, PREQUEST_POWER_COMPLETE complete_cb, void *ctx, IRP **irp ) +{ + FIXME("device %p, minor %#x, state %u, complete_cb %p, ctx %p, irp %p, stub!\n", + device, minor, state.DeviceState, complete_cb, ctx, irp); + return STATUS_NOT_IMPLEMENTED; +} + /*********************************************************************** * PoSetPowerState (NTOSKRNL.EXE.@) */ diff --git a/include/ddk/wdm.h b/include/ddk/wdm.h index d33ee248ee8..2ea6a81d432 100644 --- a/include/ddk/wdm.h +++ b/include/ddk/wdm.h @@ -1703,6 +1703,8 @@ typedef enum _MODE #define SYMBOLIC_LINK_QUERY 0x0001 #define SYMBOLIC_LINK_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0x1)
+typedef void (WINAPI *PREQUEST_POWER_COMPLETE)(DEVICE_OBJECT *device, UCHAR minor, POWER_STATE state, void *ctx, IO_STATUS_BLOCK *iosb); + #ifndef WINE_UNIX_LIB
NTSTATUS WINAPI DbgQueryDebugFilterState(ULONG, ULONG); @@ -1872,6 +1874,7 @@ NTSTATUS WINAPI ObReferenceObjectByPointer(void*,ACCESS_MASK,POBJECT_TYPE,KPROC void WINAPI ObUnRegisterCallbacks(void*);
NTSTATUS WINAPI PoCallDriver(DEVICE_OBJECT*,IRP*); +NTSTATUS WINAPI PoRequestPowerIrp(DEVICE_OBJECT *device, UCHAR minor, POWER_STATE state, PREQUEST_POWER_COMPLETE complete_cb, void *ctx, IRP **irp); POWER_STATE WINAPI PoSetPowerState(PDEVICE_OBJECT,POWER_STATE_TYPE,POWER_STATE); void WINAPI PoStartNextPowerIrp(IRP*);