229 if ((
i > 0) && (--
i == 0))
246 if ((
i > 0) && (--
i == 0))
354 ERR_(VIDEOPRT,
"IntVideoPortCreateAdapterDeviceObject() failed with status 0x%lx\n",
Status);
377 TRACE_(VIDEOPRT,
"IntVideoPortDispatchOpen\n");
385 INFO_(VIDEOPRT,
"Referencing CSRSS\n");
393 ERR_(VIDEOPRT,
"IntInitializeVideoAddressSpace() failed: 0x%lx\n",
Status);
440 TRACE_(VIDEOPRT,
"IntVideoPortDispatchClose\n");
455 return "IOCTL_VIDEO_ENABLE_VDM";
457 return "IOCTL_VIDEO_DISABLE_VDM";
459 return "IOCTL_VIDEO_REGISTER_VDM";
461 return "IOCTL_VIDEO_SET_OUTPUT_DEVICE_POWER_STATE";
463 return "IOCTL_VIDEO_GET_OUTPUT_DEVICE_POWER_STATE";
465 return "IOCTL_VIDEO_MONITOR_DEVICE";
467 return "IOCTL_VIDEO_ENUM_MONITOR_PDO";
469 return "IOCTL_VIDEO_INIT_WIN32K_CALLBACKS";
471 return "IOCTL_VIDEO_HANDLE_VIDEOPARAMETERS";
473 return "IOCTL_VIDEO_IS_VGA_DEVICE";
475 return "IOCTL_VIDEO_USE_DEVICE_IN_SESSION";
477 return "IOCTL_VIDEO_PREPARE_FOR_EARECOVERY";
479 return "IOCTL_VIDEO_SAVE_HARDWARE_STATE";
481 return "IOCTL_VIDEO_RESTORE_HARDWARE_STATE";
483 return "IOCTL_VIDEO_QUERY_AVAIL_MODES";
485 return "IOCTL_VIDEO_QUERY_NUM_AVAIL_MODES";
487 return "IOCTL_VIDEO_QUERY_CURRENT_MODE";
489 return "IOCTL_VIDEO_SET_CURRENT_MODE";
491 return "IOCTL_VIDEO_RESET_DEVICE";
493 return "IOCTL_VIDEO_LOAD_AND_SET_FONT";
495 return "IOCTL_VIDEO_SET_PALETTE_REGISTERS";
497 return "IOCTL_VIDEO_SET_COLOR_REGISTERS";
499 return "IOCTL_VIDEO_ENABLE_CURSOR";
501 return "IOCTL_VIDEO_DISABLE_CURSOR";
503 return "IOCTL_VIDEO_SET_CURSOR_ATTR";
505 return "IOCTL_VIDEO_QUERY_CURSOR_ATTR";
507 return "IOCTL_VIDEO_SET_CURSOR_POSITION";
509 return "IOCTL_VIDEO_QUERY_CURSOR_POSITION";
511 return "IOCTL_VIDEO_ENABLE_POINTER";
513 return "IOCTL_VIDEO_DISABLE_POINTER";
515 return "IOCTL_VIDEO_SET_POINTER_ATTR";
517 return "IOCTL_VIDEO_QUERY_POINTER_ATTR";
519 return "IOCTL_VIDEO_SET_POINTER_POSITION";
521 return "IOCTL_VIDEO_QUERY_POINTER_POSITION";
523 return "IOCTL_VIDEO_QUERY_POINTER_CAPABILITIES";
525 return "IOCTL_VIDEO_GET_BANK_SELECT_CODE";
527 return "IOCTL_VIDEO_MAP_VIDEO_MEMORY";
529 return "IOCTL_VIDEO_UNMAP_VIDEO_MEMORY";
531 return "IOCTL_VIDEO_QUERY_PUBLIC_ACCESS_RANGES";
533 return "IOCTL_VIDEO_FREE_PUBLIC_ACCESS_RANGES";
535 return "IOCTL_VIDEO_QUERY_COLOR_CAPABILITIES";
537 return "IOCTL_VIDEO_SET_POWER_MANAGEMENT";
539 return "IOCTL_VIDEO_GET_POWER_MANAGEMENT";
541 return "IOCTL_VIDEO_SHARE_VIDEO_MEMORY";
543 return "IOCTL_VIDEO_UNSHARE_VIDEO_MEMORY";
545 return "IOCTL_VIDEO_SET_COLOR_LUT_DATA";
547 return "IOCTL_VIDEO_GET_CHILD_STATE";
549 return "IOCTL_VIDEO_VALIDATE_CHILD_STATE_CONFIGURATION";
551 return "IOCTL_VIDEO_SET_CHILD_STATE_CONFIGURATION";
553 return "IOCTL_VIDEO_SWITCH_DUALVIEW";
555 return "IOCTL_VIDEO_SET_BANK_POSITION";
557 return "IOCTL_VIDEO_QUERY_SUPPORTED_BRIGHTNESS";
559 return "IOCTL_VIDEO_QUERY_DISPLAY_BRIGHTNESS";
561 return "IOCTL_VIDEO_SET_DISPLAY_BRIGHTNESS";
564 return "<unknown ioctl code>";
581 ERR_(VIDEOPRT,
"Buffer too small for VIDEO_DEVICE_SESSION_STATUS: %lx\n",
590 if (SessionState->bEnable)
597 SessionState->bSuccess =
TRUE;
601 ERR_(VIDEOPRT,
"Requested to set session, but session is already set to: 0x%lx\n",
603 SessionState->bSuccess =
FALSE;
613 SessionState->bSuccess =
TRUE;
617 ERR_(VIDEOPRT,
"Requested to reset session, but session is not set\n");
618 SessionState->bSuccess =
FALSE;
638 ERR_(VIDEOPRT,
"Buffer too small for VIDEO_WIN32K_CALLBACKS: %lx\n",
647 Win32kCallbacks->bACPI =
FALSE;
649 Win32kCallbacks->DualviewFlags = 0;
665 TRACE_(VIDEOPRT,
"VideoPortForwardDeviceControl\n");
687 INFO_(VIDEOPRT,
"- Returned status: %x\n",
Irp->IoStatus.Status);
690 switch (
Irp->IoStatus.Status)
731 TRACE_(VIDEOPRT,
"IntVideoPortDispatchDeviceControl\n");
770 WARN_(VIDEOPRT,
"- IOCTL_VIDEO_*_VDM are UNIMPLEMENTED!\n");
776 WARN_(VIDEOPRT,
"- IOCTL_VIDEO_GET/SET_OUTPUT_DEVICE_POWER_STATE are UNIMPLEMENTED!\n");
782 WARN_(VIDEOPRT,
"- IOCTL_VIDEO_GET/SET_POWER_MANAGEMENT are UNIMPLEMENTED!\n");
789 WARN_(VIDEOPRT,
"- IOCTL_VIDEO_*_BRIGHTNESS are UNIMPLEMENTED!\n");
794 WARN_(VIDEOPRT,
"- IOCTL_VIDEO_ENUM_MONITOR_PDO is UNIMPLEMENTED!\n");
799 INFO_(VIDEOPRT,
"- IOCTL_VIDEO_INIT_WIN32K_CALLBACKS\n");
801 Irp->AssociatedIrp.SystemBuffer,
802 IrpStack->
Parameters.DeviceIoControl.InputBufferLength,
803 &
Irp->IoStatus.Information);
807 WARN_(VIDEOPRT,
"- IOCTL_VIDEO_IS_VGA_DEVICE is UNIMPLEMENTED!\n");
812 INFO_(VIDEOPRT,
"- IOCTL_VIDEO_USE_DEVICE_IN_SESSION\n");
814 Irp->AssociatedIrp.SystemBuffer,
815 IrpStack->
Parameters.DeviceIoControl.InputBufferLength,
816 &
Irp->IoStatus.Information);
820 INFO_(VIDEOPRT,
"- IOCTL_VIDEO_PREPARE_FOR_EARECOVERY\n");
841 INFO_(VIDEOPRT,
"- Returned status: 0x%x\n",
Status);
872 ULONG ResourceListSize;
892 INFO_(VIDEOPRT,
"InterfaceType %u BusNumber List %u Device BusNumber %u Version %u Revision %u\n",
916 INFO_(VIDEOPRT,
"Interrupt level: 0x%x Interrupt Vector: 0x%x\n",
936 if (
Irp->PendingReturned)
956 WARN_(VIDEOPRT,
"Skipping child enumeration because device is not opened");
970 CurrentEntry = CurrentEntry->
Flink;
974 return Irp->IoStatus.Status;
980 DeviceRelations->
Count =
i;
993 CurrentEntry = CurrentEntry->
Flink;
996 INFO_(VIDEOPRT,
"Reported %d PDOs\n",
i);
1049 Irp->IoStatus.Information = 0;
1086 Irp->IoStatus.Information = 0;
1094 Irp->IoStatus.Information = 0;
1115 if (CommonExtension->
Fdo)
1133 Irp->IoStatus.Information = 0;
#define KeGetCurrentIrql()
NTSTATUS NTAPI IntVideoPortFindAdapter(IN PDRIVER_OBJECT DriverObject, IN PVIDEO_PORT_DRIVER_EXTENSION DriverExtension, IN PDEVICE_OBJECT DeviceObject)
#define IOCTL_VIDEO_QUERY_COLOR_CAPABILITIES
#define ERROR_INVALID_PARAMETER
#define IRP_MN_CANCEL_REMOVE_DEVICE
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
#define STATUS_DEVICE_DOES_NOT_EXIST
#define IOCTL_VIDEO_IS_VGA_DEVICE
NTSTATUS NTAPI IntVideoPortDispatchPdoPnp(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
static NTSTATUS VideoPortUseDeviceInSession(_Inout_ PDEVICE_OBJECT DeviceObject, _Inout_ PVIDEO_DEVICE_SESSION_STATUS SessionState, _In_ ULONG BufferLength, _Out_ PULONG_PTR Information)
NTSTATUS NTAPI IntVideoPortDispatchPower(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
#define IOCTL_VIDEO_QUERY_POINTER_POSITION
#define IRP_MN_REMOVE_DEVICE
#define STATUS_INSUFFICIENT_RESOURCES
#define IOCTL_VIDEO_QUERY_POINTER_ATTR
#define IOCTL_VIDEO_SET_POINTER_ATTR
_Must_inspect_result_ _In_ WDFIORESLIST _In_ PIO_RESOURCE_DESCRIPTOR Descriptor
#define IOCTL_VIDEO_UNSHARE_VIDEO_MEMORY
static BOOLEAN InbvMonitoring
#define IOCTL_VIDEO_REGISTER_VDM
VIDEO_WIN32K_CALLBACKS_PARAMS_TYPE CalloutType
static VOID NTAPI InbvMonitorThread(_In_ PVOID Context)
#define IRP_MN_QUERY_POWER
NTSTATUS NTAPI IntVideoPortDispatchFdoPnp(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
#define IOCTL_VIDEO_QUERY_POINTER_CAPABILITIES
#define STATUS_MORE_PROCESSING_REQUIRED
VIDEO_PORT_DRIVER_EXTENSION * DriverExtension
#define ERROR_INVALID_FUNCTION
_Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PCM_RESOURCE_LIST * AllocatedResources
#define STATUS_INVALID_PARAMETER
#define IRP_MN_FILTER_RESOURCE_REQUIREMENTS
struct _LIST_ENTRY * Blink
struct _STATUS_BLOCK * PSTATUS_BLOCK
NTSTATUS NTAPI IntVideoPortDispatchCleanup(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
PDEVICE_OBJECT Objects[1]
#define IOCTL_VIDEO_DISABLE_CURSOR
struct _VIDEO_DEVICE_SESSION_STATUS VIDEO_DEVICE_SESSION_STATUS
VOID NTAPI KeAcquireSpinLockAtDpcLevel(IN PKSPIN_LOCK SpinLock)
#define IOCTL_VIDEO_SET_COLOR_LUT_DATA
struct _VIDEO_PORT_DEVICE_EXTENSTION * PVIDEO_PORT_DEVICE_EXTENSION
#define IOCTL_VIDEO_ENABLE_VDM
#define IOCTL_VIDEO_SET_CHILD_STATE_CONFIGURATION
#define IOCTL_VIDEO_GET_POWER_MANAGEMENT
NTSTATUS NTAPI IntVideoPortForwardIrpAndWaitCompletionRoutine(PDEVICE_OBJECT Fdo, PIRP Irp, PVOID Context)
#define InterlockedCompareExchange
#define ERROR_NOT_ENOUGH_MEMORY
PCM_RESOURCE_LIST AllocatedResources
#define IOCTL_VIDEO_HANDLE_VIDEOPARAMETERS
#define IOCTL_VIDEO_RESET_DEVICE
#define LOW_REALTIME_PRIORITY
#define IOCTL_VIDEO_MAP_VIDEO_MEMORY
NTSTATUS NTAPI IntVideoPortEnumerateChildren(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
VOID(NTAPI * PVIDEO_WIN32K_CALLOUT)(_In_ PVOID Params)
#define IOCTL_VIDEO_GET_OUTPUT_DEVICE_POWER_STATE
VOID NTAPI InbvNotifyDisplayOwnershipLost(_In_ INBV_RESET_DISPLAY_PARAMETERS Callback)
PDEVICE_OBJECT PhysicalDeviceObject
NTSTATUS NTAPI IntVideoPortDispatchDeviceControl(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
LONG NTAPI KeSetEvent(IN PKEVENT Event, IN KPRIORITY Increment, IN BOOLEAN Wait)
PSTR IoctlName(ULONG Ioctl)
#define IOCTL_VIDEO_GET_BANK_SELECT_CODE
#define IOCTL_VIDEO_DISABLE_POINTER
NTSTATUS NTAPI KeWaitForSingleObject(IN PVOID Object, IN KWAIT_REASON WaitReason, IN KPROCESSOR_MODE WaitMode, IN BOOLEAN Alertable, IN PLARGE_INTEGER Timeout OPTIONAL)
#define OBJ_KERNEL_HANDLE
#define IOCTL_VIDEO_FREE_PUBLIC_ACCESS_RANGES
_In_ WDFREQUEST _In_ NTSTATUS _In_ ULONG_PTR Information
_Must_inspect_result_ FORCEINLINE BOOLEAN IsListEmpty(_In_ const LIST_ENTRY *ListHead)
#define IOCTL_VIDEO_ENUM_MONITOR_PDO
#define STATUS_BUFFER_TOO_SMALL
#define IOCTL_VIDEO_QUERY_CURRENT_MODE
#define IoSetCompletionRoutine(_Irp, _CompletionRoutine, _Context, _InvokeOnSuccess, _InvokeOnError, _InvokeOnCancel)
#define IOCTL_VIDEO_SET_CURRENT_MODE
_Must_inspect_result_ __in WDFIOTARGET __in_opt WDFREQUEST __in ULONG Ioctl
LIST_ENTRY HwResetListEntry
_In_ WDFREQUEST _In_ PIO_STACK_LOCATION Stack
FORCEINLINE VOID IoCopyCurrentIrpStackLocationToNext(_Inout_ PIRP Irp)
CM_PARTIAL_RESOURCE_LIST PartialResourceList
static BOOLEAN NTAPI IntVideoPortResetDisplayParameters(ULONG Columns, ULONG Rows)
static NTSTATUS IntVideoPortInbvCleanup(IN PDEVICE_OBJECT DeviceObject)
_In_ PDEVICE_OBJECT DeviceObject
return STATUS_NOT_IMPLEMENTED
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
#define IOCTL_VIDEO_MONITOR_DEVICE
#define IOCTL_VIDEO_INIT_WIN32K_CALLBACKS
#define IRP_MN_QUERY_REMOVE_DEVICE
PDEVICE_OBJECT PhysicalDeviceObject
#define IOCTL_VIDEO_SET_PALETTE_REGISTERS
NTSTATUS NTAPI KeDelayExecutionThread(IN KPROCESSOR_MODE WaitMode, IN BOOLEAN Alertable, IN PLARGE_INTEGER Interval OPTIONAL)
VOID NTAPI IntVideoPortUnload(PDRIVER_OBJECT DriverObject)
_In_ PVOID _In_ ULONG Event
#define PsGetCurrentProcess
#define IOCTL_VIDEO_SET_CURSOR_POSITION
static BOOLEAN NTAPI IntVideoPortResetDisplayParametersEx(_In_ ULONG Columns, _In_ ULONG Rows, _In_ BOOLEAN CalledByInbv)
#define IoCompleteRequest
KSPIN_LOCK HwResetAdaptersLock
#define IOCTL_VIDEO_QUERY_CURSOR_ATTR
NTSTATUS NTAPI IntInitializeVideoAddressSpace(VOID)
static NTSTATUS VideoPortInitWin32kCallbacks(_In_ PDEVICE_OBJECT DeviceObject, _Inout_ PVIDEO_WIN32K_CALLBACKS Win32kCallbacks, _In_ ULONG BufferLength, _Out_ PULONG_PTR Information)
NTSTATUS NTAPI IntVideoPortDispatchClose(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
static NTSTATUS IntVideoPortInbvInitialize(VOID)
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
NTSTATUS NTAPI IntVideoPortCreateAdapterDeviceObject(_In_ PDRIVER_OBJECT DriverObject, _In_ PVIDEO_PORT_DRIVER_EXTENSION DriverExtension, _In_opt_ PDEVICE_OBJECT PhysicalDeviceObject, _In_ USHORT AdapterNumber, _In_ USHORT DisplayNumber, _Out_opt_ PDEVICE_OBJECT *DeviceObject)
#define IOCTL_VIDEO_SET_POWER_MANAGEMENT
#define IOCTL_VIDEO_SET_CURSOR_ATTR
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
#define IOCTL_VIDEO_UNMAP_VIDEO_MEMORY
BOOLEAN FASTCALL KeTestSpinLock(IN PKSPIN_LOCK SpinLock)
#define IOCTL_VIDEO_ENABLE_CURSOR
#define IRP_MN_QUERY_STOP_DEVICE
#define IOCTL_VIDEO_QUERY_CURSOR_POSITION
#define IOCTL_VIDEO_SWITCH_DUALVIEW
struct _LIST_ENTRY * Flink
ULONG NTAPI PsGetCurrentProcessSessionId(VOID)
#define IRP_MN_SURPRISE_REMOVAL
#define InterlockedExchangePointer(Target, Value)
static HANDLE InbvThreadHandle
#define IRP_MN_STOP_DEVICE
#define NT_SUCCESS(StatCode)
#define EXCEPTION_EXECUTE_HANDLER
VOID NTAPI KeReleaseSpinLockFromDpcLevel(IN PKSPIN_LOCK SpinLock)
#define IRP_MN_START_DEVICE
#define ObDereferenceObject
NTSTATUS NTAPI IntVideoPortDispatchSystemControl(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
#define IOCTL_VIDEO_PREPARE_FOR_EARECOVERY
LIST_ENTRY ChildDeviceList
struct _VIDEO_WIN32K_CALLBACKS VIDEO_WIN32K_CALLBACKS
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
CHAR POINTER_ALIGNMENT MiniPortDeviceExtension[1]
#define STATUS_UNSUCCESSFUL
_Must_inspect_result_ _In_ WDFDEVICE Fdo
#define IO_VIDEO_INCREMENT
static ULONG ResourceCount
VOID NTAPI KeDetachProcess(VOID)
#define IOCTL_VIDEO_SET_DISPLAY_BRIGHTNESS
NTSTATUS NTAPI ObCloseHandle(IN HANDLE Handle, IN KPROCESSOR_MODE AccessMode)
CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1]
#define IOCTL_VIDEO_QUERY_SUPPORTED_BRIGHTNESS
#define InterlockedDecrement
#define IOCTL_VIDEO_LOAD_AND_SET_FONT
NTSTATUS NTAPI IntVideoPortAddDevice(IN PDRIVER_OBJECT DriverObject, IN PDEVICE_OBJECT PhysicalDeviceObject)
_Requires_lock_held_ Interrupt _Releases_lock_ Interrupt _In_ _IRQL_restores_ KIRQL OldIrql
#define IOCTL_VIDEO_DISABLE_VDM
#define ExAllocatePool(type, size)
_Must_inspect_result_ _In_ WDFCMRESLIST List
PVOID NTAPI IoGetDriverObjectExtension(IN PDRIVER_OBJECT DriverObject, IN PVOID ClientIdentificationAddress)
_In_ WDFREQUEST _In_ size_t _In_ size_t _In_ ULONG IoControlCode
PDEVICE_OBJECT NextDeviceObject
#define IOCTL_VIDEO_QUERY_NUM_AVAIL_MODES
#define IOCTL_VIDEO_QUERY_AVAIL_MODES
#define IOCTL_VIDEO_SHARE_VIDEO_MEMORY
INTERFACE_TYPE InterfaceType
__drv_aliasesMem FORCEINLINE PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(_In_ PIRP Irp)
#define RTL_CONSTANT_OBJECT_ATTRIBUTES(n, a)
static const COLUMN_LIST Columns[]
NTSTATUS NTAPI IntVideoPortForwardIrpAndWait(PDEVICE_OBJECT DeviceObject, PIRP Irp)
#define KeInitializeEvent(pEvt, foo, foo2)
#define IOCTL_VIDEO_VALIDATE_CHILD_STATE_CONFIGURATION
#define InterlockedIncrement
#define STATUS_BUFFER_OVERFLOW
VOID NTAPI PoStartNextPowerIrp(IN PIRP Irp)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
KPRIORITY NTAPI KeSetPriorityThread(IN PKTHREAD Thread, IN KPRIORITY Priority)
struct _KPROCESS * PKPROCESS
VOID NTAPI KeAttachProcess(IN PKPROCESS Process)
_In_ PIO_STACK_LOCATION IrpSp
NTSTATUS NTAPI PsCreateSystemThread(OUT PHANDLE ThreadHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, IN HANDLE ProcessHandle, IN PCLIENT_ID ClientId, IN PKSTART_ROUTINE StartRoutine, IN PVOID StartContext)
NTSTATUS NTAPI IntVideoPortPnPStartDevice(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
PSTATUS_BLOCK StatusBlock
#define FIELD_OFFSET(t, f)
static VOID VideoPortWin32kCallout(_In_ PVIDEO_WIN32K_CALLBACKS_PARAMS CallbackParams)
NTSTATUS NTAPI IoCallDriver(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
#define IRP_MN_QUERY_DEVICE_RELATIONS
VOID NTAPI KeRaiseIrql(KIRQL NewIrql, PKIRQL OldIrql)
#define IoSkipCurrentIrpStackLocation(Irp)
#define CmResourceTypeInterrupt
VIDEO_PORT_COMMON_EXTENSION Common
#define IOCTL_VIDEO_GET_CHILD_STATE
NTSTATUS NTAPI IntVideoPortDispatchPnp(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
#define IOCTL_VIDEO_ENABLE_POINTER
#define IOCTL_VIDEO_QUERY_PUBLIC_ACCESS_RANGES
struct tagContext Context
#define ObReferenceObject
NTSTATUS NTAPI IntVideoPortDispatchOpen(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
#define IOCTL_VIDEO_QUERY_DISPLAY_BRIGHTNESS
NTSTATUS NTAPI IntVideoPortQueryBusRelations(PDEVICE_OBJECT DeviceObject, PIRP Irp)
PDEVICE_OBJECT PhysicalDeviceObject
PPCI_DRIVER_EXTENSION DriverExtension
#define RtlCopyMemory(Destination, Source, Length)
LIST_ENTRY HwResetAdaptersList
UNICODE_STRING RegistryPath
#define _SEH2_EXCEPT(...)
static NTSTATUS VideoPortForwardDeviceControl(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
#define IRP_MN_CANCEL_STOP_DEVICE
#define _SEH2_YIELD(__stmt)
BOOLEAN NTAPI InbvCheckDisplayOwnership(VOID)
#define KeGetCurrentThread
VOID NTAPI KeLowerIrql(KIRQL NewIrql)
struct _NAMED_PIPE_CREATE_PARAMETERS * Parameters
#define IOCTL_VIDEO_RESTORE_HARDWARE_STATE
NTSTATUS NTAPI IntVideoPortFilterResourceRequirements(IN PDEVICE_OBJECT DeviceObject, IN PIO_STACK_LOCATION IrpStack, IN PIRP Irp)
#define IOCTL_VIDEO_USE_DEVICE_IN_SESSION
static PVIDEO_WIN32K_CALLOUT Win32kCallout
#define ERROR_DEV_NOT_EXIST
base of all file and directory entries
#define IOCTL_VIDEO_SAVE_HARDWARE_STATE
VPAPI VP_STATUS NTAPI VideoPortEnumerateChildren(IN PVOID HwDeviceExtension, IN PVOID Reserved)
#define IOCTL_VIDEO_SET_OUTPUT_DEVICE_POWER_STATE
#define IOCTL_VIDEO_SET_POINTER_POSITION
#define IOCTL_VIDEO_SET_COLOR_REGISTERS
#define IOCTL_VIDEO_SET_BANK_POSITION
#define IRP_MJ_DEVICE_CONTROL
#define ERROR_INSUFFICIENT_BUFFER