www.pudn.com > LS120--USB.zip > usbbulk.cpp
// UsbBulk.h - a simple USB bulk driver // //============================================================================= // // Compuware Corporation // NuMega Lab // 9 Townsend West // Nashua, NH 03060 USA // // Copyright (c) 1998 Compuware Corporation. All Rights Reserved. // Unpublished - rights reserved under the Copyright laws of the // United States. // //============================================================================= #define VDW_MAIN #include// Base Driver::Works includes #include #include "bulkdev.h" #include "usbbulk.h" KTrace Tracer("UsbBulk"); ///////////////////////////////////////////////////////////////////// // Begin INIT section #pragma code_seg("INIT") DECLARE_DRIVER_CLASS(UsbBulkDriver, NULL) ///////////////////////////////////////////////////////////////////// // Driver Entry // // This is the first entry point called by the system when the driver // is loaded. NTSTATUS UsbBulkDriver::DriverEntry(PUNICODE_STRING RegistryPath) { Tracer << "In Driver Entry"; m_Unit = 0; return STATUS_SUCCESS; } #pragma code_seg() // End INIT section ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// // Add Device // // The system calls this entry point when it detects a device for which // this driver is responsible. // // Input // Pdo Physical Device Object. This is a pointer to a system device // object that represents the physical device. // // This function creates the Functional Device Object, or FDO. The FDO // enables this driver to handle requests for the physical device. NTSTATUS UsbBulkDriver::AddDevice(PDEVICE_OBJECT Pdo) { Tracer << "Into AddDevice\n"; UsbBulkDevice* pDevice = new (NonPagedPool) UsbBulkDevice(Pdo, m_Unit); if (pDevice) { NTSTATUS status = pDevice->ConstructorStatus(); if ( !NT_SUCCESS(status) ) { Tracer << "Error constructing device UsbBulk" << (ULONG)m_Unit << "\n"; delete pDevice; } else { m_Unit++; } return status; } else { Tracer << "Error creating device UsbBulk" << (ULONG)m_Unit << "\n"; return STATUS_INSUFFICIENT_RESOURCES; } }