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.
|
|
//---------------------------------------------------------------------
// Copyright (C)1998 Microsoft Corporation, All Rights Reserved.
//
// iostatus.cpp
//
// Author:
//
// Edward Reus (edwardr) 02-28-98 Initial coding.
//
//---------------------------------------------------------------------
#include "precomp.h"
//---------------------------------------------------------------------
// CIOSTATUS::CIOSTATUS()
//
//---------------------------------------------------------------------
CIOSTATUS::CIOSTATUS() { m_dwMainThreadId = 0; m_hIoCompletionPort = INVALID_HANDLE_VALUE; m_lNumThreads = 0; m_lNumPendingThreads = 0; m_phRpcBinding = 0; }
//---------------------------------------------------------------------
// CIOSTATUS::~CIOSTATUS()
//
//---------------------------------------------------------------------
CIOSTATUS::~CIOSTATUS() { CloseHandle(m_hIoCompletionPort); }
//------------------------------------------------------------------------
// CIOSTATUS::operator new()
//
//------------------------------------------------------------------------
void *CIOSTATUS::operator new( IN size_t Size ) { void *pObj = AllocateMemory(Size);
return pObj; }
//------------------------------------------------------------------------
// CIOSTATUS::operator delete()
//
//------------------------------------------------------------------------
void CIOSTATUS::operator delete( IN void *pObj, IN size_t Size ) { if (pObj) { DWORD dwStatus = FreeMemory(pObj);
#ifdef DBG_MEM
if (dwStatus) { DbgPrint("IrXfer: IrTran-P: CIOSTATUS::delete Failed: %d\n", dwStatus ); } #endif
} }
//---------------------------------------------------------------------
// CIOSTATUS::Initialize();
//
//---------------------------------------------------------------------
DWORD CIOSTATUS::Initialize() { DWORD dwStatus = NO_ERROR;
m_dwMainThreadId = GetCurrentThreadId();
// Create an IO completion port to use in our asynchronous IO.
m_hIoCompletionPort = CreateIoCompletionPort( INVALID_HANDLE_VALUE, 0, 0, 0 ); if (!m_hIoCompletionPort) { dwStatus = GetLastError(); #ifdef DBG_ERROR
DbgPrint("CreateIoCompletionPort(): Failed: %d\n",dwStatus); #endif
return dwStatus; }
return dwStatus; }
|