⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lock.c

📁 pwlib源码库
💻 C
字号:
/* * lock.c * * Ethernet Packet Interface to NDIS drivers. * * Copyright 1998 Equivalence Pty. Ltd. * * Original code by William Ingle (address unknown) * * $Log: lock.c,v $ * Revision 1.1  1998/09/28 08:08:38  robertj * Initial revision * */#define WANTVXDWRAPS#include <basedef.h>#include <vmm.h>#include <vxdwraps.h>               // must come last#include "lock.h"#pragma VxD_LOCKED_CODE_SEG#pragma VxD_LOCKED_DATA_SEGDWORD _stdcall PacketPageLock(DWORD lpMem, DWORD cbSize){  // lock a page  DWORD LinOffset = lpMem & 0xfff; // page offset of memory to map  DWORD LinPageNum = lpMem >> 12;  // generate page number  DWORD nPages = ((lpMem + cbSize) >> 12) - LinPageNum + 1; // Calculate # of pages to map globally  // Return global mapping of passed in pointer, as this new pointer  // is how the memory must be accessed out of context.  return _LinPageLock(LinPageNum, nPages, PAGEMAPGLOBAL) + LinOffset;}void _stdcall PacketPageUnlock(void * lpMem, DWORD cbSize){  // unlock a page  DWORD LinPageNum = (DWORD)lpMem >> 12;  DWORD nPages = (((DWORD)lpMem + cbSize) >> 12) - LinPageNum + 1;  // Free globally mapped memory  _LinPageUnlock(LinPageNum, nPages, PAGEMAPGLOBAL);}// End of File ////////////////////////////////////////////////////////////////

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -