глюк и не могу понять в чем дело

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by sn0w, 4 Mar 2010.

Thread Status:
Not open for further replies.
  1. sn0w

    sn0w Статус пользователя:

    Joined:
    26 Jul 2005
    Messages:
    1,021
    Likes Received:
    1,200
    Reputations:
    327
    это отработка. dprintf это просто для дебаг вывода написал. тоже самое и с мессагбоксW происходит.

    [​IMG]

    код функции вот:

    Code:
    PUNICODE_STRING DrvGetLoadName()
    {
    	const char s_template[] = "\\registry\\machine\\SYSTEM\\CurrentControlSet\\Services\\"DRIVER_NAME;
    	WCHAR ws_loadname[1024];
    	PUNICODE_STRING pusDrvName;
    
    // HeapAlloc 
    	pusDrvName = (PUNICODE_STRING)utilsHAlloc(sizeof(UNICODE_STRING));
    
    	MultiByteToWideChar(CP_ACP, 0, (LPCSTR)s_template, -1, ws_loadname, 1024);
    	
    	RtlInitUnicodeString(pusDrvName, ws_loadname);
    
    	return pusDrvName;
    }

    ума не приложу. в MessagBoxW потирался контент UNICODE_STRING->Buffer, не указатель, а сам контент, причем гдето внутри MessageBoxTimeoutW, що за нах
     
    3 people like this.
  2. sn0w

    sn0w Статус пользователя:

    Joined:
    26 Jul 2005
    Messages:
    1,021
    Likes Received:
    1,200
    Reputations:
    327
    решено, наламарезил с RtlInitUnicodeString:

    буфер надо было не стековый вторым параметром
     
Thread Status:
Not open for further replies.