504{
516
520
522
524 {
525 WARN_(I8042PRT,
"No allocated resources sent to driver\n");
527 }
529 {
530 WARN_(I8042PRT,
"Wrong number of allocated resources sent to driver\n");
532 }
537 {
538 WARN_(I8042PRT,
"Revision mismatch: %u.%u != 1.1 or %u.%u != 1.1\n",
544 }
545
546
548 {
549 ResourceDescriptor = &
AllocatedResources->List[0].PartialResourceList.PartialDescriptors[
i];
551 switch (ResourceDescriptor->
Type)
552 {
554 {
555 if (ResourceDescriptor->
u.
Port.Length == 1)
556 {
557
558
559
560
561 if (!FoundDataPort)
562 {
564 INFO_(I8042PRT,
"Found data port: %p\n", DataPort);
565 FoundDataPort =
TRUE;
566 }
567 else if (!FoundControlPort)
568 {
570 INFO_(I8042PRT,
"Found control port: %p\n", ControlPort);
571 FoundControlPort =
TRUE;
572 }
573 else
574 {
575
576 ERR_(I8042PRT,
"Unhandled I/O ranges provided: 0x%lx\n", ResourceDescriptor->
u.
Port.Length);
577 }
578 }
579 else
580 WARN_(I8042PRT,
"Invalid I/O range length: 0x%lx\n", ResourceDescriptor->
u.
Port.Length);
581 break;
582 }
584 {
585 if (FoundIrq)
592 else
595 INFO_(I8042PRT,
"Found irq resource: %lu\n", ResourceDescriptor->
u.
Interrupt.Level);
597 break;
598 }
599 default:
600 WARN_(I8042PRT,
"Unknown resource descriptor type 0x%x\n", ResourceDescriptor->
Type);
601 }
602 }
603
604 if (!FoundIrq)
605 {
606 WARN_(I8042PRT,
"Interrupt resource was not found in allocated resources list\n");
608 }
609 else if (DeviceExtension->
Type ==
Keyboard && (!FoundDataPort || !FoundControlPort))
610 {
611 WARN_(I8042PRT,
"Some required resources were not found in allocated resources list\n");
613 }
614 else if (DeviceExtension->
Type ==
Mouse && FoundDataPort != FoundControlPort)
615 {
616 WARN_(I8042PRT,
"Mouse was given only one of the controller ports\n");
618 }
619
620
621 if (FoundDataPort && FoundControlPort &&
623 {
624 PortDeviceExtension->
DataPort = DataPort;
626 }
627
628 switch (DeviceExtension->
Type)
629 {
631 {
634 &InterruptData,
638 break;
639 }
641 {
644 &InterruptData,
648 break;
649 }
650 default:
651 {
652 WARN_(I8042PRT,
"Unknown FDO type %u\n", DeviceExtension->
Type);
655 }
656 }
657
660
662}
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 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 STATUS_REVISION_MISMATCH
#define CmResourceTypePort
#define CM_RESOURCE_INTERRUPT_LATCHED
#define CmResourceTypeInterrupt
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR::@494::@496 Port
union _CM_PARTIAL_RESOURCE_DESCRIPTOR::@494 u
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR::@494::@497 Interrupt
PPORT_DEVICE_EXTENSION PortDeviceExtension
#define RtlCopyMemory(Destination, Source, Length)
#define STATUS_INVALID_DEVICE_REQUEST
#define STATUS_INVALID_PARAMETER
#define STATUS_INSUFFICIENT_RESOURCES