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;
130 switch (ChildExtension->ChildType)
133 if (ChildExtension->EdidValid)
135 StaticBuffer =
L"DISPLAY\\";
148 StaticBuffer =
L"DISPLAY\\Default_Monitor";
171 switch (ChildExtension->ChildType)
174 if (ChildExtension->EdidValid)
176 StaticBuffer =
L"MONITOR\\";
192 StaticBuffer =
L"MONITOR\\Default_Monitor";
212 ChildExtension->EdidValid ?
L"EDID" :
L"BAD_EDID",
214 ChildExtension->ChildDescriptor,
215 sizeof(ChildExtension->ChildDescriptor));
225 switch (ChildExtension->ChildType)
228 if (ChildExtension->EdidValid)
230 StaticBuffer =
L"*PNP09FF";
241 return Irp->IoStatus.Status;
250 return Irp->IoStatus.Status;
270 return Irp->IoStatus.Status;
272 switch (ChildExtension->ChildType)
303 INFO_(VIDEOPRT,
"Reporting description: %S\n", StringU.
Buffer);
319 WARN_(VIDEOPRT,
"Unsupported device relations type\n");
320 return Irp->IoStatus.Status;
326 DeviceRelations->
Count = 1;
327 DeviceRelations->
Objects[0] = ChildExtension->PhysicalDeviceObject;
346 DeviceCaps->LockSupported =
FALSE;
347 DeviceCaps->EjectSupported =
FALSE;
348 DeviceCaps->DockDevice =
FALSE;
349 DeviceCaps->UniqueID =
FALSE;
350 DeviceCaps->RawDeviceOK =
FALSE;
351 DeviceCaps->WakeFromD0 =
FALSE;
352 DeviceCaps->WakeFromD1 =
FALSE;
353 DeviceCaps->WakeFromD2 =
FALSE;
354 DeviceCaps->WakeFromD3 =
FALSE;
355 DeviceCaps->HardwareDisabled =
FALSE;
356 DeviceCaps->NoDisplayInUI =
FALSE;
370 DeviceCaps->DeviceD1 =
FALSE;
371 DeviceCaps->DeviceD2 =
FALSE;
372 DeviceCaps->D1Latency = 0;
373 DeviceCaps->D2Latency = 0;
374 DeviceCaps->D3Latency = 0;
376 switch (ChildExtension->ChildType)
388 DeviceCaps->SilentInstall =
TRUE;
389 DeviceCaps->Removable =
TRUE;
390 DeviceCaps->SurpriseRemovalOK =
TRUE;
394 DeviceCaps->SilentInstall =
FALSE;
395 DeviceCaps->Removable =
FALSE;
396 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 WINAPI RtlWriteRegistryValue(ULONG, PCWSTR, PCWSTR, ULONG, PVOID, ULONG)
NTSYSAPI NTSTATUS NTAPI ZwClose(_In_ HANDLE Handle)
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 RTL_REGISTRY_HANDLE
#define IRP_MN_SURPRISE_REMOVAL
VOID NTAPI IoDeleteDevice(IN PDEVICE_OBJECT DeviceObject)
#define IoCompleteRequest
#define POWER_SYSTEM_MAXIMUM
NTSTATUS NTAPI IoOpenDeviceRegistryKey(IN PDEVICE_OBJECT DeviceObject, IN ULONG DevInstKeyType, IN ACCESS_MASK DesiredAccess, OUT PHANDLE DevInstRegKey)
PDEVICE_OBJECT Objects[1]
struct _IO_STACK_LOCATION::@4104::@4131 DeviceCapabilities
struct _IO_STACK_LOCATION::@4104::@4136 QueryDeviceText
struct _IO_STACK_LOCATION::@4104::@4129 QueryDeviceRelations
union _IO_STACK_LOCATION::@1611 Parameters
struct _IO_STACK_LOCATION::@4104::@4135 QueryId
#define RtlCopyMemory(Destination, Source, Length)
_In_ PDEVICE_OBJECT DeviceObject
_Must_inspect_result_ _In_ WDFIORESLIST _In_ PIO_RESOURCE_DESCRIPTOR Descriptor
#define PLUGPLAY_REGKEY_DEVICE
#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