| 2189 | } |
| 2190 | |
| 2191 | BOOL |
| 2192 | Ext2QueryExt2Property ( |
| 2193 | HANDLE Handle, |
| 2194 | PEXT2_VOLUME_PROPERTY3 EVP |
| 2195 | ) |
| 2196 | { |
| 2197 | NT::NTSTATUS status; |
| 2198 | NT::IO_STATUS_BLOCK iosb; |
| 2199 | |
| 2200 | BOOLEAN bExt2, bExt3; |
| 2201 | CHAR UUID[16]; |
| 2202 | |
| 2203 | if (!Ext2IsServiceStarted()) { |
| 2204 | return FALSE; |
| 2205 | } |
| 2206 | |
| 2207 | bExt2 = EVP->bExt2; |
| 2208 | bExt3 = EVP->bExt3; |
| 2209 | memcpy(&UUID[0], &EVP->UUID[0], 16); |
| 2210 | memset(EVP, 0, sizeof(EXT2_VOLUME_PROPERTY2)); |
| 2211 | memcpy(&EVP->UUID[0], &UUID[0], 16); |
| 2212 | EVP->bExt2 = bExt2; |
| 2213 | EVP->bExt3 = bExt3; |
| 2214 | EVP->Magic = EXT2_VOLUME_PROPERTY_MAGIC; |
| 2215 | EVP->Command = APP_CMD_QUERY_PROPERTY3; |
| 2216 | |
| 2217 | status = NT::ZwDeviceIoControlFile( |
| 2218 | Handle, NULL, NULL, NULL, &iosb, |
| 2219 | IOCTL_APP_VOLUME_PROPERTY, |
| 2220 | EVP, sizeof(EXT2_VOLUME_PROPERTY3), |
| 2221 | EVP, sizeof(EXT2_VOLUME_PROPERTY3) |
| 2222 | ); |
| 2223 | |
| 2224 | return NT_SUCCESS(status); |
| 2225 | } |
| 2226 | |
| 2227 | |
| 2228 | BOOL |
no test coverage detected