/usr/i586-mingw32msvc/include/ddk/mcd.h is in mingw32-runtime 3.15.2-0ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 | /*
* mcd.h
*
* Media changer driver interface
*
* This file is part of the w32api package.
*
* Contributors:
* Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAIMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __MCD_H
#define __MCD_H
#if __GNUC__ >=3
#pragma GCC system_header
#endif
#ifdef __cplusplus
extern "C" {
#endif
#include "ntddk.h"
#include "srb.h"
#include "scsi.h"
#include "ntddchgr.h"
#if defined(_MCD_)
#define CHANGERAPI DECLSPEC_EXPORT
#else
#define CHANGERAPI DECLSPEC_IMPORT
#endif
#ifdef DebugPrint
#undef DebugPrint
#endif
#ifdef DBG
#define DebugPrint(x) ChangerClassDebugPrint x
#else
#define DebugPrint(x)
#endif
#define MAXIMUM_CHANGER_INQUIRY_DATA 252
CHANGERAPI
PVOID
DDKAPI
ChangerClassAllocatePool(
/*IN*/ POOL_TYPE PoolType,
/*IN*/ ULONG NumberOfBytes);
VOID
ChangerClassDebugPrint(
ULONG DebugPrintLevel,
PCCHAR DebugMessage,
...);
CHANGERAPI
PVOID
DDKAPI
ChangerClassFreePool(
/*IN*/ PVOID PoolToFree);
CHANGERAPI
NTSTATUS
DDKAPI
ChangerClassSendSrbSynchronous(
/*IN*/ PDEVICE_OBJECT DeviceObject,
/*IN*/ PSCSI_REQUEST_BLOCK Srb,
/*IN*/ PVOID Buffer,
/*IN*/ ULONG BufferSize,
/*IN*/ BOOLEAN WriteToDevice);
typedef NTSTATUS DDKAPI
(*CHANGER_INITIALIZE)(
/*IN*/ PDEVICE_OBJECT DeviceObject);
typedef ULONG DDKAPI
(*CHANGER_EXTENSION_SIZE)(
VOID);
typedef VOID DDKAPI
(*CHANGER_ERROR_ROUTINE)(
PDEVICE_OBJECT DeviceObject,
PSCSI_REQUEST_BLOCK Srb,
NTSTATUS *Status,
BOOLEAN *Retry);
typedef NTSTATUS DDKAPI
(*CHANGER_COMMAND_ROUTINE)(
/*IN*/ PDEVICE_OBJECT DeviceObject,
/*IN*/ PIRP Irp);
typedef NTSTATUS DDKAPI
(*CHANGER_PERFORM_DIAGNOSTICS)(
/*IN*/ PDEVICE_OBJECT DeviceObject,
/*OUT*/ PWMI_CHANGER_PROBLEM_DEVICE_ERROR ChangerDeviceError);
typedef struct _MCD_INIT_DATA {
ULONG InitDataSize;
CHANGER_EXTENSION_SIZE ChangerAdditionalExtensionSize;
CHANGER_INITIALIZE ChangerInitialize;
CHANGER_ERROR_ROUTINE ChangerError;
CHANGER_PERFORM_DIAGNOSTICS ChangerPerformDiagnostics;
CHANGER_COMMAND_ROUTINE ChangerGetParameters;
CHANGER_COMMAND_ROUTINE ChangerGetStatus;
CHANGER_COMMAND_ROUTINE ChangerGetProductData;
CHANGER_COMMAND_ROUTINE ChangerSetAccess;
CHANGER_COMMAND_ROUTINE ChangerGetElementStatus;
CHANGER_COMMAND_ROUTINE ChangerInitializeElementStatus;
CHANGER_COMMAND_ROUTINE ChangerSetPosition;
CHANGER_COMMAND_ROUTINE ChangerExchangeMedium;
CHANGER_COMMAND_ROUTINE ChangerMoveMedium;
CHANGER_COMMAND_ROUTINE ChangerReinitializeUnit;
CHANGER_COMMAND_ROUTINE ChangerQueryVolumeTags;
} MCD_INIT_DATA, *PMCD_INIT_DATA;
CHANGERAPI
NTSTATUS
DDKAPI
ChangerClassInitialize(
/*IN*/ PDRIVER_OBJECT DriverObject,
/*IN*/ PUNICODE_STRING RegistryPath,
/*IN*/ PMCD_INIT_DATA MCDInitData);
#ifdef __cplusplus
}
#endif
#endif /* __MCD_H */
|