71 TRACE_(IHVVIDEO,
"XboxVmpFindAdapter\n");
78 &VendorId, &DeviceId, &Slot);
99 PVOID HwDeviceExtension)
105 TRACE_(IHVVIDEO,
"XboxVmpInitialize\n");
118 ERR_(IHVVIDEO,
"Failed to map control memory\n");
122 INFO_(IHVVIDEO,
"Mapped 0x%x bytes of control mem at 0x%x to virt addr 0x%x\n",
139 PVOID HwDeviceExtension,
150 TRACE_(IHVVIDEO,
"XboxVmpStartIO IOCTL_VIDEO_SET_CURRENT_MODE\n");
167 TRACE_(IHVVIDEO,
"XboxVmpStartIO IOCTL_VIDEO_RESET_DEVICE\n");
177 TRACE_(IHVVIDEO,
"XboxVmpStartIO IOCTL_VIDEO_MAP_VIDEO_MEMORY\n");
196 TRACE_(IHVVIDEO,
"XboxVmpStartIO IOCTL_VIDEO_UNMAP_VIDEO_MEMORY\n");
213 TRACE_(IHVVIDEO,
"XboxVmpStartIO IOCTL_VIDEO_QUERY_NUM_AVAIL_MODES\n");
230 TRACE_(IHVVIDEO,
"XboxVmpStartIO IOCTL_VIDEO_QUERY_AVAIL_MODES\n");
247 TRACE_(IHVVIDEO,
"XboxVmpStartIO IOCTL_VIDEO_QUERY_CURRENT_MODE\n");
264 WARN_(IHVVIDEO,
"XboxVmpStartIO 0x%x not implemented\n", RequestPacket->
IoControlCode);
288 PVOID DeviceExtension,
292 TRACE_(IHVVIDEO,
"XboxVmpResetHw\n");
311 PVOID HwDeviceExtension,
315 ERR_(IHVVIDEO,
"XboxVmpGetPowerState is not supported\n");
329 PVOID HwDeviceExtension,
333 ERR_(IHVVIDEO,
"XboxVmpSetPowerState not supported\n");
409 WARN_(IHVVIDEO,
"Non-standard framebuffer address 0x%p\n",
FrameBuffer.QuadPart);
433 INFO_(IHVVIDEO,
"Mapped 0x%x bytes of phys mem at 0x%lx to virt addr 0x%p\n",
552 ERR_(IHVVIDEO,
"Cannot obtain current screen resolution!\n");
583 VideoMode->DriverSpecificAttributeFlags = 0;
590 ERR_(IHVVIDEO,
"Current screen resolution exceeds video memory bounds!\n");
#define WRITE_REGISTER_ULONG(r, v)
#define READ_REGISTER_ULONG(r)
static const COLUMN_LIST Columns[]
#define ERROR_INSUFFICIENT_BUFFER
#define ERROR_INVALID_FUNCTION
#define ERROR_INVALID_PARAMETER
DRIVER_INITIALIZE DriverEntry
_In_ ULONG _In_ ULONG _In_ ULONG Length
#define IOCTL_VIDEO_MAP_VIDEO_MEMORY
#define VIDEO_MODE_GRAPHICS
#define IOCTL_VIDEO_UNMAP_VIDEO_MEMORY
#define IOCTL_VIDEO_QUERY_CURRENT_MODE
#define IOCTL_VIDEO_SET_CURRENT_MODE
#define IOCTL_VIDEO_RESET_DEVICE
struct _VIDEO_NUM_MODES VIDEO_NUM_MODES
struct _VIDEO_MEMORY_INFORMATION VIDEO_MEMORY_INFORMATION
#define VIDEO_MODE_NO_OFF_SCREEN
struct _VIDEO_MODE_INFORMATION VIDEO_MODE_INFORMATION
#define IOCTL_VIDEO_QUERY_AVAIL_MODES
#define IOCTL_VIDEO_QUERY_NUM_AVAIL_MODES
_Must_inspect_result_ _In_ PVOID _In_ struct _HW_INITIALIZATION_DATA _In_ PVOID HwContext
VPAPI VOID NTAPI VideoPortZeroMemory(IN PVOID Destination, IN ULONG Length)
VPAPI VP_STATUS NTAPI VideoPortUnmapMemory(IN PVOID HwDeviceExtension, IN OUT PVOID VirtualAddress, IN HANDLE ProcessHandle)
struct _VIDEO_HW_INITIALIZATION_DATA VIDEO_HW_INITIALIZATION_DATA
VPAPI ULONG NTAPI VideoPortInitialize(IN PVOID Argument1, IN PVOID Argument2, IN PVIDEO_HW_INITIALIZATION_DATA HwInitializationData, IN PVOID HwContext)
VPAPI VP_STATUS NTAPI VideoPortMapMemory(IN PVOID HwDeviceExtension, IN PHYSICAL_ADDRESS PhysicalAddress, IN OUT PULONG Length, IN PULONG InIoSpace, IN OUT PVOID *VirtualAddress)
#define VIDEO_MEMORY_SPACE_MEMORY
VPAPI VP_STATUS NTAPI VideoPortGetAccessRanges(_In_ PVOID HwDeviceExtension, _In_opt_ ULONG NumRequestedResources, _In_reads_opt_(NumRequestedResources) PIO_RESOURCE_DESCRIPTOR RequestedResources, _In_ ULONG NumAccessRanges, _Out_writes_(NumAccessRanges) PVIDEO_ACCESS_RANGE AccessRanges, _In_ PVOID VendorId, _In_ PVOID DeviceId, _Out_ PULONG Slot)
Retrieves bus-relative (mainly PCI) hardware resources access ranges and, if possible,...
PHYSICAL_ADDRESS PhysFrameBufferStart
PHYSICAL_ADDRESS PhysControlStart
PHYSICAL_ADDRESS RangeStart
ULONG HwDeviceExtensionSize
PVIDEO_HW_FIND_ADAPTER HwFindAdapter
PVIDEO_HW_START_IO HwStartIO
PVIDEO_HW_POWER_SET HwSetPowerState
PVIDEO_HW_POWER_GET HwGetPowerState
PVIDEO_HW_RESET_HW HwResetHw
INTERFACE_TYPE AdapterInterfaceType
PVIDEO_HW_INITIALIZE HwInitialize
PVOID RequestedVirtualAddress
PSTATUS_BLOCK StatusBlock
static const VBE_MODE Modes[VBE_MODE_COUNT]
_In_ PNET_PNP_EVENT _In_ PTDI_PNP_CONTEXT Context1
_In_ PNET_PNP_EVENT _In_ PTDI_PNP_CONTEXT _In_ PTDI_PNP_CONTEXT Context2
struct _LARGE_INTEGER::@2302 u
_In_ WDFCOLLECTION _In_ ULONG Index
_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
static ULONG BytesPerPixel
UCHAR NvGetCrtc(PXBOXVMP_DEVICE_EXTENSION DeviceExtension, UCHAR Index)
BOOLEAN FASTCALL XboxVmpQueryAvailModes(PXBOXVMP_DEVICE_EXTENSION DeviceExtension, PVIDEO_MODE_INFORMATION VideoMode, PSTATUS_BLOCK StatusBlock)
VP_STATUS NTAPI XboxVmpGetPowerState(PVOID HwDeviceExtension, ULONG HwId, PVIDEO_POWER_MANAGEMENT VideoPowerControl)
BOOLEAN FASTCALL XboxVmpResetDevice(PXBOXVMP_DEVICE_EXTENSION DeviceExtension, PSTATUS_BLOCK StatusBlock)
UCHAR NvGetBytesPerPixel(PXBOXVMP_DEVICE_EXTENSION DeviceExtension, ULONG ScreenWidth)
VP_STATUS NTAPI XboxVmpSetPowerState(PVOID HwDeviceExtension, ULONG HwId, PVIDEO_POWER_MANAGEMENT VideoPowerControl)
BOOLEAN NTAPI XboxVmpResetHw(PVOID DeviceExtension, ULONG Columns, ULONG Rows)
BOOLEAN NTAPI XboxVmpInitialize(PVOID HwDeviceExtension)
BOOLEAN FASTCALL XboxVmpMapVideoMemory(PXBOXVMP_DEVICE_EXTENSION DeviceExtension, PVIDEO_MEMORY RequestedAddress, PVIDEO_MEMORY_INFORMATION MapInformation, PSTATUS_BLOCK StatusBlock)
BOOLEAN NTAPI XboxVmpStartIO(PVOID HwDeviceExtension, PVIDEO_REQUEST_PACKET RequestPacket)
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 XboxVmpUnmapVideoMemory(PXBOXVMP_DEVICE_EXTENSION DeviceExtension, PVIDEO_MEMORY VideoMemory, PSTATUS_BLOCK StatusBlock)
BOOLEAN FASTCALL XboxVmpSetCurrentMode(PXBOXVMP_DEVICE_EXTENSION DeviceExtension, PVIDEO_MODE RequestedMode, PSTATUS_BLOCK StatusBlock)
BOOLEAN FASTCALL XboxVmpQueryNumAvailModes(PXBOXVMP_DEVICE_EXTENSION DeviceExtension, PVIDEO_NUM_MODES Modes, PSTATUS_BLOCK StatusBlock)
BOOLEAN FASTCALL XboxVmpQueryCurrentMode(PXBOXVMP_DEVICE_EXTENSION DeviceExtension, PVIDEO_MODE_INFORMATION VideoMode, PSTATUS_BLOCK StatusBlock)
struct XBOXVMP_DEVICE_EXTENSION * PXBOXVMP_DEVICE_EXTENSION
NTKERNELAPI VOID NTAPI WRITE_REGISTER_UCHAR(IN PUCHAR Register, IN UCHAR Value)
NTKERNELAPI UCHAR NTAPI READ_REGISTER_UCHAR(IN PUCHAR Register)
#define NV2A_VIDEO_MEMORY_SIZE
#define NV2A_CRTC_FRAMEBUFFER_START
#define NV2A_RAMDAC_FP_VVALID_END
#define NV2A_CRTC_REGISTER_INDEX
#define NV2A_CRTC_REGISTER_VALUE
#define NV2A_RAMDAC_FP_HVALID_END