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

📄 pgpdiskworkerthread.h

📁 vc环境下的pgp源码
💻 H
字号:
/////////////////////////////////////////////////////////////////////////////////
// PGPdiskWorkerThread.h
//
// Declaration of class PGPdiskWorkerThread.
/////////////////////////////////////////////////////////////////////////////////

// $Id: PGPdiskWorkerThread.h,v 1.3 1998/12/14 18:59:47 nryan Exp $

// Copyright (C) 1998 by Network Associates, Inc.
// All rights reserved.

#ifndef Included_PGPdiskWorkerThread_h	// [
#define Included_PGPdiskWorkerThread_h

#include "DualErr.h"
#include "WaitObjectClasses.h"

#include "PGPdiskRequestQueue.h"


////////////////////////////
// Class PGPdiskWorkerThread
////////////////////////////

class PGPdiskWorkerThread : private KSystemThread
{
public:
	DualErr mInitErr;

							PGPdiskWorkerThread();
							~PGPdiskWorkerThread();

	PGPBoolean				IsThreadRunning();
	PGPdiskRequestQueue *	GetRequestQueue();

	DualErr					StartThread();
	void					KillThread();

	DualErr					QueueIrpForProcessing(PIRP pIrp);

	DualErr					ScheduleAsyncCallback(PEZCALLBACK callback, 
								PGPUInt32 refData = NULL);
	DualErr					ScheduleSyncCallback(PEZCALLBACK callback, 
								PGPUInt32 refData = NULL);

private:
	PGPdiskRequestQueue	mRequestQueue;		// queue for requests
	PGPdiskSemaphore	mIoSem;				// signalled to indicate I/O

	PGPBoolean			mExitThread;		// exit at next opportunity
	PGPBoolean			mThreadRunning;		// thread running?

	MEMBER_THREAD(PGPdiskWorkerThread, ProcessIo);

	PGPdisk *	GetPGPdiskFromIrp(KIrp I);

	void		OpenAndCloseToPreventHang(PGPdisk *pPGD);

	NTSTATUS	ProcessIrpMjRead(KIrp I);
	NTSTATUS	ProcessIrpMjWrite(KIrp I);
	NTSTATUS	ProcessIrpMjCleanup(KIrp I);
	NTSTATUS	ProcessIrpMjDeviceControl(KIrp I);

	void		ProcessIrp(PRQRequest *pPRQ, PGPBoolean *irpNeedsCompletion);
	void		ProcessAsyncCallback(PRQRequest *pPRQ);
	void		ProcessSyncCallback(PRQRequest *pPRQ);
};

#endif	// ] Included_PGPdiskWorkerThread_h

⌨️ 快捷键说明

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