www.pudn.com > WDM_Driver_Dev_ExampleCode.zip > Wdm1.h
//////////////////////////////////////////////////////////////////////////////
// Copyright © 1998 Chris Cant, PHD Computer Consultants Ltd
// WDM Book for R&D Books, Miller Freeman Inc
//
// Wdm1 example
/////////////////////////////////////////////////////////////////////////////
// wdm1.h Common header
/////////////////////////////////////////////////////////////////////////////
// Version history
// 27-Apr-99 1.0.0 CC creation
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// Include WDM standard header with C linkage
#ifdef __cplusplus
extern "C"
{
#endif
#include "wdm.h"
#ifdef __cplusplus
}
#endif
/////////////////////////////////////////////////////////////////////////////
// DebugPrint and Guid headers
#include "DebugPrint.h"
#include "GUIDs.h"
/////////////////////////////////////////////////////////////////////////////
// Spin lock to protect access to shared memory buffer
extern KSPIN_LOCK BufferLock;
extern PUCHAR Buffer;
/////////////////////////////////////////////////////////////////////////////
// Our device extension
typedef struct _WDM1_DEVICE_EXTENSION
{
PDEVICE_OBJECT fdo;
PDEVICE_OBJECT NextStackDevice;
UNICODE_STRING ifSymLinkName;
} WDM1_DEVICE_EXTENSION, *PWDM1_DEVICE_EXTENSION;
/////////////////////////////////////////////////////////////////////////////
// Forward declarations of global functions
VOID Wdm1Unload(IN PDRIVER_OBJECT DriverObject);
NTSTATUS Wdm1Power( IN PDEVICE_OBJECT fdo,
IN PIRP Irp);
NTSTATUS Wdm1Pnp( IN PDEVICE_OBJECT fdo,
IN PIRP Irp);
NTSTATUS Wdm1AddDevice( IN PDRIVER_OBJECT DriverObject,
IN PDEVICE_OBJECT pdo);
NTSTATUS Wdm1Create(IN PDEVICE_OBJECT fdo,
IN PIRP Irp);
NTSTATUS Wdm1Close( IN PDEVICE_OBJECT fdo,
IN PIRP Irp);
NTSTATUS Wdm1Write( IN PDEVICE_OBJECT fdo,
IN PIRP Irp);
NTSTATUS Wdm1Read( IN PDEVICE_OBJECT fdo,
IN PIRP Irp);
NTSTATUS Wdm1DeviceControl( IN PDEVICE_OBJECT fdo,
IN PIRP Irp);
NTSTATUS Wdm1SystemControl( IN PDEVICE_OBJECT fdo,
IN PIRP Irp);
/////////////////////////////////////////////////////////////////////////////
NTSTATUS CompleteIrp( PIRP Irp, NTSTATUS status, ULONG info);
/////////////////////////////////////////////////////////////////////////////