Changeset 2799 for trunk/src/win32k/dev16
- Timestamp:
- Feb 16, 2000, 12:39:20 AM (26 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/win32k/dev16/d16strat.c
r1678 r2799 1 /* $Id: d16strat.c,v 1. 3 1999-11-10 01:45:30bird Exp $1 /* $Id: d16strat.c,v 1.4 2000-02-15 23:39:18 bird Exp $ 2 2 * 3 3 * d16strat.c - 16-bit strategy routine, device headers, device_helper (ptr) … … 30 30 #include "dev1632.h" 31 31 #include "dev16.h" 32 #include "win32k.h" 32 33 33 34 … … 88 89 USHORT NEAR strategy(PRPH pRpH, unsigned short usDev) 89 90 { 90 91 91 switch (pRpH->Cmd) 92 92 { … … 145 145 { 146 146 ULONG ulLin; 147 if (DevHelp_VirtToLin(SELECTOROF(pRp->DataPacket), OFFSETOF(pRp->DataPacket), &ulLin) != NO_ERROR) 147 if (DevHelp_VirtToLin(SELECTOROF(pRp->DataPacket), OFFSETOF(pRp->DataPacket), 148 &ulLin) != NO_ERROR) 148 149 return STATUS_DONE | STERR | ERROR_I24_INVALID_PARAMETER; 149 150 return CallGetOTEs32(ulLin); … … 156 157 } 157 158 } 159 else if (pRp->Category == IOCTL_W32K_K32 || pRp->Category == IOCTL_W32K_ELF) 160 { 161 RP32GENIOCTL rp32Init = {0}; 162 rp32Init.rph.Len = pRp->rph.Len; 163 rp32Init.rph.Unit = pRp->rph.Unit; 164 rp32Init.rph.Cmd = pRp->rph.Cmd; 165 rp32Init.rph.Status = pRp->rph.Status; 166 rp32Init.rph.Flags = pRp->rph.Flags; 167 rp32Init.rph.Link = (ULONG)pRp->rph.Link; 168 rp32Init.Category = pRp->Category; 169 rp32Init.Function = pRp->Function; 170 rp32Init.sfn = pRp->sfn; 171 rp32Init.DataLen = pRp->DataLen; 172 rp32Init.ParmLen = pRp->ParmLen; 173 174 if (DevHelp_VirtToLin(SELECTOROF(pRp->DataPacket), OFFSETOF(pRp->DataPacket), 175 (PLIN)&rp32Init.DataPacket) != NO_ERROR) 176 return STATUS_DONE | STERR | ERROR_I24_INVALID_PARAMETER; 177 if (DevHelp_VirtToLin(SELECTOROF(pRp->ParmPacket), OFFSETOF(pRp->ParmPacket), 178 (PLIN)&rp32Init.ParmPacket) != NO_ERROR) 179 return STATUS_DONE | STERR | ERROR_I24_INVALID_PARAMETER; 180 181 if (pRp->Category == IOCTL_W32K_ELF) 182 rc = CallElfIOCtl(SSToDS_16a(&rp32Init)); 183 else 184 rc = CallWin32kIOCtl(SSToDS_16a(&rp32Init)); 185 186 return rc; 187 } 188 158 189 159 190 return STATUS_DONE | STERR | ERROR_I24_INVALID_PARAMETER; … … 169 200 USHORT dev1GenIOCtl(PRP_GENIOCTL pRp) 170 201 { 171 pRp = pRp; 202 if (pRp->Category == IOCTL_W32K_K32 || pRp->Category == IOCTL_W32K_ELF) 203 { 204 USHORT rc; 205 RP32GENIOCTL rp32Init = {0}; 206 rp32Init.rph.Len = pRp->rph.Len; 207 rp32Init.rph.Unit = pRp->rph.Unit; 208 rp32Init.rph.Cmd = pRp->rph.Cmd; 209 rp32Init.rph.Status = pRp->rph.Status; 210 rp32Init.rph.Flags = pRp->rph.Flags; 211 rp32Init.rph.Link = (ULONG)pRp->rph.Link; 212 rp32Init.Category = pRp->Category; 213 rp32Init.Function = pRp->Function; 214 rp32Init.sfn = pRp->sfn; 215 rp32Init.DataLen = pRp->DataLen; 216 rp32Init.ParmLen = pRp->ParmLen; 217 218 if (DevHelp_VirtToLin(SELECTOROF(pRp->DataPacket), OFFSETOF(pRp->DataPacket), 219 (PLIN)&rp32Init.DataPacket) != NO_ERROR) 220 return STATUS_DONE | STERR | ERROR_I24_INVALID_PARAMETER; 221 if (DevHelp_VirtToLin(SELECTOROF(pRp->ParmPacket), OFFSETOF(pRp->ParmPacket), 222 (PLIN)&rp32Init.ParmPacket) != NO_ERROR) 223 return STATUS_DONE | STERR | ERROR_I24_INVALID_PARAMETER; 224 225 if (pRp->Category == IOCTL_W32K_ELF) 226 rc = CallElfIOCtl(SSToDS_16a(&rp32Init)); 227 else 228 rc = CallWin32kIOCtl(SSToDS_16a(&rp32Init)); 229 230 return rc; 231 } 232 172 233 return STATUS_DONE | STERR | ERROR_I24_INVALID_PARAMETER; 173 234 }
Note:
See TracChangeset
for help on using the changeset viewer.