36 USHORT Manufacturer, Model;
39 ASSERT(ChildExtension->EdidValid);
43 Manufacturer = ((
USHORT)ChildExtension->ChildDescriptor[8] << 8) +
44 (
USHORT)ChildExtension->ChildDescriptor[9];
47 Model = ((
USHORT)ChildExtension->ChildDescriptor[11] << 8) +
48 (
USHORT)ChildExtension->ChildDescriptor[10];
53 (
WCHAR)((Manufacturer >> 10 & 0x001F) +
'A' - 1),
54 (
WCHAR)((Manufacturer >> 5 & 0x001F) +
'A' - 1),
55 (
WCHAR)((Manufacturer & 0x001F) +
'A' - 1),
85 if (!ChildExtension->EdidValid)
107 PUCHAR MonitorDescription;
112 *pMonitorDescription = (
PCHAR)MonitorDescription;
128 switch (ChildExtension->ChildType)
131 if (ChildExtension->EdidValid)
133 StaticBuffer =
L"DISPLAY\\";
146 StaticBuffer =
L"DISPLAY\\Default_Monitor";
169 switch (ChildExtension->ChildType)
172 if (ChildExtension->EdidValid)
174 StaticBuffer =
L"MONITOR\\";
190 StaticBuffer =
L"MONITOR\\Default_Monitor";
207 switch (ChildExtension->ChildType)
210 if (ChildExtension->EdidValid)
212 StaticBuffer =
L"*PNP09FF";
223 return Irp->IoStatus.Status;
232 return Irp->IoStatus.Status;
252 return Irp->IoStatus.Status;
254 switch (ChildExtension->ChildType)
285 INFO_(VIDEOPRT,
"Reporting description: %S\n", StringU.
Buffer);
301 WARN_(VIDEOPRT,
"Unsupported device relations type\n");
302 return Irp->IoStatus.Status;
308 DeviceRelations->
Count = 1;
309 DeviceRelations->
Objects[0] = ChildExtension->PhysicalDeviceObject;
328 DeviceCaps->LockSupported =
FALSE;
329 DeviceCaps->EjectSupported =
FALSE;
330 DeviceCaps->DockDevice =
FALSE;
331 DeviceCaps->UniqueID =
FALSE;
332 DeviceCaps->RawDeviceOK =
FALSE;
333 DeviceCaps->WakeFromD0 =
FALSE;
334 DeviceCaps->WakeFromD1 =
FALSE;
335 DeviceCaps->WakeFromD2 =
FALSE;
336 DeviceCaps->WakeFromD3 =
FALSE;
337 DeviceCaps->HardwareDisabled =
FALSE;
338 DeviceCaps->NoDisplayInUI =
FALSE;
352 DeviceCaps->DeviceD1 =
FALSE;
353 DeviceCaps->DeviceD2 =
FALSE;
354 DeviceCaps->D1Latency = 0;
355 DeviceCaps->D2Latency = 0;
356 DeviceCaps->D3Latency = 0;
358 switch (ChildExtension->ChildType)
370 DeviceCaps->SilentInstall =
TRUE;
371 DeviceCaps->Removable =
TRUE;
372 DeviceCaps->SurpriseRemovalOK =
TRUE;
376 DeviceCaps->SilentInstall =
FALSE;
377 DeviceCaps->Removable =
FALSE;
378 DeviceCaps->SurpriseRemovalOK =
FALSE;
static PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(PIRP Irp)
NTSTATUS NTAPI IntVideoPortChildQueryId(IN PVIDEO_PORT_CHILD_EXTENSION ChildExtension, IN PIRP Irp, IN PIO_STACK_LOCATION IrpSp)
BOOLEAN NTAPI IntVideoPortGetMonitorId(IN PVIDEO_PORT_CHILD_EXTENSION ChildExtension, IN OUT PWCHAR Buffer)
BOOLEAN NTAPI IntVideoPortSearchDescriptor(IN PUCHAR Descriptor, IN UCHAR DescriptorID, OUT PUCHAR *pDescriptorData)
NTSTATUS NTAPI IntVideoPortChildQueryRelations(IN PVIDEO_PORT_CHILD_EXTENSION ChildExtension, IN PIRP Irp, IN PIO_STACK_LOCATION IrpSp)
NTSTATUS NTAPI IntVideoPortChildQueryCapabilities(IN PVIDEO_PORT_CHILD_EXTENSION ChildExtension, IN PIRP Irp, IN PIO_STACK_LOCATION IrpSp)
NTSTATUS NTAPI IntVideoPortDispatchPdoPnp(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
BOOLEAN NTAPI IntVideoPortSearchDescriptors(IN PVIDEO_PORT_CHILD_EXTENSION ChildExtension, IN UCHAR DescriptorID, OUT PUCHAR *pDescriptorData)
NTSTATUS NTAPI IntVideoPortChildQueryText(IN PVIDEO_PORT_CHILD_EXTENSION ChildExtension, IN PIRP Irp, IN PIO_STACK_LOCATION IrpSp)
BOOLEAN NTAPI IntVideoPortGetMonitorDescription(IN PVIDEO_PORT_CHILD_EXTENSION ChildExtension, OUT PCHAR *pMonitorDescription)
#define NT_SUCCESS(StatCode)
_In_ PIO_STACK_LOCATION IrpSp
#define ExAllocatePool(type, size)
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
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
NTSYSAPI NTSTATUS NTAPI RtlAnsiStringToUnicodeString(PUNICODE_STRING DestinationString, PANSI_STRING SourceString, BOOLEAN AllocateDestinationString)
NTSYSAPI NTSTATUS NTAPI RtlIntegerToUnicodeString(ULONG Value, ULONG Base, PUNICODE_STRING String)
NTSYSAPI VOID NTAPI RtlInitAnsiString(PANSI_STRING DestinationString, PCSZ SourceString)
#define IRP_MN_SURPRISE_REMOVAL
VOID NTAPI IoDeleteDevice(IN PDEVICE_OBJECT DeviceObject)
#define IoCompleteRequest
#define POWER_SYSTEM_MAXIMUM
PDEVICE_OBJECT Objects[1]
struct _IO_STACK_LOCATION::@3974::@4001 DeviceCapabilities
struct _IO_STACK_LOCATION::@3974::@4005 QueryId
struct _IO_STACK_LOCATION::@3974::@4006 QueryDeviceText
struct _IO_STACK_LOCATION::@3974::@3999 QueryDeviceRelations
union _IO_STACK_LOCATION::@1575 Parameters
#define RtlCopyMemory(Destination, Source, Length)
_In_ PDEVICE_OBJECT DeviceObject
_Must_inspect_result_ _In_ WDFIORESLIST _In_ PIO_RESOURCE_DESCRIPTOR Descriptor
#define IRP_MN_START_DEVICE
#define IRP_MN_QUERY_RESOURCE_REQUIREMENTS
#define IRP_MN_REMOVE_DEVICE
#define IRP_MN_QUERY_DEVICE_RELATIONS
#define IRP_MN_QUERY_DEVICE_TEXT
#define IRP_MN_QUERY_CAPABILITIES
#define IRP_MN_QUERY_RESOURCES
#define IRP_MN_STOP_DEVICE
#define IRP_MN_QUERY_REMOVE_DEVICE
#define ObReferenceObject