#include "dderror.h" #include "devioctl.h" #include "miniport.h" #include "ntddvdeo.h" #include "video.h" #include "mirror.h" VOID DbgBreakPoint() {}; VOID MirrorNotImplemented(char *s) { VideoDebugPrint((0, "Mirror Sample: Not used '%s'.\n", s)); } BOOLEAN MirrorResetHW( PVOID HwDeviceExtension, ULONG Columns, ULONG Rows ) { MirrorNotImplemented("MirrorResetHW"); return TRUE; } BOOLEAN MirrorVidInterrupt( PVOID HwDeviceExtension ) { MirrorNotImplemented("MirrorVidInterrupt"); return TRUE; } VP_STATUS MirrorGetPowerState( PVOID HwDeviceExtension, ULONG HwId, PVIDEO_POWER_MANAGEMENT VideoPowerControl ) { MirrorNotImplemented("MirrorGetPowerState"); return NO_ERROR; } VP_STATUS MirrorSetPowerState( PVOID HwDeviceExtension, ULONG HwId, PVIDEO_POWER_MANAGEMENT VideoPowerControl ) { MirrorNotImplemented("MirrorSetPowerState"); return NO_ERROR; } ULONG MirrorGetChildDescriptor ( IN PVOID HwDeviceExtension, IN PVIDEO_CHILD_ENUM_INFO ChildEnumInfo, OUT PVIDEO_CHILD_TYPE pChildType, OUT PVOID pChildDescriptor, OUT PULONG pUId, OUT PULONG pUnused ) { MirrorNotImplemented("MirrorGetChildDescriptor"); return ERROR_NO_MORE_DEVICES; } VP_STATUS MirrorFindAdapter( IN PVOID HwDeviceExtension, IN PVOID HwContext, IN PWSTR ArgumentString, IN OUT PVIDEO_PORT_CONFIG_INFO ConfigInfo, OUT PUCHAR Again ) { VideoDebugPrint((0,"FindAdapter Called.\n")); return NO_ERROR; } BOOLEAN MirrorInitialize( PVOID HwDeviceExtension ) { VideoDebugPrint((0,"Initialize Called.\n")); return TRUE; } BOOLEAN MirrorStartIO( PVOID HwDeviceExtension, PVIDEO_REQUEST_PACKET RequestPacket ) { VideoDebugPrint((0,"StartIO Called.\n")); return TRUE; } ULONG DriverEntry ( PVOID Context1, PVOID Context2 ) { VIDEO_HW_INITIALIZATION_DATA hwInitData; ULONG initializationStatus; VideoDebugPrint((0, "Mirrored Driver VideoPort [Driver Entry]\n")); // Zero out structure. VideoPortZeroMemory(&hwInitData, sizeof(VIDEO_HW_INITIALIZATION_DATA)); // Specify sizes of structure and extension. hwInitData.HwInitDataSize = sizeof(VIDEO_HW_INITIALIZATION_DATA); // Set entry points. hwInitData.HwFindAdapter = &MirrorFindAdapter; hwInitData.HwInitialize = &MirrorInitialize; hwInitData.HwStartIO = &MirrorStartIO; hwInitData.HwResetHw = &MirrorResetHW; hwInitData.HwInterrupt = &MirrorVidInterrupt; hwInitData.HwGetPowerState = &MirrorGetPowerState; hwInitData.HwSetPowerState = &MirrorSetPowerState; hwInitData.HwGetVideoChildDescriptor = &MirrorGetChildDescriptor; hwInitData.HwLegacyResourceList = NULL; hwInitData.HwLegacyResourceCount = 0; // no device extension necessary hwInitData.HwDeviceExtensionSize = 0; hwInitData.AdapterInterfaceType = 0; initializationStatus = VideoPortInitialize(Context1, Context2, &hwInitData, NULL); return initializationStatus; } // end DriverEntry()