Avoid copying invalid data on error.
[wine/wine-kai.git] / dlls / kernel / tape.c
blobcbf9c19fd10940906f2aeae1e379119d314b5b3f
1 /*
2 * Tape handling functions
4 * Copyright 1999 Chris Morgan <cmorgan@wpi.edu>
5 * James Abbatiello <abbeyj@wpi.edu>
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 * TODO:
22 * Everything, all functions are stubs.
25 #include <stdarg.h>
27 #include "windef.h"
28 #include "winbase.h"
29 #include "winerror.h"
30 #include "wine/debug.h"
32 WINE_DEFAULT_DEBUG_CHANNEL(tape);
35 /************************************************************************
36 * BackupRead (KERNEL32.@)
38 BOOL WINAPI BackupRead( HANDLE hFile, LPBYTE lpBuffer, DWORD nNumberOfBytesToRead,
39 LPDWORD lpNumberOfBytesRead, BOOL bAbort,
40 BOOL bProcessSecurity, LPVOID *lpContext )
42 FIXME("(%p, %p, %ld, %p, %d, %d, %p) stub!\n", hFile, lpBuffer,
43 nNumberOfBytesToRead, lpNumberOfBytesRead, bAbort, bProcessSecurity,
44 lpContext);
46 SetLastError( ERROR_NOT_SUPPORTED );
48 return FALSE;
52 /************************************************************************
53 * BackupSeek (KERNEL32.@)
55 BOOL WINAPI BackupSeek( HANDLE hFile, DWORD dwLowBytesToSeek, DWORD dwHighBytesToSeek,
56 LPDWORD lpdwLowByteSeeked, LPDWORD lpdwHighByteSeeked,
57 LPVOID *lpContext )
59 FIXME("(%p, %ld, %ld, %p, %p, %p) stub!\n", hFile, dwLowBytesToSeek,
60 dwHighBytesToSeek, lpdwLowByteSeeked, lpdwHighByteSeeked, lpContext);
62 SetLastError( ERROR_NOT_SUPPORTED );
64 return FALSE;
68 /************************************************************************
69 * BackupWrite (KERNEL32.@)
71 BOOL WINAPI BackupWrite( HANDLE hFile, LPBYTE lpBuffer, DWORD nNumberOfBytesToWrite,
72 LPDWORD lpNumberOfBytesWritten, BOOL bAbort,
73 BOOL bProcessSecurity, LPVOID *lpContext )
75 FIXME("(%p, %p, %ld, %p, %d, %d, %p) stub!\n", hFile, lpBuffer,
76 nNumberOfBytesToWrite, lpNumberOfBytesWritten, bAbort,
77 bProcessSecurity, lpContext);
79 SetLastError( ERROR_NOT_SUPPORTED );
81 return FALSE;
85 /************************************************************************
86 * CreateTapePartition (KERNEL32.@)
88 DWORD WINAPI CreateTapePartition( HANDLE hDevice, DWORD dwPartitionMethod,
89 DWORD dwCount, DWORD dwSize )
91 FIXME("(%p, %ld, %ld, %ld) stub!\n", hDevice, dwPartitionMethod, dwCount,
92 dwSize);
94 SetLastError( ERROR_NOT_SUPPORTED );
96 return FALSE;
100 /************************************************************************
101 * EraseTape (KERNEL32.@)
103 DWORD WINAPI EraseTape( HANDLE hDevice, DWORD dwEraseType, BOOL bImmediate )
105 FIXME("(%p, %ld, %d) stub!\n", hDevice, dwEraseType, bImmediate);
107 SetLastError( ERROR_NOT_SUPPORTED );
109 return FALSE;
113 /************************************************************************
114 * GetTapeParameters (KERNEL32.@)
116 DWORD WINAPI GetTapeParameters( HANDLE hDevice, DWORD dwOperation,
117 LPDWORD lpdwSize, LPVOID lpTapeInformation )
119 FIXME("(%p, %ld, %p, %p) stub!\n", hDevice, dwOperation, lpdwSize,
120 lpTapeInformation);
122 SetLastError( ERROR_NOT_SUPPORTED );
124 return FALSE;
128 /************************************************************************
129 * GetTapePosition (KERNEL32.@)
131 DWORD WINAPI GetTapePosition( HANDLE hDevice, DWORD dwPositionType,
132 LPDWORD lpdwPartition, LPDWORD lpdwOffsetLow,
133 LPDWORD lpdwOffsetHigh )
135 FIXME("(%p, %ld, %p, %p, %p) stub!\n", hDevice, dwPositionType,
136 lpdwPartition, lpdwOffsetLow, lpdwOffsetHigh);
138 SetLastError( ERROR_NOT_SUPPORTED );
140 return FALSE;
144 /************************************************************************
145 * GetTapeStatus (KERNEL32.@)
147 DWORD WINAPI GetTapeStatus( HANDLE hDevice )
149 FIXME("(%p) stub!\n", hDevice);
151 SetLastError( ERROR_NOT_SUPPORTED );
153 return FALSE;
157 /************************************************************************
158 * PrepareTape (KERNEL32.@)
160 DWORD WINAPI PrepareTape( HANDLE hDevice, DWORD dwOperation, BOOL bImmediate )
162 FIXME("(%p, %ld, %d) stub!\n", hDevice, dwOperation, bImmediate);
164 SetLastError( ERROR_NOT_SUPPORTED );
166 return FALSE;
170 /************************************************************************
171 * SetTapeParameters (KERNEL32.@)
173 DWORD WINAPI SetTapeParameters( HANDLE hDevice, DWORD dwOperation,
174 LPVOID lpTapeInformation )
176 FIXME("(%p, %ld, %p) stub!\n", hDevice, dwOperation, lpTapeInformation);
178 SetLastError( ERROR_NOT_SUPPORTED );
180 return FALSE;
184 /************************************************************************
185 * SetTapePosition (KERNEL32.@)
187 DWORD WINAPI SetTapePosition( HANDLE hDevice, DWORD dwPositionMethod, DWORD
188 dwPartition, DWORD dwOffsetLow, DWORD dwOffsetHigh,
189 BOOL bImmediate )
191 FIXME("(%p, %ld, %ld, %ld, %ld, %d) stub!\n", hDevice, dwPositionMethod,
192 dwPartition, dwOffsetLow, dwOffsetHigh, bImmediate);
194 SetLastError( ERROR_NOT_SUPPORTED );
196 return FALSE;
200 /************************************************************************
201 * WriteTapemark (KERNEL32.@)
203 DWORD WINAPI WriteTapemark( HANDLE hDevice, DWORD dwTapemarkType, DWORD
204 dwTapemarkCount, BOOL bImmediate )
206 FIXME("(%p, %ld, %ld, %d) stub!\n", hDevice, dwTapemarkType,
207 dwTapemarkCount, bImmediate);
209 SetLastError( ERROR_NOT_SUPPORTED );
211 return FALSE;