69 TRACE_(IHVVIDEO,
"XboxVmpFindAdapter\n");
74 &VendorId, &DeviceId,
NULL);
96 PVOID HwDeviceExtension)
102 TRACE_(IHVVIDEO,
"XboxVmpInitialize\n");
115 ERR_(IHVVIDEO,
"Failed to map control memory\n");
119 INFO_(IHVVIDEO,
"Mapped 0x%x bytes of control mem at 0x%x to virt addr 0x%x\n",
136 PVOID HwDeviceExtension,
147 TRACE_(IHVVIDEO,
"XboxVmpStartIO IOCTL_VIDEO_SET_CURRENT_MODE\n");
164 TRACE_(IHVVIDEO,
"XboxVmpStartIO IOCTL_VIDEO_RESET_DEVICE\n");
174 TRACE_(IHVVIDEO,
"XboxVmpStartIO IOCTL_VIDEO_MAP_VIDEO_MEMORY\n");
193 TRACE_(IHVVIDEO,
"XboxVmpStartIO IOCTL_VIDEO_UNMAP_VIDEO_MEMORY\n");
210 TRACE_(IHVVIDEO,
"XboxVmpStartIO IOCTL_VIDEO_QUERY_NUM_AVAIL_MODES\n");
227 TRACE_(IHVVIDEO,
"XboxVmpStartIO IOCTL_VIDEO_QUERY_AVAIL_MODES\n");
244 TRACE_(IHVVIDEO,
"XboxVmpStartIO IOCTL_VIDEO_QUERY_CURRENT_MODE\n");
261 WARN_(IHVVIDEO,
"XboxVmpStartIO 0x%x not implemented\n", RequestPacket->
IoControlCode);
285 PVOID DeviceExtension,
289 TRACE_(IHVVIDEO,
"XboxVmpResetHw\n");
308 PVOID HwDeviceExtension,
312 ERR_(IHVVIDEO,
"XboxVmpGetPowerState is not supported\n");
326 PVOID HwDeviceExtension,
330 ERR_(IHVVIDEO,
"XboxVmpSetPowerState not supported\n");
406 WARN_(IHVVIDEO,
"Non-standard framebuffer address 0x%p\n",
FrameBuffer.QuadPart);
430 INFO_(IHVVIDEO,
"Mapped 0x%x bytes of phys mem at 0x%lx to virt addr 0x%p\n",
549 ERR_(IHVVIDEO,
"Cannot obtain current screen resolution!\n");
580 VideoMode->DriverSpecificAttributeFlags = 0;
587 ERR_(IHVVIDEO,
"Current screen resolution exceeds video memory bounds!\n");
struct _LARGE_INTEGER::@2253 u
#define ERROR_INVALID_PARAMETER
#define NV2A_VIDEO_MEMORY_SIZE
NTKERNELAPI VOID NTAPI WRITE_REGISTER_ULONG(IN PULONG Register, IN ULONG Value)
struct _VIDEO_NUM_MODES VIDEO_NUM_MODES
BOOLEAN FASTCALL XboxVmpQueryCurrentMode(PXBOXVMP_DEVICE_EXTENSION DeviceExtension, PVIDEO_MODE_INFORMATION VideoMode, PSTATUS_BLOCK StatusBlock)
_In_ ULONG _In_ ULONG _In_ ULONG Length
BOOLEAN NTAPI XboxVmpStartIO(PVOID HwDeviceExtension, PVIDEO_REQUEST_PACKET RequestPacket)
PVIDEO_HW_POWER_SET HwSetPowerState
static ULONG BytesPerPixel
#define ERROR_INVALID_FUNCTION
static const VBE_MODE Modes[VBE_MODE_COUNT]
BOOLEAN NTAPI XboxVmpInitialize(PVOID HwDeviceExtension)
_Must_inspect_result_ _In_ PVOID _In_ struct _HW_INITIALIZATION_DATA _In_ PVOID HwContext
PHYSICAL_ADDRESS PhysControlStart
#define IOCTL_VIDEO_RESET_DEVICE
INTERFACE_TYPE AdapterInterfaceType
#define IOCTL_VIDEO_MAP_VIDEO_MEMORY
PVOID RequestedVirtualAddress
UCHAR NvGetCrtc(PXBOXVMP_DEVICE_EXTENSION DeviceExtension, UCHAR Index)
VPAPI ULONG NTAPI VideoPortInitialize(IN PVOID Argument1, IN PVOID Argument2, IN PVIDEO_HW_INITIALIZATION_DATA HwInitializationData, IN PVOID HwContext)
PVIDEO_HW_POWER_GET HwGetPowerState
BOOLEAN FASTCALL XboxVmpSetCurrentMode(PXBOXVMP_DEVICE_EXTENSION DeviceExtension, PVIDEO_MODE RequestedMode, PSTATUS_BLOCK StatusBlock)
NTKERNELAPI ULONG NTAPI READ_REGISTER_ULONG(IN PULONG Register)
VPAPI VOID NTAPI VideoPortZeroMemory(IN PVOID Destination, IN ULONG Length)
BOOLEAN FASTCALL XboxVmpResetDevice(PXBOXVMP_DEVICE_EXTENSION DeviceExtension, PSTATUS_BLOCK StatusBlock)
PVIDEO_HW_START_IO HwStartIO
#define IOCTL_VIDEO_QUERY_CURRENT_MODE
#define VIDEO_MODE_NO_OFF_SCREEN
#define IOCTL_VIDEO_SET_CURRENT_MODE
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
VP_STATUS NTAPI XboxVmpGetPowerState(PVOID HwDeviceExtension, ULONG HwId, PVIDEO_POWER_MANAGEMENT VideoPowerControl)
VP_STATUS NTAPI XboxVmpFindAdapter(IN PVOID HwDeviceExtension, IN PVOID HwContext, IN PWSTR ArgumentString, IN OUT PVIDEO_PORT_CONFIG_INFO ConfigInfo, OUT PUCHAR Again)
BOOLEAN FASTCALL XboxVmpQueryAvailModes(PXBOXVMP_DEVICE_EXTENSION DeviceExtension, PVIDEO_MODE_INFORMATION VideoMode, PSTATUS_BLOCK StatusBlock)
UCHAR NvGetBytesPerPixel(PXBOXVMP_DEVICE_EXTENSION DeviceExtension, ULONG ScreenWidth)
struct _VIDEO_HW_INITIALIZATION_DATA VIDEO_HW_INITIALIZATION_DATA
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
ULONG NTAPI DriverEntry(IN PVOID Context1, IN PVOID Context2)
PVIDEO_HW_INITIALIZE HwInitialize
PHYSICAL_ADDRESS PhysFrameBufferStart
#define IOCTL_VIDEO_UNMAP_VIDEO_MEMORY
VPAPI VP_STATUS NTAPI VideoPortMapMemory(IN PVOID HwDeviceExtension, IN PHYSICAL_ADDRESS PhysicalAddress, IN OUT PULONG Length, IN PULONG InIoSpace, IN OUT PVOID *VirtualAddress)
struct _VIDEO_MEMORY_INFORMATION VIDEO_MEMORY_INFORMATION
VP_STATUS NTAPI XboxVmpSetPowerState(PVOID HwDeviceExtension, ULONG HwId, PVIDEO_POWER_MANAGEMENT VideoPowerControl)
_In_ WDFCOLLECTION _In_ ULONG Index
PVIDEO_HW_FIND_ADAPTER HwFindAdapter
PVIDEO_HW_RESET_HW HwResetHw
#define NV2A_RAMDAC_FP_HVALID_END
BOOLEAN NTAPI XboxVmpResetHw(PVOID DeviceExtension, ULONG Columns, ULONG Rows)
#define IOCTL_VIDEO_QUERY_NUM_AVAIL_MODES
#define IOCTL_VIDEO_QUERY_AVAIL_MODES
VPAPI VP_STATUS NTAPI VideoPortUnmapMemory(IN PVOID HwDeviceExtension, IN OUT PVOID VirtualAddress, IN HANDLE ProcessHandle)
BOOLEAN FASTCALL XboxVmpQueryNumAvailModes(PXBOXVMP_DEVICE_EXTENSION DeviceExtension, PVIDEO_NUM_MODES Modes, PSTATUS_BLOCK StatusBlock)
NTKERNELAPI UCHAR NTAPI READ_REGISTER_UCHAR(IN PUCHAR Register)
_In_ PNET_PNP_EVENT _In_ PTDI_PNP_CONTEXT _In_ PTDI_PNP_CONTEXT Context2
#define NV2A_CRTC_REGISTER_VALUE
#define NV2A_RAMDAC_FP_VVALID_END
static const COLUMN_LIST Columns[]
ULONG HwDeviceExtensionSize
#define NV2A_CRTC_REGISTER_INDEX
PSTATUS_BLOCK StatusBlock
_In_ PNET_PNP_EVENT _In_ PTDI_PNP_CONTEXT Context1
#define NV2A_CRTC_FRAMEBUFFER_START
BOOLEAN FASTCALL XboxVmpMapVideoMemory(PXBOXVMP_DEVICE_EXTENSION DeviceExtension, PVIDEO_MEMORY RequestedAddress, PVIDEO_MEMORY_INFORMATION MapInformation, PSTATUS_BLOCK StatusBlock)
VPAPI VP_STATUS NTAPI VideoPortGetAccessRanges(IN PVOID HwDeviceExtension, IN ULONG NumRequestedResources, IN PIO_RESOURCE_DESCRIPTOR RequestedResources OPTIONAL, IN ULONG NumAccessRanges, OUT PVIDEO_ACCESS_RANGE AccessRanges, IN PVOID VendorId, IN PVOID DeviceId, OUT PULONG Slot)
struct XBOXVMP_DEVICE_EXTENSION * PXBOXVMP_DEVICE_EXTENSION
#define VIDEO_MEMORY_SPACE_MEMORY
struct _VIDEO_MODE_INFORMATION VIDEO_MODE_INFORMATION
BOOLEAN FASTCALL XboxVmpUnmapVideoMemory(PXBOXVMP_DEVICE_EXTENSION DeviceExtension, PVIDEO_MEMORY VideoMemory, PSTATUS_BLOCK StatusBlock)
NTKERNELAPI VOID NTAPI WRITE_REGISTER_UCHAR(IN PUCHAR Register, IN UCHAR Value)
PHYSICAL_ADDRESS RangeStart
#define ERROR_INSUFFICIENT_BUFFER
#define VIDEO_MODE_GRAPHICS