ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

mcd.h
Go to the documentation of this file.
00001 /*
00002  * mcd.h
00003  *
00004  * Media changer driver interface
00005  *
00006  * This file is part of the w32api package.
00007  *
00008  * Contributors:
00009  *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
00010  *
00011  * THIS SOFTWARE IS NOT COPYRIGHTED
00012  *
00013  * This source code is offered for use in the public domain. You may
00014  * use, modify or distribute it freely.
00015  *
00016  * This code is distributed in the hope that it will be useful but
00017  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
00018  * DISCLAIMED. This includes but is not limited to warranties of
00019  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
00020  *
00021  */
00022 
00023 #ifndef __MCD_H
00024 #define __MCD_H
00025 
00026 #include "srb.h"
00027 #include "scsi.h"
00028 #include "ntddchgr.h"
00029 
00030 #ifdef __cplusplus
00031 extern "C" {
00032 #endif
00033 
00034 #if defined(_MCD_)
00035 #define CHANGERAPI
00036 #else
00037 #define CHANGERAPI DECLSPEC_IMPORT
00038 #endif
00039 
00040 #ifdef DebugPrint
00041 #undef DebugPrint
00042 #endif
00043 
00044 #if DBG
00045 #define DebugPrint(x) ChangerClassDebugPrint x
00046 #else
00047 #define DebugPrint(x)
00048 #endif
00049 
00050 #define MAXIMUM_CHANGER_INQUIRY_DATA   252
00051 
00052 CHANGERAPI
00053 PVOID
00054 NTAPI
00055 ChangerClassAllocatePool(
00056   IN POOL_TYPE PoolType,
00057   IN ULONG NumberOfBytes);
00058 
00059 VOID
00060 ChangerClassDebugPrint(
00061   ULONG DebugPrintLevel,
00062   PCCHAR DebugMessage,
00063   ...);
00064 
00065 CHANGERAPI
00066 PVOID
00067 NTAPI
00068 ChangerClassFreePool(
00069   IN PVOID PoolToFree);
00070 
00071 CHANGERAPI
00072 NTSTATUS
00073 NTAPI
00074 ChangerClassSendSrbSynchronous(
00075   IN PDEVICE_OBJECT DeviceObject,
00076   IN PSCSI_REQUEST_BLOCK Srb,
00077   IN PVOID Buffer,
00078   IN ULONG BufferSize,
00079   IN BOOLEAN WriteToDevice);
00080 
00081 
00082 typedef NTSTATUS NTAPI
00083 (*CHANGER_INITIALIZE)(
00084   IN PDEVICE_OBJECT DeviceObject);
00085 
00086 typedef ULONG NTAPI
00087 (*CHANGER_EXTENSION_SIZE)(
00088   VOID);
00089 
00090 typedef VOID NTAPI
00091 (*CHANGER_ERROR_ROUTINE)(
00092   PDEVICE_OBJECT DeviceObject,
00093   PSCSI_REQUEST_BLOCK Srb,
00094   NTSTATUS *Status,
00095   BOOLEAN *Retry);
00096 
00097 typedef NTSTATUS NTAPI
00098 (*CHANGER_COMMAND_ROUTINE)(
00099   IN PDEVICE_OBJECT DeviceObject,
00100   IN PIRP Irp);
00101 
00102 typedef NTSTATUS NTAPI
00103 (*CHANGER_PERFORM_DIAGNOSTICS)(
00104   IN PDEVICE_OBJECT DeviceObject,
00105   OUT PWMI_CHANGER_PROBLEM_DEVICE_ERROR ChangerDeviceError);
00106 
00107 typedef struct _MCD_INIT_DATA {
00108   ULONG InitDataSize;
00109   CHANGER_EXTENSION_SIZE ChangerAdditionalExtensionSize;
00110   CHANGER_INITIALIZE ChangerInitialize;
00111   CHANGER_ERROR_ROUTINE ChangerError;
00112   CHANGER_PERFORM_DIAGNOSTICS ChangerPerformDiagnostics;
00113   CHANGER_COMMAND_ROUTINE ChangerGetParameters;
00114   CHANGER_COMMAND_ROUTINE ChangerGetStatus;
00115   CHANGER_COMMAND_ROUTINE ChangerGetProductData;
00116   CHANGER_COMMAND_ROUTINE ChangerSetAccess;
00117   CHANGER_COMMAND_ROUTINE ChangerGetElementStatus;
00118   CHANGER_COMMAND_ROUTINE ChangerInitializeElementStatus;
00119   CHANGER_COMMAND_ROUTINE ChangerSetPosition;
00120   CHANGER_COMMAND_ROUTINE ChangerExchangeMedium;
00121   CHANGER_COMMAND_ROUTINE ChangerMoveMedium;
00122   CHANGER_COMMAND_ROUTINE ChangerReinitializeUnit;
00123   CHANGER_COMMAND_ROUTINE ChangerQueryVolumeTags;
00124 } MCD_INIT_DATA, *PMCD_INIT_DATA;
00125 
00126 CHANGERAPI
00127 NTSTATUS
00128 NTAPI
00129 ChangerClassInitialize(
00130   IN PDRIVER_OBJECT DriverObject,
00131   IN PUNICODE_STRING RegistryPath,
00132   IN PMCD_INIT_DATA MCDInitData);
00133 
00134 #ifdef __cplusplus
00135 }
00136 #endif
00137 
00138 #endif /* __MCD_H */

Generated on Fri May 25 2012 04:28:32 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.