Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

108 lines
3.7 KiB

  1. /* Copyright (c) Microsoft Corporation. All rights reserved. */
  2. #ifndef __BURNSYS_H_
  3. #define __BURNSYS_H_
  4. #if _MSC_VER > 1000
  5. #pragma once
  6. #endif
  7. #ifdef __cplusplus
  8. extern "C" {
  9. #endif
  10. #include "ImageFile.h" // required for NEW_IMAGE_CONTENT_LIST
  11. #include "BurnV.h" // required for BURNENG_ERROR_STATUS
  12. /*
  13. ** Make sure we have the stuff we need to declare IOCTLs. The device code
  14. ** is below, and then each of the IOCTLs is defined alone with its constants
  15. ** and structures below.
  16. */
  17. #define FILE_DEVICE_BURNENG 0x90DC
  18. #define FILE_BOTH_ACCESS (FILE_READ_ACCESS | FILE_WRITE_ACCESS)
  19. /*
  20. ** ----------------------------------------------------------------------------
  21. ** IOCTL_BURNENG_INIT
  22. ** ----------------------------------------------------------------------------
  23. */
  24. #define IOCTL_BURNENG_INIT ((ULONG)CTL_CODE (FILE_DEVICE_BURNENG, 0x800, METHOD_BUFFERED, FILE_BOTH_ACCESS))
  25. typedef struct _BURNENG_INIT
  26. {
  27. ULONG dwVersion; // (OUT) Version number. Use this to ensure compatible structures/IOCTLs.
  28. BURNENG_ERROR_STATUS errorStatus; // (OUT) Error status from the burneng driver
  29. } BURNENG_INIT, *PBURNENG_INIT;
  30. /*
  31. ** ----------------------------------------------------------------------------
  32. ** IOCTL_BURNENG_TERM
  33. ** ----------------------------------------------------------------------------
  34. */
  35. #define IOCTL_BURNENG_TERM ((ULONG)CTL_CODE (FILE_DEVICE_BURNENG, 0x810, METHOD_BUFFERED, FILE_BOTH_ACCESS))
  36. typedef struct _BURNENG_TERM
  37. {
  38. BURNENG_ERROR_STATUS errorStatus; // (OUT) Error status from the burneng driver
  39. } BURNENG_TERM, *PBURNENG_TERM;
  40. /*
  41. ** ----------------------------------------------------------------------------
  42. ** IOCTL_BURNENG_BURN
  43. ** ----------------------------------------------------------------------------
  44. */
  45. #define IOCTL_BURNENG_BURN ((ULONG)CTL_CODE (FILE_DEVICE_BURNENG, 0x820, METHOD_BUFFERED, FILE_BOTH_ACCESS))
  46. // BUGBUG - use BURNENG_ERROR_STATUS for output, BURNENG_BURN for input
  47. typedef struct _BURNENG_BURN
  48. {
  49. BURNENG_ERROR_STATUS errorStatus; // OUT - Error status copied from ImapiW2k.sys
  50. DWORD dwSimulate; // IN - Whether the burn is simulated (non-zero) or real (0)
  51. DWORD dwAudioGapSize; // IN - dead air between tracks.
  52. DWORD dwEnableBufferUnderrunFree; // IN - enable buffer underrun free recording
  53. NEW_IMAGE_CONTENT_LIST ContentList; // IN - The description of the content to be burned.
  54. } BURNENG_BURN, *PBURNENG_BURN;
  55. /*
  56. ** ----------------------------------------------------------------------------
  57. ** IOCTL_BURNENG_PROGRESS
  58. ** ----------------------------------------------------------------------------
  59. */
  60. #define IOCTL_BURNENG_PROGRESS ((ULONG)CTL_CODE (FILE_DEVICE_BURNENG, 0x830, METHOD_BUFFERED, FILE_BOTH_ACCESS))
  61. // BUGBUG - use DWORD input, BURNENG_PROGRESS output
  62. typedef struct _BURNENG_PROGRESS
  63. {
  64. DWORD dwCancelBurn; // (IN) if not zero, cancel the burn.
  65. DWORD dwSectionsDone; // (OUT) Number of sections completed.
  66. DWORD dwTotalSections;// (OUT) Total number of sections to burn.
  67. DWORD dwBlocksDone; // (OUT) Number of blocks completed.
  68. DWORD dwTotalBlocks; // (OUT) Total number of blocks to burn.
  69. BURNENGV_PROGRESS_STATUS eStatus; // (OUT) Status of the burn operation.
  70. } BURNENG_PROGRESS, *PBURNENG_PROGRESS;
  71. /*
  72. ** ----------------------------------------------------------------------------
  73. */
  74. #ifdef __cplusplus
  75. }
  76. #endif
  77. #endif //__BURNSYS_H__