Austin English : ntdll: Add stub implementation of IOCTL_STORAGE_GET_MEDIA_TYPES/ IOCTL_STORAGE_GET_MEDIA_TYPES_EX.

Alexandre Julliard julliard at winehq.org
Mon May 31 11:21:39 CDT 2010


Module: wine
Branch: master
Commit: 84179f4e1db6bbf5bdc30f0ad114723096e1186f
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=84179f4e1db6bbf5bdc30f0ad114723096e1186f

Author: Austin English <austinenglish at gmail.com>
Date:   Sun May 30 20:34:31 2010 -0500

ntdll: Add stub implementation of IOCTL_STORAGE_GET_MEDIA_TYPES/IOCTL_STORAGE_GET_MEDIA_TYPES_EX.

---

 dlls/ntdll/cdrom.c |   22 +++++++++++++++++++++-
 1 files changed, 21 insertions(+), 1 deletions(-)

diff --git a/dlls/ntdll/cdrom.c b/dlls/ntdll/cdrom.c
index 0737e6e..1ec03d8 100644
--- a/dlls/ntdll/cdrom.c
+++ b/dlls/ntdll/cdrom.c
@@ -176,6 +176,8 @@ X(IOCTL_STORAGE_CHECK_VERIFY)
 X(IOCTL_STORAGE_EJECTION_CONTROL)
 X(IOCTL_STORAGE_EJECT_MEDIA)
 X(IOCTL_STORAGE_GET_DEVICE_NUMBER)
+X(IOCTL_STORAGE_GET_MEDIA_TYPES)
+X(IOCTL_STORAGE_GET_MEDIA_TYPES_EX)
 X(IOCTL_STORAGE_LOAD_MEDIA)
 X(IOCTL_STORAGE_MEDIA_REMOVAL)
 X(IOCTL_STORAGE_RESET_DEVICE)
@@ -745,6 +747,18 @@ static NTSTATUS CDROM_GetDriveGeometry(int dev, int fd, DISK_GEOMETRY* dg)
   return ret;
 }
 
+/******************************************************************
+ *		CDROM_GetMediaType
+ *
+ */
+static NTSTATUS CDROM_GetMediaType(int dev, GET_MEDIA_TYPES* medtype)
+{
+    FIXME(": faking success\n");
+    medtype->DeviceType = FILE_DEVICE_CD_ROM;
+    medtype->MediaInfoCount = 0;
+    return STATUS_SUCCESS;
+}
+
 /**************************************************************************
  *                              CDROM_Reset                     [internal]
  */
@@ -2976,7 +2990,13 @@ NTSTATUS CDROM_DeviceIoControl(HANDLE hDevice,
         else status = CDROM_ControlEjection(fd, lpInBuffer);
         break;
 
-/* EPP     case IOCTL_STORAGE_GET_MEDIA_TYPES: */
+    case IOCTL_STORAGE_GET_MEDIA_TYPES:
+    case IOCTL_STORAGE_GET_MEDIA_TYPES_EX:
+        sz = sizeof(GET_MEDIA_TYPES);
+        if (lpInBuffer != NULL || nInBufferSize != 0) status = STATUS_INVALID_PARAMETER;
+        else if (nOutBufferSize < sz) status = STATUS_BUFFER_TOO_SMALL;
+        else status = CDROM_GetMediaType(dev, lpOutBuffer);
+        break;
 
     case IOCTL_STORAGE_GET_DEVICE_NUMBER:
         sz = sizeof(STORAGE_DEVICE_NUMBER);




More information about the wine-cvs mailing list