Changeset 7927 for trunk/src/kernel32/hmnpipe.cpp
- Timestamp:
- Feb 15, 2002, 8:14:52 PM (24 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kernel32/hmnpipe.cpp
r7549 r7927 1 /* $Id: hmnpipe.cpp,v 1. 7 2001-12-05 14:16:02sandervl Exp $ */1 /* $Id: hmnpipe.cpp,v 1.8 2002-02-15 19:14:51 sandervl Exp $ */ 2 2 /* 3 3 * Project Odin Software License can be found in LICENSE.TXT … … 187 187 //****************************************************************************** 188 188 BOOL HMDeviceNamedPipeClass::CreatePipe(PHMHANDLEDATA pHMHandleDataRead, 189 190 191 189 PHMHANDLEDATA pHMHandleDataWrite, 190 LPSECURITY_ATTRIBUTES lpsa, 191 DWORD cbPipe) 192 192 { 193 193 pHMHandleDataRead->dwInternalType = HMTYPE_PIPE; … … 204 204 return(FALSE); 205 205 } 206 207 208 206 //****************************************************************************** 209 207 //****************************************************************************** … … 267 265 return (FALSE); 268 266 } 269 270 267 //****************************************************************************** 271 268 //****************************************************************************** … … 290 287 lpo)); 291 288 } 292 289 //****************************************************************************** 290 //****************************************************************************** 293 291 BOOL HMDeviceNamedPipeClass::SetNamedPipeHandleState(PHMHANDLEDATA pHMHandleData, 294 292 LPDWORD lpdwMode, … … 309 307 return ret; 310 308 } 311 312 309 //****************************************************************************** 310 //****************************************************************************** 313 311 BOOL HMDeviceNamedPipeClass::GetOverlappedResult(PHMHANDLEDATA pHMHandleData, 314 312 LPOVERLAPPED arg2, … … 318 316 return (FALSE); 319 317 } 318 /***************************************************************************** 319 * Name : BOOL HMDeviceNamedPipeClass::ReadFile 320 * Purpose : read data from handle / device 321 * Parameters: PHMHANDLEDATA pHMHandleData, 322 * LPCVOID lpBuffer, 323 * DWORD nNumberOfBytesToRead, 324 * LPDWORD lpNumberOfBytesRead, 325 * LPOVERLAPPED lpOverlapped 326 * Variables : 327 * Result : Boolean 328 * Remark : 329 * Status : 330 * 331 * Author : SvL 332 *****************************************************************************/ 333 334 BOOL HMDeviceNamedPipeClass::ReadFile(PHMHANDLEDATA pHMHandleData, 335 LPCVOID lpBuffer, 336 DWORD nNumberOfBytesToRead, 337 LPDWORD lpNumberOfBytesRead, 338 LPOVERLAPPED lpOverlapped, 339 LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine) 340 { 341 DWORD bytesread; 342 BOOL bRC; 343 344 dprintfl(("KERNEL32: HMDeviceNamedPipeClass::ReadFile %s(%08x,%08x,%08x,%08x,%08x) - stub?\n", 345 lpHMDeviceName, 346 pHMHandleData, 347 lpBuffer, 348 nNumberOfBytesToRead, 349 lpNumberOfBytesRead, 350 lpOverlapped)); 351 352 //This pointer can to be NULL 353 if(lpNumberOfBytesRead) 354 *lpNumberOfBytesRead = 0; 355 else 356 lpNumberOfBytesRead = &bytesread; 357 358 if((pHMHandleData->dwFlags & FILE_FLAG_OVERLAPPED) && !lpOverlapped) { 359 dprintf(("FILE_FLAG_OVERLAPPED flag set, but lpOverlapped NULL!!")); 360 SetLastError(ERROR_INVALID_PARAMETER); 361 return FALSE; 362 } 363 if(!(pHMHandleData->dwFlags & FILE_FLAG_OVERLAPPED) && lpOverlapped) { 364 dprintf(("Warning: lpOverlapped != NULL & !FILE_FLAG_OVERLAPPED; sync operation")); 365 } 366 if(lpCompletionRoutine) { 367 dprintf(("!WARNING!: lpCompletionRoutine not supported -> fall back to sync IO")); 368 } 369 370 if(pHMHandleData->dwFlags & FILE_FLAG_OVERLAPPED) { 371 dprintf(("ERROR: Overlapped IO not yet implememented!!")); 372 } 373 374 bRC = HMDeviceFileClass::WriteFile(pHMHandleData, 375 lpBuffer, 376 nNumberOfBytesToRead, 377 lpNumberOfBytesRead, 378 lpOverlapped, lpCompletionRoutine); 379 380 dprintf(("KERNEL32: HMDeviceNamedPipeClass::ReadFile returned %08xh; bytes written %d", 381 bRC, *lpNumberOfBytesRead)); 382 383 return bRC; 384 } 385 386 387 /***************************************************************************** 388 * Name : BOOL HMDeviceNamedPipeClass::WriteFile 389 * Purpose : write data to handle / device 390 * Parameters: PHMHANDLEDATA pHMHandleData, 391 * LPCVOID lpBuffer, 392 * DWORD nNumberOfBytesToWrite, 393 * LPDWORD lpNumberOfBytesWritten, 394 * LPOVERLAPPED lpOverlapped 395 * Variables : 396 * Result : Boolean 397 * Remark : 398 * Status : 399 * 400 * Author : SvL 401 *****************************************************************************/ 402 403 BOOL HMDeviceNamedPipeClass::WriteFile(PHMHANDLEDATA pHMHandleData, 404 LPCVOID lpBuffer, 405 DWORD nNumberOfBytesToWrite, 406 LPDWORD lpNumberOfBytesWritten, 407 LPOVERLAPPED lpOverlapped, 408 LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine) 409 { 410 DWORD byteswritten; 411 BOOL bRC; 412 413 dprintfl(("KERNEL32: HMDeviceNamedPipeClass::WriteFile %s(%08x,%08x,%08x,%08x,%08x) - stub?\n", 414 lpHMDeviceName, 415 pHMHandleData, 416 lpBuffer, 417 nNumberOfBytesToWrite, 418 lpNumberOfBytesWritten, 419 lpOverlapped)); 420 421 //This pointer can to be NULL 422 if(lpNumberOfBytesWritten) 423 *lpNumberOfBytesWritten = 0; 424 else 425 lpNumberOfBytesWritten = &byteswritten; 426 427 if((pHMHandleData->dwFlags & FILE_FLAG_OVERLAPPED) && !lpOverlapped) { 428 dprintf(("FILE_FLAG_OVERLAPPED flag set, but lpOverlapped NULL!!")); 429 SetLastError(ERROR_INVALID_PARAMETER); 430 return FALSE; 431 } 432 if(!(pHMHandleData->dwFlags & FILE_FLAG_OVERLAPPED) && lpOverlapped) { 433 dprintf(("Warning: lpOverlapped != NULL & !FILE_FLAG_OVERLAPPED; sync operation")); 434 } 435 436 if(pHMHandleData->dwFlags & FILE_FLAG_OVERLAPPED) { 437 dprintf(("ERROR: Overlapped IO not yet implememented!!")); 438 } 439 bRC = HMDeviceFileClass::WriteFile(pHMHandleData, 440 lpBuffer, 441 nNumberOfBytesToWrite, 442 lpNumberOfBytesWritten, 443 lpOverlapped, lpCompletionRoutine); 444 445 dprintf(("KERNEL32: HMDeviceNamedPipeClass::WriteFile returned %08xh; bytes written %d", 446 bRC, *lpNumberOfBytesWritten)); 447 448 return bRC; 449 } 450 //****************************************************************************** 451 //******************************************************************************
Note:
See TracChangeset
for help on using the changeset viewer.