Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
#define PRESENT 1
#define WRITABLE 2
#define USER 4
#define WRITETHROUGHCACHE 8
#define CACHEDISABLED 16
#define ACCESSED 32
#define DIRTY 64
#define PROCPAGESIZE 4096
#define PAGECOUNT 32
#define MAXDMABUFFERSIZE PAGECOUNT*PROCPAGESIZE
#ifdef UNDER_NT
#define STR_DEVICENAME TEXT("\\Device\\GLITCH")
#define STR_LINKNAME TEXT("\\DosDevices\\GLITCH")
#else
#define STR_DEVICENAME TEXT(L"\\Device\\GLITCH")
#define STR_LINKNAME TEXT(L"\\DosDevices\\GLITCH")
#endif
#define PACKETSIZE sizeof(ULONGLONG)+2*sizeof(ULONG)
enum PacketTypes{ NODATA, MASKED, UNMASKED, GLITCHED, HELDOFF };
typedef struct { ULONG WriteLocation; ULONG ReadLocation; ULONG BufferSize; PCHAR pBuffer; } GLITCHDATA, *PGLITCHDATA;
typedef struct { ULONG Channel; PKSPIN_LOCK pMasterAdapterSpinLock; ULONG CR3; PULONG PageDirectory; PULONG PageTable; PULONG pDmaBuffer; ULONG DmaBufferSize; ULONG PhysicalDmaBufferStart; PCHAR pPrintBuffer; ULONG PrintBufferSize; volatile ULONG *pPrintLoad; volatile ULONG *pPrintEmpty; BOOLEAN Read32BitPhysicalAddresses; } DMAINFO, *PDMAINFO;
extern PGLITCHDATA GlitchInfo;
VOID TrackGlitches ( PVOID Context, ThreadStats *Statistics );
VOID GlitchDetect ( PDMAINFO Context, ThreadStats *Statistics );
PVOID __cdecl ReservePages ( ULONG page, ULONG npages, ULONG flags );
ULONG __cdecl FreePages ( PVOID hmem, ULONG flags );
PVOID __cdecl LockPages ( ULONG page, ULONG npages, ULONG pageoffset, ULONG flags );
#ifdef UNDER_NT
NTSTATUS DeviceIoCreate( IN PDEVICE_OBJECT DeviceObject, IN PIRP pIrp);
NTSTATUS DeviceIoClose( IN PDEVICE_OBJECT DeviceObject, IN PIRP pIrp);
NTSTATUS DeviceIoControl( IN PDEVICE_OBJECT DeviceObject, IN PIRP pIrp);
#endif
|