The WriteTapemark function writes a specified number of filemarks, setmarks, short filemarks, or long filemarks to a tape device. These tapemarks divide a tape partition into smaller areas.
DWORD WriteTapemark(
  HANDLE hDevice,        // handle to open device
  DWORD dwTapemarkType,  // type of tapemarks to write
  DWORD dwTapemarkCount, // number of tapemarks to write
  BOOL bImmediate        // return after write begins
);
 
| Value | Description | 
|---|---|
| TAPE_FILEMARKS | Writes the number of filemarks specified by the dwTapemarkCount parameter. | 
| TAPE_LONG_FILEMARKS | Writes the number of long filemarks specified by dwTapemarkCount. | 
| TAPE_SETMARKS | Writes the number of setmarks specified by dwTapemarkCount. | 
| TAPE_SHORT_FILEMARKS | Writes the number of short filemarks specified by dwTapemarkCount. | 
If the function succeeds, the return value is NO_ERROR.
If the function fails, the return value is one of the following error codes:
| Error | Description | 
|---|---|
| ERROR_BEGINNING_OF_MEDIA | An attempt to access data before the beginning-of-medium marker failed. | 
| ERROR_BUS_RESET | A reset condition was detected on the bus. | 
| ERROR_END_OF_MEDIA | The end-of-tape marker was reached during an operation. | 
| ERROR_FILEMARK_DETECTED | A filemark was reached during an operation. | 
| ERROR_SETMARK_DETECTED | A setmark was reached during an operation. | 
| ERROR_NO_DATA_DETECTED | The end-of-data marker was reached during an operation. | 
| ERROR_PARTITION_FAILURE | The tape could not be partitioned. | 
| ERROR_INVALID_BLOCK_LENGTH | The block size is incorrect on a new tape in a multivolume partition. | 
| ERROR_DEVICE_NOT_PARTITIONED | The partition information could not be found when a tape was being loaded. | 
| ERROR_MEDIA_CHANGED | The tape that was in the drive has been replaced or removed. | 
| ERROR_NO_MEDIA_IN_DRIVE | There is no media in the drive. | 
| ERROR_NOT_SUPPORTED | The tape driver does not support a requested function. | 
| ERROR_UNABLE_TO_LOCK_MEDIA | An attempt to lock the ejection mechanism failed. | 
| ERROR_UNABLE_TO_UNLOAD_MEDIA | An attempt to unload the tape failed. | 
| ERROR_WRITE_PROTECT | The media is write protected. | 
Filemarks, setmarks, short filemarks, and long filemarks are special recorded elements that denote the linear organization of the tape. None of these marks contain user data. Filemarks are the most general marks; setmarks provide a hierarchy not available with filemarks.
A short filemark contains a short erase gap that cannot be overwritten unless the write operation is performed from the beginning of the partition or from an earlier long filemark.
A long filemark contains a long erase gap that allows an application to position the tape at the beginning of the filemark and to overwrite the filemark and the erase gap.
  Windows NT: Requires version 3.1 or later.
  Windows: Unsupported.
  Windows CE: Unsupported.
  Header: Declared in winbase.h.
  Import Library: Use kernel32.lib.
Tape Backup Overview, Tape Backup Functions, CreateFile