Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Платформы Windows Mobile и Windows Embedded > Проблема с запросом ID\SN карты памяти.


Автор: EN1GMA 12.8.2010, 20:54
Добрый день.

Нужно программно узнать ID или серийный номер карты памяти. Пишу на плюсах, используя IOCTL_DISK_GET_STORAGEID.

Код

// ... //

STORAGE_IDENTIFICATION SID;  
SID.dwSize = sizeof(STORAGE_IDENTIFICATION) + 256;


//В функцию передается STORAGE_IDENTIFICATION структура и идет попытка узнать серийник:

BOOL GetDriveID(STORAGE_IDENTIFICATION *SID){

HANDLE hDevice;
BOOL bIDResult
DWORD dwIDBytesRead = 0;
  

    hDevice = CreateFile(TEXT("\\Storage Card\\Vol:"), GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);

    if (hDevice == INVALID_HANDLE_VALUE) 
        
        {
            return (FALSE);
        }
    
        bIDResult = DeviceIoControl(hDevice,   
        IOCTL_DISK_GET_STORAGEID,        
        (LPVOID)NULL, 0,                 
        SID, sizeof(*SID),                 
        &dwIDBytesRead,            
        (LPOVERLAPPED)NULL);

    CloseHandle(hDevice);

    return (bIDResult);
}
// ... //


Проблема в том, что DeviceIoControl всегда возвращает ноль. Пробовал разными способами - выделял память  для этой структуры, делал BYTE буфер и приводил его к ней. GetLastError() дает ошибку 50.

Тестировалось это все на WM 5.0 Emulator 

Кто в курсе, хелп  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)