3 * COPYRIGHT: See COPYING in the top level directory
4 * PROJECT: ReactOS VT100 emulator
5 * FILE: drivers/dd/green/misc.c
6 * PURPOSE: Misceallenous operations
8 * PROGRAMMERS: Hervé Poussineau (hpoussin@reactos.com)
16 IN PDEVICE_OBJECT DeviceObject
,
18 IN PVOID InputBuffer OPTIONAL
,
19 IN ULONG InputBufferSize
,
20 IN OUT PVOID OutputBuffer OPTIONAL
,
21 IN OUT PULONG OutputBufferSize
)
25 IO_STATUS_BLOCK IoStatus
;
28 KeInitializeEvent (&Event
, NotificationEvent
, FALSE
);
30 Irp
= IoBuildDeviceIoControlRequest(CtlCode
,
35 (OutputBufferSize
) ? *OutputBufferSize
: 0,
41 DPRINT("Green: IoBuildDeviceIoControlRequest() failed\n");
42 return STATUS_INSUFFICIENT_RESOURCES
;
45 Status
= IoCallDriver(DeviceObject
, Irp
);
47 if (Status
== STATUS_PENDING
)
49 DPRINT("Green: Operation pending\n");
50 KeWaitForSingleObject(&Event
, Suspended
, KernelMode
, FALSE
, NULL
);
51 Status
= IoStatus
.Status
;
56 *OutputBufferSize
= IoStatus
.Information
;