2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS VT100 emulator
4 * FILE: drivers/dd/green/misc.c
5 * PURPOSE: Misceallenous operations
7 * PROGRAMMERS: Hervé Poussineau (hpoussin@reactos.org)
17 IN PDEVICE_OBJECT DeviceObject
,
19 IN PVOID InputBuffer OPTIONAL
,
20 IN ULONG InputBufferSize
,
21 IN OUT PVOID OutputBuffer OPTIONAL
,
22 IN OUT PULONG OutputBufferSize
)
26 IO_STATUS_BLOCK IoStatus
;
29 KeInitializeEvent (&Event
, NotificationEvent
, FALSE
);
31 Irp
= IoBuildDeviceIoControlRequest(CtlCode
,
36 (OutputBufferSize
) ? *OutputBufferSize
: 0,
42 DPRINT("Green: IoBuildDeviceIoControlRequest() failed\n");
43 return STATUS_INSUFFICIENT_RESOURCES
;
46 Status
= IoCallDriver(DeviceObject
, Irp
);
48 if (Status
== STATUS_PENDING
)
50 DPRINT("Green: Operation pending\n");
51 KeWaitForSingleObject(&Event
, Suspended
, KernelMode
, FALSE
, NULL
);
52 Status
= IoStatus
.Status
;
57 *OutputBufferSize
= IoStatus
.Information
;