2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS kernel
4 * PURPOSE: GDI Driver Device Functions
5 * FILE: subsys/win32k/eng/device.c
6 * PROGRAMER: Jason Filby
11 #include <ddk/ntddk.h>
17 EngDeviceIoControl(HANDLE hDevice,
18 DWORD dwIoControlCode,
23 DWORD *lpBytesReturned)
29 PFILE_OBJECT FileObject;
31 DPRINT("EngDeviceIoControl() called\n");
33 KeInitializeEvent(&Event, SynchronizationEvent, FALSE);
35 Status = ObReferenceObjectByHandle(hDevice,
36 FILE_READ_DATA | FILE_WRITE_DATA,
41 if (!NT_SUCCESS(Status))
46 Irp = IoBuildDeviceIoControlRequest(dwIoControlCode,
47 FileObject->DeviceObject,
51 nOutBufferSize, FALSE, &Event, &Iosb);
53 Status = IoCallDriver(FileObject->DeviceObject, Irp);
55 if (Status == STATUS_PENDING)
57 (void) KeWaitForSingleObject(&Event, Executive, KernelMode, TRUE, 0);