504{
514
518
520
522 {
523 WARN_(I8042PRT,
"No allocated resources sent to driver\n");
525 }
527 {
528 WARN_(I8042PRT,
"Wrong number of allocated resources sent to driver\n");
530 }
535 {
536 WARN_(I8042PRT,
"Revision mismatch: %u.%u != 1.1 or %u.%u != 1.1\n",
542 }
543
544
546 {
547 ResourceDescriptor = &
AllocatedResources->List[0].PartialResourceList.PartialDescriptors[
i];
549 switch (ResourceDescriptor->
Type)
550 {
552 {
553 if (ResourceDescriptor->
u.
Port.Length == 1)
554 {
555
556
557
558
559 if (!FoundDataPort)
560 {
562 INFO_(I8042PRT,
"Found data port: %p\n", PortDeviceExtension->
DataPort);
563 FoundDataPort =
TRUE;
564 }
565 else if (!FoundControlPort)
566 {
568 INFO_(I8042PRT,
"Found control port: %p\n", PortDeviceExtension->
ControlPort);
569 FoundControlPort =
TRUE;
570 }
571 else
572 {
573
574 ERR_(I8042PRT,
"Unhandled I/O ranges provided: 0x%lx\n", ResourceDescriptor->
u.
Port.Length);
575 }
576 }
577 else
578 WARN_(I8042PRT,
"Invalid I/O range length: 0x%lx\n", ResourceDescriptor->
u.
Port.Length);
579 break;
580 }
582 {
583 if (FoundIrq)
590 else
593 INFO_(I8042PRT,
"Found irq resource: %lu\n", ResourceDescriptor->
u.
Interrupt.Level);
595 break;
596 }
597 default:
598 WARN_(I8042PRT,
"Unknown resource descriptor type 0x%x\n", ResourceDescriptor->
Type);
599 }
600 }
601
602 if (!FoundIrq)
603 {
604 WARN_(I8042PRT,
"Interrupt resource was not found in allocated resources list\n");
606 }
607 else if (DeviceExtension->
Type ==
Keyboard && (!FoundDataPort || !FoundControlPort))
608 {
609 WARN_(I8042PRT,
"Some required resources were not found in allocated resources list\n");
611 }
612 else if (DeviceExtension->
Type ==
Mouse && (FoundDataPort || FoundControlPort))
613 {
614 WARN_(I8042PRT,
"Too much resources were provided in allocated resources list\n");
616 }
617
618 switch (DeviceExtension->
Type)
619 {
621 {
624 &InterruptData,
628 break;
629 }
631 {
634 &InterruptData,
638 break;
639 }
640 default:
641 {
642 WARN_(I8042PRT,
"Unknown FDO type %u\n", DeviceExtension->
Type);
645 }
646 }
647
650
652}
struct _FDO_DEVICE_EXTENSION * PFDO_DEVICE_EXTENSION
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
#define CmResourceTypePort
#define CmResourceTypeInterrupt
#define KEYBOARD_CONNECTED
_Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PCM_RESOURCE_LIST * AllocatedResources
_Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PCM_RESOURCE_LIST _Inout_opt_ PCM_RESOURCE_LIST * AllocatedResourcesTranslated
#define CM_RESOURCE_INTERRUPT_LATCHED
#define STATUS_REVISION_MISMATCH
union _CM_PARTIAL_RESOURCE_DESCRIPTOR::@392 u
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR::@392::@394 Port
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR::@392::@395 Interrupt
PPORT_DEVICE_EXTENSION PortDeviceExtension
#define RtlCopyMemory(Destination, Source, Length)
#define STATUS_INVALID_DEVICE_REQUEST
#define STATUS_INVALID_PARAMETER
#define STATUS_INSUFFICIENT_RESOURCES